【问题标题】:Interpretation of contour plots (mgcv)等高线图的解释(mgcv)
【发布时间】:2020-04-27 00:44:54
【问题描述】:

当我们使用带有各向同性平滑器的 mgcv 包绘制 GAM 模型时,我们会得到类似这样的等高线图:

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

假设在这个模型中,我们有许多其他各向同性平滑器,例如: y ~ s(x1, x2) + s(x3, x4) + s(x5, x6)

我的疑问是:
在解释 s(x1, x2) 的等值线图时,其他各向同性平滑器会发生什么情况?
他们是“固定在他们的中位数”?
我们可以单独解释一个 s(x1, x2) 图吗?

【问题讨论】:

    标签: r plot gam mgcv


    【解决方案1】:

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

    所有平滑函数通常都受到总和为零的约束,以使模型常数项(截距)成为可识别的参数。因此,每个图中的 0 线是模型常数项的值(在链接函数或线性预测变量的范围内)。

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

    如果模型中的其他项可能包含另一个项中的一个或多个协变量,并且您想查看响应如何随着您改变该项或协变量而变化,那么您应该预测 从您感兴趣的变量范围内的模型中获取,同时将其他变量保持在某些表示值,比如它们的平均值或中位数。

    例如,如果你有

    model <- gam(y ~ s(x, z) + s(x, v), data = foo, method = 'REML')
    

    如果您想知道响应如何仅作为 x 的函数而变化,您可以将 zv 固定为代表值,然后预测 x 的一系列值:

    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,作为准备这样的图的一种方法,但它在哪里完成了艰苦的工作。

    【讨论】:

    • 所以在等高线图中(当我们得到各向同性平滑器时)我们仍然可以分别解释每个图?
    • 正如我在答案的第一行中所说,您可以单独解释平滑函数,而不是 coavriates 的影响。在您的情况下,每个二元平滑器中的协变量之间没有重叠,因此您也可以将它们解释为协变量对响应的影响,与其他平滑器分开。但在更一般的情况下,您必须小心地仅考虑功能。
    • 你好,加文!关于“y轴”的解释,你能看看我的问题吗? stackoverflow.com/questions/66429682/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多