出于某种原因,当我指定 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 predict 或 glm predict 函数中回收均值和 sd 向量。 ,这与我所寻求的完全不同。所以我的问题是 我的示例代码如何阻止 glm 和 lm 预测缺失值?
谢谢!
最佳答案
当glm
拟合模型,它只使用没有缺失值的情况。您仍然可以获得对 y
的情况的预测。缺少值,通过构建数据框并将其传递给 predict.glm
.
predict(m, newdata=data.frame(y, x))
关于r - Predict.glm 不预测缺失值作为响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16265798/