【问题标题】:Beta family in gam model fitting values greater than 1 and less than 0. Whats going on? (mgcv)gam 模型中的 Beta 族拟合值大于 1 且小于 0。这是怎么回事? (mgcv)
【发布时间】:2017-01-10 15:19:09
【问题描述】:

我正在使用 R 中 mgcv 包的 gam 函数将 gam 拟合到区间 (0,1) 上的数据。我的模型代码如下所示:

mod <- gam(y ~ x1 + x2 + s(latitude, longitude), faimly=betar(link='logit'), data = data)

模型拟合得很好,但是当我绘制拟合值与观察值时,它看起来像这样:

plot(data$y ~ fitted(mod), ylab='observed',xlab='fitted')

显然,模型拟合大于 1 且小于 0 的值。这不应该发生。它违反了 beta 分布的假设。当我在 R 的 betareg 包中为相同的数据建模时不会发生这种情况。可能导致这种差异的原因是什么?

【问题讨论】:

  • 你如何确定“合身”?如果您使用predict,则需要使用参数type="response",否则它将超出范围。如果您使用的是fitted 函数,我不确定。
  • @Wayne 我正在使用fitted(mod) 获得拟合值。使用plot(y ~ fitted(mod)) 完成绘图

标签: r beta-distribution gam mgcv


【解决方案1】:

mod &lt;- gam(y ~ x1 + x2 + s(latitude, longitude), faimly=betar(link='logit'), data = data)

如果你使用faimly(错别字),gam 不会抱怨并继续进行高斯运算。试试:

print (mod)

并查看它是否显示“家庭:Beta 回归”或“家庭:高斯”

【讨论】:

  • 哇,谢谢。就是这样。如果它发出警告会很好!
猜你喜欢
  • 2020-03-21
  • 2017-11-26
  • 1970-01-01
  • 2016-08-11
  • 2023-01-25
  • 1970-01-01
  • 2018-06-19
  • 2020-11-29
  • 1970-01-01
相关资源
最近更新 更多