2013-04-28 136 views
0

所以我有一个数据集叫x。内容足够简单,只写了所以我就勾勒出在这里:R:如何制作逻辑回归模型的预测列?

  • 因变量,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作为列插入,但我想尝试编写一个代码,根据种族,性别,性别列中的任何内容进行预测,以获得更广泛的用途。

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

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代码之后。

任何人有什么想法?

回答

0

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