【问题标题】:how to use predict()如何使用预测()
【发布时间】:2013-02-19 18:32:28
【问题描述】:

想要预测一个值,但这显然不是解决方案。我正在做多项选择测试,0.304...不是答案。如何正确使用predict()?

library(glm2)
data(crabs)
fit= glm(Satellites~Width,data=crabs, family="poisson")
plot(Satellites~Width,data=crabs)
abline(fit)
predict(fit, newdata=data.frame(Width=c(22)))
1 
0.3042347 

【问题讨论】:

  • 这是怎么回事?
  • 我认为该值不正确,因为我正在做多项选择,而 0.304.. 不是答案。
  • Ummm...22 * fit$coef[2] + fit$coef[1] 给出了您发布的内容。这是正确的。但很明显,这不是你所期望的!
  • 您使用 predict() 获得的值是期望值的 log(),因为您进行了泊松回归。只需使 exp(value) 获得与原始值相同的比例。
  • 应该是答案! @DidzisElferts

标签: r linear-regression poisson


【解决方案1】:

函数predict() 用于泊松回归(一般用于 GLM)默认情况下将计算 在线性预测变量的尺度上的值,即这种情况下的对数尺度(参见 @ 的帮助文件987654323@)。

predict(fit, newdata=data.frame(Width=c(22)))
        1 
0.3042347 

要获得响应变量范围内的预测值,您应该将参数type="response" 添加到函数predict()

predict(fit, newdata=data.frame(Width=c(22)),type="response")
       1 
1.355587 

【讨论】:

  • +1!preidct 有时看起来很笨拙!但它确实是一个伟大的主力!
  • 我不确定比例线性预测器与 log() 有什么关系……更困惑。
  • 你拟合了泊松模型。正如?poisson 将告诉您的,泊松的默认链接功能是日志(在帮助文件中显示为poisson(link = "log"))。在这种情况下,“在线性预测器的尺度上”是指在对数尺度上。如果您对此完全不熟悉,那么阅读更多有关 Poisson GLM 的内容可能会有所帮助...
  • @Roo,Venables 和 Ripley 的 MASS 书中有一整章解释了这一点:amazon.com/Modern-Applied-Statistics-W-N-Venables/dp/0387954570
猜你喜欢
  • 1970-01-01
  • 2020-08-24
  • 1970-01-01
  • 1970-01-01
  • 2011-09-14
  • 2012-11-06
  • 2020-10-30
  • 2015-06-06
  • 2012-12-13
相关资源
最近更新 更多