我使用 glm.fit() 函数在 R 中构建了 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