2017-03-12 23 views
1

私のコードで何が間違っているのか分かりません。私はこのベクトル使用して予測を作りたいその後ロジスティック回帰モデルによる予測の誤りR

model <- glm(data$outcome~data$predictor, family = "binomial") 

       Estimate Std. Error z value  Pr(>|z|) 
(Intercept) -0.01437719 0.07516923 -0.1912644 8.483185e-01 
pvalue.us 0.19469804 0.03110934 6.2585081 3.886777e-10 

:私はこのモデルを装着

outcome predictor 
1  0  -3 
2  0  -4 
3  1   0 
4  1  -1 
5  1   0 
6  0  -3 

:私は、このデータセットとロジスティック回帰モデルをフィット

test 
[1] -2 -5 0 -3 2 -3 

predict(model, newdata = test) 

をそして、私はこれを取得しますエラー:

Error in eval(predvars, data, env) : 
    numeric 'envir' arg not of length one 

何が間違っていますか?

答えて

2

predict()のような機能を使用する場合は、モデル内で$インデックスを使用しないでください。代わりにdata=引数を使用してください。

model <- glm(outcome~predictor, data=your_data, family = "binomial") 

あなたの数式で$を使用する場合は、predict()機能は、実際に新しいデータフレームで見つかった変数を使用することはありません。

与えられた例を使用:

model <- glm(data$outcome~data$predictor, family = "binomial") 
predict(model,newdata=data.frame(predictor=1:6)) 
##   1   2   3   4   5   6 
## -23.48969 -46.57791 45.77497 22.68675 45.77497 -23.48969 
predict(model,newdata=data.frame(predictor=rep(0,6))) 
##   1   2   3   4   5   6 
## -23.48969 -46.57791 45.77497 22.68675 45.77497 -23.48969 

結果は同じです使用しているにもかかわらず異なるnewdata(!)。元のデータセットと異なる長さのnewdataを使用した場合にのみ警告が表示されます。

+0

それを知らなかった。私の答えを削除しました。 –

+0

あなたの答えをありがとう、私はそれを知らなかった。私は 'データ='引数を使用してみましたが、私はまだ同じエラーが発生します。それは "長さ1のargではない"と言うので、単一の番号を要求していることに注意してください。 –

+0

データを正しく指定しましたか? –

関連する問題