我如何使用R中的逻辑回归预测NA的响应?

时间:2013-07-26 07:00:18

标签: r missing-data

我有这个数据集:

年龄 - 工作-------贷款 - 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

3 个答案:

答案 0 :(得分:3)

您的问题有点令人困惑,因为您要么需要一个mulinomial logit / probit模型,其中NA是第三类结果,或者您想要一个插补模型根据其他数据填充y的值。正如@Roland所回答的那样,您无法使用glm提供的二进制结果模型来预测缺失值。

如果是前者(多项logit / probit模型),请查看您的选项on the Econometrics Task View

如果是后者(插补),您还有很多选项,例如Ameliamicemi

答案 1 :(得分:1)

如果您没有某些内容的数据,则无法对其进行建模,因此无法预测。例如,没有贷款的学生没有数据。那么你如何建议没有贷款的学生预测y?这需要魔法。

另一方面,如果您从模型中省略作业或以某种方式重新编码(例如,初学者/经验/未知),您可以预测所有案例。最好的建议当然是获取更多数据。

答案 2 :(得分:0)

从您的数据中删除“student”并在predict中使用newdata参数:

predict(fit,newdata=mydat,type="response")