【发布时间】:2016-03-17 22:22:44
【问题描述】:
我正在通过使用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() 不提供参数估计值。
任何帮助将不胜感激!
【问题讨论】:
-
看看
?mgcv::s,具体是by的描述。如果t是数字,则t的值乘以平滑。如果t是一个因子,那么该因子的每个级别都有一个单独的平滑。如果你想自己提取平滑(我不推荐它......看不出它们有什么用),this might help。 -
感谢您的建议!我环顾四周
mgcv::s,它并没有真正给你太多。使用数字t预测器,在我的例子中,我们假设一个线性关系谁的斜率可以在la,lo上变化,所以对于每个唯一的la,lo,我们得到一个特定的斜率,对吗?然后我应该能够在某个地方找到那个斜坡的大小和方向,它只是难以捉摸:)。我不想提取平滑,只想使用这些斜率绘制变量系数项。 -
对于每个
la和lo,都有一个平滑值乘以t。没有别的了。这就是文档所述。您可以将t解释为平滑的la,lo变量的“斜率”,或者您可以将la,lo平滑解释为t的斜率。 -
平滑是通过乘法常数完成的 - 拟合一个附加参数来乘以平滑是没有意义的,因为任何这样的值都可以直接合并到平滑中。
-
感谢您回复我!这就说得通了。你知道有什么资源可以绘制这些东西吗?我正在尝试类似于:onlinelibrary.wiley.com/doi/10.1890/09-1129.1/abstract