首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >等高线图的解释(mgcv)

等高线图的解释(mgcv)
EN

Stack Overflow用户
提问于 2020-04-27 00:44:54
回答 1查看 485关注 0票数 0

当我们使用具有各向同性平滑器的mgcv包绘制GAM模型时,我们有一个轮廓图,如下所示:

  • x轴用于一个预测器,
  • y轴用于另一个预测器
  • 主要是一个函数s(x1,x2) (各向同性窒息)。

假设在这个模型中,我们有许多其他各向同性平滑器,如:

代码语言:javascript
复制
y ~ s(x1, x2) + s(x3, x4) + s(x5, x6)

我的怀疑是:当解释s(x1, x2)的等高线图时,其他各向同性平滑者会发生什么?他们是“固定在他们的中间”吗?我们能单独解释一个s(x1, x2)图吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-27 17:32:10

由于该模型在函数中是可加性的,所以可以分别解释函数(单独的s()术语),但不一定是协变量对响应的单独影响。在您的情况下,在每个二元平滑的协变量之间没有重叠,所以您也可以将它们解释为协变量对响应的影响,而不是其他平滑的。

所有光滑函数通常都受从和到零的约束,以允许模型常量项(截距)成为可识别的参数。因此,每幅图中的0行是模型常量项(按链接函数或线性预测器的比例)的值。

plot.gam(model)输出中显示的图是部分效果图或部分图。如果您对理解该术语对响应的影响感兴趣,您基本上可以忽略其他术语,这是该术语的协变量的函数。

如果模型中有其他术语,其中可能包含另一个或多个协变量,并且您希望查看响应随该术语或队列的变化而发生的变化,那么您应该从模型中预测您感兴趣的变量的范围,同时将其他变量保存在一些表示值上,比如它们的均值或中间值。

例如,如果你有

代码语言:javascript
复制
model <- gam(y ~ s(x, z) + s(x, v), data = foo, method = 'REML')

而且您想知道响应是如何变化的,仅作为x的函数,您可以将zv修正为有代表性的值,然后对x的范围进行预测。

代码语言:javascript
复制
newdf <- with(foo, expand.grid(x = seq(min(x), max(x), length = 100),
                               z = median(z)
                               v = median(v)))
newdf <- cbind(newdf, fit = predict(model, newdata = newdf, type = 'response'))
plot(fit ~ x, data = newdf, type = 'l')

此外,请参阅mgcv包中的?vis.gam,作为准备类似于此的情节的一种方法,但它可以在其中完成艰苦的工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61450053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档