我假设这在西蒙的书的第二版中得到了更好的解释(应该会在几天内出版),因为他和他的学生在西蒙写完他的书之后的几年里才研究出了一些理论。
Marra & Wood (2011) 表明,如果我们想对具有平滑项的模型进行选择,那么一种非常好的方法是对所有平滑项添加额外的惩罚。这个额外的惩罚与该术语的平滑度惩罚一起工作,以控制该术语的摆动以及一个术语是否应该在模型中。
因此,除非您有任何好的理论来假设协变量的平滑或线性/参数形式/效果,否则您可以在所有模型(由基函数的线性组合的加法组合表示)之间进行选择来解决这个问题每个协变量的平滑一直到只包含一个截距的模型。
例如:
library(mgcv)
data(trees)
ct1 <- gam(log(Volume) ~ s(Height) + s(Girth), data=trees, method = "REML", select = TRUE)
> summary(ct1)
Family: gaussian
Link function: identity
Formula:
log(Volume) ~ s(Height) + s(Girth)
Parametric coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.27273 0.01492 219.3 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Approximate significance of smooth terms:
edf Ref.df F p-value
s(Height) 0.967 9 3.249 3.51e-06 ***
s(Girth) 2.725 9 75.470 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
R-sq.(adj) = 0.975 Deviance explained = 97.8%
-REML = -23.681 Scale est. = 0.0069012 n = 31
查看输出(特别是在参数系数部分),我们注意到这两项都非常重要。但请注意 的平滑的有效自由度值Height
;它是〜1。Wood (2013) 中解释了这些测试的作用。
这向我建议Height
应该作为线性参数项进入模型。我们可以通过绘制拟合平滑来评估这一点:
> plot(ct1, select = 1, shade = TRUE, scale = 0, seWithMean = TRUE)
这使:
这清楚地表明,所选形式的效果Height
是线性的。
但是,如果您事先不知道这一点(并且您不知道,因为否则您就不会问这个问题),您现在无法仅使用线性项将模型重新拟合到这些数据Height
。这会导致你在推理方面遇到真正的问题。中的输出summary()
说明了您进行此选择的事实。如果您使用 的线性参数效应重新拟合模型Height
,则输出不会知道这一点,并且您会得到过于乐观的 p 值。
至于问题 2,正如评论中已经提到的,不,不要对该模型的系数求幂。此外,不要深入研究拟合模型,因为这些组件的内容并不总是您所期望的。改用提取函数;在这种情况下coef()
。
在本书后面,当西蒙谈到 GLM 和 GAM 时,你会看到他通过 Gamma GLM 对这些数据进行建模:
ct1 <- gam(Volume ~ Height + s(Girth), data=trees, method = "REML",
family = Gamma(link = "log"))
在该模型中,因为拟合是在线性预测器的尺度上进行的(在对数尺度上),所以可以对系数取幂以获得一些部分效果,但最好使用predict(ct1, ...., type = "response")
它来取回拟合值/预测响应的规模(以 m^3 为单位)。
Marra, G. & Wood, SN 广义加法模型的实用变量选择。计算。统计。数据肛门。55, 2372–2387 (2011)。
Wood, SN 关于扩展广义加法模型平滑分量的 p 值。Biometrika 100, 221–228 (2013)。