由于某种原因,当我指定glms(结果也表明lm也是)时,R不会预测数据的缺失值。这是一个例子:

y = round(runif(50))
y = c(y,rep(NA,50))
x = rnorm(100)
m = glm(y~x, family=binomial(link="logit"))
p = predict(m,na.action=na.pass)
length(p)

y = round(runif(50))
y = c(y,rep(NA,50))
x = rnorm(100)
m = lm(y~x)
p = predict(m)
length(p)


p的长度应为100,但应为50。奇怪的是,我在同一脚本中还有其他预测可以根据丢失的数据进行预测。

编辑:事实证明那些其他预测是完全错误的-我在做imputed.value = rnorm(N,mean.from.predict,var.of.prediction.interval)。这在length(predict)<N时从lm预测或glm预测函数中回收了均值和sd向量,这与我正在寻找的完全不同。

所以我的问题是,我的示例代码正在阻止glm和lm预测缺失值吗?

谢谢!

最佳答案

glm拟合模型时,它仅使用没有缺失值的情况。通过构造数据框并将其传递给y,您仍然可以获得有关predict.glm值缺失的情况的预测。

predict(m, newdata=data.frame(y, x))

07-24 09:51
查看更多