R:如何为逻辑回归模型制作预测列?

时间:2013-04-28 23:36:19

标签: r predict

所以我有一个名为x的数据集。内容很简单,只需写出来,所以我只是在这里概述:

  • 第一列中的因变量Report是二进制是/否(0 =否,1 =是)
  • 后续的3列是所有已转换为因子的分类变量(race.fsex.fgender.f),并且它们由数字指定(例如1 =白色,2 =黑色等。)

我在x上运行了逻辑回归,如下所示:

glm <- glm(Report ~ race.f + sex.f + gender.f, data=x,
           family = binomial(link="logit"))

我可以通过查看summary(glm$fitted)来检查拟合的概率。

我的问题:如何在此数据集x的右侧创建第五列,其中包含Report的预测(即拟合概率)?当然,我可以将glm$fitted作为列插入,但我想尝试编写一个代码,根据种族,性别,性别列中的内容来预测它,以便更广泛地使用。< / p>

现在我跟随代码,我希望创建一个预测列以及置信区间的下限和上限。

xnew <- cbind(xnew, predict(glm5, newdata = xnew, type = "link", se = TRUE))
xnew <- within(xnew, {
  PredictedProb <- plogis(fit)
  LL <- plogis(fit - (1.96 * se.fit))
  UL <- plogis(fit + (1.96 * se.fit))
})

不幸的是我收到错误:

Error in eval(expr, envir, enclos) : object 'race.f' not found

cbind代码之后。

有人有任何想法吗?

1 个答案:

答案 0 :(得分:0)

您的代码中似乎有一些拼写错误;首先Xnew调用glm5,但我的模型就是我看到的glm(顺便说一句,使用glm作为输出的名称可能不是一个好主意)。其次,确保变量race.f实际上在您希望进行预测的数据集中。我的猜测是R无法找到该变量,因此错误。