R:mgcv中的变系数GAMM模型 - 通过变量系数提取?

时间:2016-03-17 22:22:44

标签: r hierarchy gam mgcv

我使用by设置在R中使用'mgcv'创建一个变系数GAMM,并使用连续'by'变量。但是,我很难找到'by'变量效果的参数估计值。在这个例子中,我们确定温度t对于单个蛋的空间依赖性影响(即温度对单个蛋的线性影响如何在空间上变化):

require(mgcv)
require(gamair)
data(sole)
b = gam(eggs ~ s(la,lo) + s(la,lo, by = t), data = sole)

然后我们可以绘制s(la,lo, by = t)对预测变量t的预测效果:

pred <- predict(b, type = "terms", se.fit =T)
by.variable.prediction <- pred[[1]][,2]
plot(x= sole$t, y = by.variable.prediction)

但是,我无法找到每个采样位置的'by'变量t的参数估计值的列表/函数。 summary()coef()predict()未向您提供参数估算值。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

因此,变量t的系数是t等于1的值,条件是纬度和经度。因此,获取每个纬度和经度的t的系数/参数估计值的一种方法是使用t=1构建具有一定范围的纬度/经度组合的数据框,然后在其上运行Forecast.gam(而不是运行预测。就像您所做的那样,将数据用于拟合模型)。所以:

preddf <- expand.grid(list(la=seq(min(sole$la), max(sole$la), length.out=100),
                           lo=seq(min(sole$lo), max(sole$lo), length.out=100),
                           t=1))

preddf$parameter <- predict(b, preddf, type="response")

然后,如果要在空间上可视化该系数,则可以使用ggplot2对其进行绘制。

library(ggplot2)

ggplot(preddf) + 
  geom_tile(aes(x=lo, y=la, fill=parameter))