等高线图的解释 (mgcv)
Interpretation of contour plots (mgcv)
当我们使用带有各向同性平滑器的 mgcv
包绘制 GAM 模型时,我们有这样的等高线图:
- 一个预测变量的 x 轴,
- 另一个预测变量的 y 轴,
- 主要是函数 s(x1, x2)(各向同性窒息)。
假设在此模型中我们有许多其他各向同性平滑器,例如:
y ~ s(x1, x2) + s(x3, x4) + s(x5, x6)
我的疑惑是:
在解释 s(x1, x2) 的等高线图时,其他各向同性平滑器发生了什么?
他们是 "fixed in their medians"?
我们可以单独解释 s(x1, x2) 图吗?
因为这个模型在函数中是可加的,所以您可以分别解释 函数 (单独的 s()
项),但不一定是协变量对回复。在您的情况下,每个双变量平滑中的协变量之间没有重叠,因此您也可以将它们解释为协变量对与其他平滑器分开的响应的影响。
所有平滑函数通常都受和为零的约束,以允许模型常数项(截距)成为可识别的参数。因此,每个图中的 0 线是模型常数项的值(在 link 函数或线性预测变量的范围内)。
plot.gam(model)
输出中显示的图是部分效应图或部分图。如果您有兴趣了解该术语对作为该术语协变量函数的响应的影响,您基本上可以忽略其他术语。
如果您在模型中有其他项可能包含另一个项中的一个或多个协变量,并且您想了解响应如何随着您改变该项或协变量而变化,那么您应该 从您感兴趣的变量范围内的模型中预测,同时将其他变量保持在某些表示值,比如它们的均值或中位数。
例如,如果您有
model <- gam(y ~ s(x, z) + s(x, v), data = foo, method = 'REML')
并且您想知道响应如何仅作为 x
的函数变化,您可以将 z
和 v
固定为代表性值,然后预测一系列值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
作为准备像这样的图的一种方法,但它在哪里做艰苦的工作。
当我们使用带有各向同性平滑器的 mgcv
包绘制 GAM 模型时,我们有这样的等高线图:
- 一个预测变量的 x 轴,
- 另一个预测变量的 y 轴,
- 主要是函数 s(x1, x2)(各向同性窒息)。
假设在此模型中我们有许多其他各向同性平滑器,例如: y ~ s(x1, x2) + s(x3, x4) + s(x5, x6)
我的疑惑是:
在解释 s(x1, x2) 的等高线图时,其他各向同性平滑器发生了什么?
他们是 "fixed in their medians"?
我们可以单独解释 s(x1, x2) 图吗?
因为这个模型在函数中是可加的,所以您可以分别解释 函数 (单独的 s()
项),但不一定是协变量对回复。在您的情况下,每个双变量平滑中的协变量之间没有重叠,因此您也可以将它们解释为协变量对与其他平滑器分开的响应的影响。
所有平滑函数通常都受和为零的约束,以允许模型常数项(截距)成为可识别的参数。因此,每个图中的 0 线是模型常数项的值(在 link 函数或线性预测变量的范围内)。
plot.gam(model)
输出中显示的图是部分效应图或部分图。如果您有兴趣了解该术语对作为该术语协变量函数的响应的影响,您基本上可以忽略其他术语。
如果您在模型中有其他项可能包含另一个项中的一个或多个协变量,并且您想了解响应如何随着您改变该项或协变量而变化,那么您应该 从您感兴趣的变量范围内的模型中预测,同时将其他变量保持在某些表示值,比如它们的均值或中位数。
例如,如果您有
model <- gam(y ~ s(x, z) + s(x, v), data = foo, method = 'REML')
并且您想知道响应如何仅作为 x
的函数变化,您可以将 z
和 v
固定为代表性值,然后预测一系列值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
作为准备像这样的图的一种方法,但它在哪里做艰苦的工作。