1

我正在使用 R 中的“mgcv”和连续的“by”变量创建一个可变系数 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)

但是,我找不到t每个采样位置的“按”变量的参数估计值的列表/函数。summary(), coef(), 并且predict()不给你参数估计。

任何帮助,将不胜感激!

4

1 回答 1

0

所以变量的系数是等于1t的值,取决于纬度和经度。t因此,在每个纬度和经度获得 t 的系数/参数估计值的一种方法是使用一系列纬度/经度组合构建您自己的数据框,t=1并在其上运行 predict.gam(而不是在使用的数据上运行 predict.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))
于 2019-10-15T18:35:05.787 回答