我无法弄清楚我的代码有什么问题。我在这个数据集中安装了逻辑回归模型:
foo({uid: 'LBL_btBeZETZ', label: 'bar'})
我适合这个模型:
outcome predictor
1 0 -3
2 0 -4
3 1 0
4 1 -1
5 1 0
6 0 -3
然后我想用这个载体进行预测:
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
我收到了这个错误:
test
[1] -2 -5 0 -3 2 -3
predict(model, newdata = test)
有什么问题?
答案 0 :(得分: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
与原始数据集的长度不同,则只会收到警告。