0

所以我有一个名为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一个列,但我想尝试编写一个代码,根据种族、性别、性别列中的任何内容来预测它,以便更广泛地使用。

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

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

有人知道吗?

4

1 回答 1

0

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

于 2014-03-13T21:17:48.523 回答