我怀疑差异在于您获得的拟合值。如果你看一下我所说的模型拟合,系数估计,方差项,模型是相同的。比较summary(m2$lme)
和。summary(m1)
_gam.vcomp(m1)
> summary(m1)
Family: gaussian
Link function: identity
Formula:
y ~ x + s(ID, bs = "re")
Parametric coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.05234 0.07932 0.66 0.51
x 1.01375 0.03535 28.68 <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(ID) 167.1 199 5.243 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
R-sq.(adj) = 0.674 Deviance explained = 72.9%
GCV = 1.2133 Scale est. = 1.0082 n = 1000
> summary(m2$lme)
Linear mixed-effects model fit by maximum likelihood
Data: strip.offset(mf)
AIC BIC logLik
3218.329 3237.96 -1605.165
Random effects:
Formula: ~1 | ID
(Intercept) Residual
StdDev: 1.025306 1.003452
Fixed effects: y.0 ~ X - 1
Value Std.Error DF t-value p-value
X(Intercept) 0.0523358 0.07922717 799 0.660578 0.5091
Xx 1.0137531 0.03535887 799 28.670404 0.0000
Correlation:
X(Int)
Xx 0.014
Standardized Within-Group Residuals:
Min Q1 Med Q3 Max
-2.80375873 -0.67702485 0.04245145 0.64026891 2.59257295
Number of Observations: 1000
Number of Groups: 200
我们看到在两个模型中的估计值为 1.01375 和 ~0.05。还要注意受试者/组间方差的估计值(作为标准偏差),在 的输出中给出为 1.025 。相同的信息可以使用 来从模型中计算出来,它给出β^xβ^0σ^IDsummary(m2$lme)
gam
gam.vcomp()
m1
> gam.vcomp(m1)
s(ID)
1.027795
这已经足够让我们不用担心了。
因此,这些fitted
方法必须返回不同的拟合值;如果我们从 生成拟合值m2$lme
,那么我们得到的值与由 生成的值相同fitted(m1)
:
> mean((fitted(m1)-fitted(m2$lme))^2)
[1] 2.966927e-07
这是出于所有意图和目的0。
fitted.lme
ID
被记录以从总体水平(平均超过)和针对特定主题的组件返回贡献。这就是fitted.gam
要做的,m1
因为它将随机效果表示为样条“固定”效果。在gamm
模型的情况下,fitted.gam
返回模型“固定”效应部分的拟合值,这将解释差异。(我写“固定”是因为使用样条曲线,“固定”和“随机”效果会变得有点模糊。)
在他的书中,Simon Wood 在使用gamm()
. 他谈到使用resid()
和fitted()
在模型的$lme
组件上gamm
分别排除和包括随机效应。他说这适用于此处使用的特定示例中的模型诊断。
您需要哪一个取决于您的具体使用/研究问题的背景。
如果您所需要的只是像这样的简单随机效应,并且您熟悉 GAM 和mgcv,那么使用随机效应样条基础可能会更简单,gam()
而不必处理作为 GAMM 的混合的奇怪输出模型通过gamm()
. 如上所示,这两个模型实际上是等效的,您报告的差异仅取决于拟合值是否包含或排除受试者(或 ID)特定效果。