r - 用于 glm.fit 的 predict() 不起作用。为什么?

标签 r prediction glm

我已经使用 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

最佳答案

您应该使用 glm 而不是 glm.fit。 glm.fit 是 glm 的主力,但 glm 返回类 c("glm", "lm") 的对象,其中有一个 predict.glm 方法。然后,您只需将 predict 应用于 glm 返回的对象(可能指定一些新数据和您想要的预测类型),通用 predict 函数将选择正确的方法函数。

关于r - 用于 glm.fit 的 predict() 不起作用。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17245345/

相关文章:

r - 从数据框列中提取所有百分比数字

r - 在 dplyr 过滤器中使用 "any"运算符

algorithm - 关键词联想学习算法

r - Logistic回归错误: New levels in categorical column in Test data

r - 哪个用于稳健线性回归的函数/包可与 glmulti 一起使用(即,行为类似于 glm)?

r - 将 stargazer 与内存贪婪的 glm 对象一起使用

R GLM函数省略数据

r - R 雪中的 makeCluster 函数无限期挂起

随机森林包预测,newdata 参数?

R:滚动相关性/非标准评估