1

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

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。可能导致这种差异的原因是什么?

4

1 回答 1

7

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

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

print (mod)

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

于 2016-09-01T16:18:20.240 回答