R:mgcv 中的变系数 GAMM 模型 - 提取“by”变量系数?

问题描述 投票:0回答:2

我正在通过使用

by
设置,使用 R 中的“mgcv”和连续“by”变量创建变系数 GAMM。但是,我很难找到“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()
不会为您提供参数估计值。

如有任何帮助,我们将不胜感激!

r hierarchy gam mgcv
2个回答
0
投票

因此,变量

t
的系数是
t
等于 1 时的值,以纬度和经度为条件。 因此,获得每个纬度和经度 t 的系数/参数估计值的一种方法是使用
t=1
的一系列纬度/经度组合构建自己的数据框,并在其上运行 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))

0
投票

@Amadou kone 我有一个类似的问题..您能否看看这个 SVC GAM 在存在因子变量并将系数转换为相对风险的情况下

© www.soinside.com 2019 - 2024. All rights reserved.