2017-11-29 17 views
-4

ない私が使用していたデータから、ロジスティック回帰以下エラー:yの値は0 <= Y <= 1

training=(IBM$Serial<625) 
data=IBM[!training,] 
dim(data) 
stock.direction <- data$Direction 
training_model=glm(stock.direction~data$lag2,data=data,family=binomial) 
###Error### ---- Error in eval(family$initialize) : y values must be 0 <= y <= 1 

数行のために、以下のエラーを修正することができなければなりません

X Date Open High Low Close Adj.Close Volume Return lag1 lag2 lag3 Direction Serial 
1 28-11-2012 190.979996 192.039993 189.270004 191.979996 165.107727 3603600 0.004010855 0.004010855 -0.001198021 -0.006354834 Up 1 
2 29-11-2012 192.75 192.899994 190.199997 191.529999 164.720734 4077900 0.00114865 0.00114865 -0.004020279 -0.009502386 Up 2 
3 30-11-2012 191.75 192 189.5 190.070007 163.465073 4936400 0.003630178 0.003630178 -0.001894039 -0.005576956 Up 3 
4 03-12-2012 190.759995 191.300003 188.360001 189.479996 162.957703 3349600 0.001213907 0.001213907 -0.002480478 -0.001636046 Up 4 
+0

あなたは 'Direction'変数を文字(上)として持っています。それは動作しません – Mateusz1981

+0

定性的な変数で動作するとロジスティック回帰isnt?任意の修正をお勧めします –

+0

しかし、あなたは1と0に変数を変更する必要がありますので、エラーが表示されますので、あなたがそうである場合、あなたはexelseを使って0と1に変更することができます – Mateusz1981

答えて

0

データを理解せずに、あなたはこの

library(dplyr) 
df <- read.table(header = T, stringsAsFactors = F, text ="X Date Open High Low Close Adj.Close Volume Return lag1 lag2 lag3 Direction Serial 
1 28-11-2012 190.979996 192.039993 189.270004 191.979996 165.107727 3603600 0.004010855 0.004010855 -0.001198021 -0.006354834 Up 1 
2 29-11-2012 192.75 192.899994 190.199997 191.529999 164.720734 4077900 0.00114865 0.00114865 -0.004020279 -0.009502386 Up 2 
3 30-11-2012 191.75 192 189.5 190.070007 163.465073 4936400 0.003630178 0.003630178 -0.001894039 -0.005576956 Up 3 
4 03-12-2012 190.759995 191.300003 188.360001 189.479996 162.957703 3349600 0.001213907 0.001213907 -0.002480478 -0.001636046 Up 4 
1 28-11-2012 190.979996 192.039993 189.270004 191.979996 165.107727 3603600 0.004010855 0.004010855 -0.001198021 -0.006354834 Up 1 
2 29-11-2012 192.75 192.899994 190.199997 191.529999 164.720734 4077900 0.00114865 0.00114865 -0.004020279 -0.009502386 Down 2 
3 30-11-2012 191.75 192 189.5 190.070007 163.465073 4936400 0.003630178 0.003630178 -0.001894039 -0.005576956 Up 3 
4 03-12-2012 190.759995 191.300003 188.360001 189.479996 162.957703 3349600 0.001213907 0.001213907 -0.002480478 -0.001636046 Down 4 
") %>% 
    mutate(bin = ifelse(Direction == "Up", 1, 0)) 

glm(bin ~ High, family = "binomial", data = df) 
0

のような範疇の機能をSTを行う必要があり、ある形式の「文字」のようなデータセットの「方向」変数は.ITは、それが

あなたがチェックすることができますが、0と1の間のyの値を入力するように求める理由ですR.

にデータ型「要因」として保存する必要がありますクラス:変数 クラス(変数)

文字として出てくる場合は、同じデータフレームに新しい列を作成し、文字形式の列を要素形式でインポートすることができます。

これでうまくいくはずです。