我使用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()
未向您提供参数估算值。
任何帮助将不胜感激!
答案 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))