【发布时间】:2013-06-21 22:41:09
【问题描述】:
我在 R 中使用 glm.fit() 函数构建了 glm 模型:
m <- glm.fit(x = as.matrix(df[,x.id]), y = df[,y.id], family = gaussian())
之后,我尝试做出一些预测,使用(我不确定我是否正确选择了 s):
predict.glm(m, x, s = 0.005)
得到一个错误:
Error in terms.default(object) : no terms component nor attribute
在这里https://stat.ethz.ch/pipermail/r-help/2004-September/058242.html我找到了某种解决问题的方法:
predict.glm.fit<-function(glmfit, newmatrix){
newmatrix<-cbind(1,newmatrix)
coef <- rbind(1, as.matrix(glmfit$coef))
eta <- as.matrix(newmatrix) %*% as.matrix(coef)
exp(eta)/(1 + exp(eta))
}
但我不知道是否不能使用 glm.fit 并在之后进行预测。为什么可能或不可能?又该如何正确选择s呢?
注意如果使用 glm() 函数,则可以省略该问题。但是 glm() 函数需要公式,这在某些情况下不太方便。如果有人想在之后使用 glm.fit 和预测 这里有一些解决方案:https://stat.ethz.ch/pipermail/r-help/2004-September/058242.html
【问题讨论】:
-
您尝试阅读
?predict.glm吗?变量x是您想要预测响应的数据吗?s=0.005的论点是什么?此外,您需要将数据作为数据框提供predict.glm,其变量名称与您用于构建glm的数据相对应。 -
投票结束太模糊(或者可能太困惑?)无法回答。也许,如果可以对其进行编辑以包含正确输入的示例,您可以将其从遗忘中拯救出来。顺便说一句,当 lm.fit 可用时,为什么要使用
glm(...,family="gaussian")?
标签: r prediction glm