gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 23:55:22 24 4
gpt4 key购买 nike

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com