我有这个数据集:
年龄 - 工作-------贷款 - y
57 - 退休 - - - 是 - 否
44 - admin - - - no - no
39 - 未知 - 不 - 不
47 - 服务 - 否 - 是
41 - 管理员-----否 - NA
51-老师---是 - 没有
45 - 未知 - 不 - 是
57 - 退休------不 - 不是
42-老师-----不--NA
30-学生-----不 - NA
我想通过使用逻辑回归来预测y的所有值,但我只得到10个预测中的7个。因此,它省略了y==NA
的案例。
这是我的代码:
fit <- glm(y~ age+ as.factor(job)+ as.factor(loan), data= mydat, family=binomial)
predict( fit, type="response", na.action=na.pass)
即使在缺少值的情况下,如何预测响应值y
?
答案 0 :(得分:3)
您的问题有点令人困惑,因为您要么需要一个mulinomial logit / probit模型,其中NA是第三类结果,或者您想要一个插补模型根据其他数据填充y
的值。正如@Roland所回答的那样,您无法使用glm
提供的二进制结果模型来预测缺失值。
如果是前者(多项logit / probit模型),请查看您的选项on the Econometrics Task View。
答案 1 :(得分:1)
如果您没有某些内容的数据,则无法对其进行建模,因此无法预测。例如,没有贷款的学生没有数据。那么你如何建议没有贷款的学生预测y?这需要魔法。
另一方面,如果您从模型中省略作业或以某种方式重新编码(例如,初学者/经验/未知),您可以预测所有案例。最好的建议当然是获取更多数据。
答案 2 :(得分:0)
从您的数据中删除“student”并在predict中使用newdata参数:
predict(fit,newdata=mydat,type="response")