2015-10-05 49 views
1

我願意爲我的數據集進行邏輯迴歸。我使用:爲什麼我在logistic迴歸中出現'權重錯誤* y:二元運算符的非數字參數'?

glm.fit=glm(direccion~Profit, data=datos, family=binomial)

Minute ecopet TASA10 direccion Minute cl1  Day   Profit 
1 571  2160  5  1   571 51.85 2015-02-20 -0.03 
2 572  2160  5  1   572 51.92 2015-02-20 0.04 
3 573  2160  5  1   573 51.84 2015-02-20 -0.04 
4 574  2160  5  1   574 51.77 2015-02-20 -0.11 
5 575  2160  10  1   575 51.69 2015-02-20 -0.19 
6 576  2165  5  1   576 51.69 2015-02-20 -0.16 
7 577  2165 -5  0   577 51.64 2015-02-20 -0.28 
8 578  2165 -10  0   578 51.47 2015-02-20 -0.37 
9 579  2165 -10  0   579 51.41 2015-02-20 -0.36 
10 580  2170 -15  0   580 51.44 2015-02-20 -0.25 
11 581  2170 -30  0   581 51.48 2015-02-20 -0.21 
12 582  2160 -20  0   582 51.52 2015-02-20 -0.12 
13 583  2155 -5  0   583 51.56 2015-02-20 0.09 
14 584  2155 -5  0   584 51.51 2015-02-20 0.10 
15 585  2155 -5  0   585 51.44 2015-02-20 0.00 
16 586  2140  10  1   586 51.30 2015-02-20 -0.18 
17 587  2140  10  1   587 51.31 2015-02-20 -0.21 
18 588  2150  0  0   588 51.31 2015-02-20 -0.25 

正如你所看到的,變量「direccion」是一個二元變量,是我回歸的因變量。每當變量「TASA10」爲正時爲1,否則爲0。問題是,當我運行代碼,我得到:

「的權重誤差* Y:非數值參數二元運算符」

,你會知道這是爲什麼?

謝謝!

+0

您可以添加調用'str(datos)'的結果,以便我們可以看到列的類型?這很可能是由於某種原因獲得了「字符」值而不是「數字」值。 – user295691

+0

似乎無法重現。你從direccion獲得什麼課程/類型? – erasmortg

+0

你是對的!它是一種字符類型 –

回答

3

看來direccion列是字符列而不是數字列。您可以通過運行str(datos)進行驗證;你會看到類似於

'data.frame': 18 obs. of 8 variables: 
$ Minute : int 571 572 573 574 575 576 577 578 579 580 ... 
$ ecopet : int 2160 2160 2160 2160 2160 2165 2165 2165 2165 2170 ... 
$ TASA10 : int 5 5 5 5 10 5 -5 -10 -10 -15 ... 
$ direccion: chr "1" "1" "1" "1" ... 
$ Minute.1 : int 571 572 573 574 575 576 577 578 579 580 ... 
$ cl1  : num 51.9 51.9 51.8 51.8 51.7 ... 
$ Day  : Factor w/ 1 level "2015-02-20": 1 1 1 1 1 1 1 1 1 1 ... 
$ Profit : num -0.03 0.04 -0.04 -0.11 -0.19 -0.16 -0.28 -0.37 -0.36 -0.25 ... 

特別注意direccion列的類型。這可以通過運行

datos$direccion <- as.numeric(datos$direccion) 

如果這是一個因素,那麼你需要使用

datos$direccion <- as.numeric(as.character(datos$direccion)) 

更妙的是,以確保您不會失去編碼固定是看回你的管道到生成此數據框的代碼並將其固定爲數字而不是字符串編碼。

相關問題