lme与varIdent重复测量

时间:2016-09-23 12:04:03

标签: r anova nlme

当使用lme重复测量和varIdent时,我遇到了奇怪的结果。任何帮助都将非常感谢!

我正在测试沿着时间序列的叶子的13C信号是否在2种(A和B)之间不同。我基本上对物种之间的整体差异感兴趣,而不是在特定的时间点。

这是我的数据集:

403

我正在应用以下模型:

Block Species time X13C 1 B 2 0.775040865 2 B 2 0.343913792 3 B 2 0.381053614 1 A 2 0.427101597 2 A 2 0.097743662 3 A 2 0.748345826 1 B 24 0.416700446 2 B 24 0.230773558 3 B 24 0.681386484 1 A 24 0.334026511 2 A 24 0.866426406 3 A 24 0.606346215 1 B 48 0.263085491 2 B 48 0.083323709 3 B 48 0.534697801 1 A 48 0.30594443 2 A 48 0.024555489 3 A 48 0.790670392 1 B 96 0.158090804 2 B 96 0.254880689 3 B 96 0.082666799 1 A 96 0.139189281 2 A 96 0.300340119 3 A 96 0.233149535 1 B 192 0.055421148 2 B 192 0.082582155 3 B 192 0.136636735 1 A 192 0.03641637 2 A 192 0.06082544 3 A 192 0.126029308

由于残差的时间存在异质性,我应用了varIdent,这改进了模型拟合(AIC)。标准化的残差图也看起来很好。

bulk<-lme(X13Catex ~ Species*time, random = ~1|Block/Species, method='REML', na.action=na.exclude, data=VacL, corAR1())

问题在于,通过这段代码,我得到了物种的重要p值,但是看看我的数据看起来物种看起来并不完全......我认为得到如此低的p值是非常奇怪的值,因为误差条在每个时间点重叠,并且在某些时间点A大于B,而在某些时间点则反之亦然。

bulk.var<-lme(X13Catex ~ Species*time, random = ~1|Block/Species, method='REML', na.action=na.exclude, data=VacL, corAR1(), weights=varIdent(form=~1|time))

当我分析其他类似的变量时,它又发生了......

我想知道每个采样时间(n = 3)每个物种的复制是否有问题。难道应用varIdent和具有如此少量重复的“相对复杂”模型可以解释发现的重要p值吗?有关如何处理这个的任何建议?

谢谢!

1 个答案:

答案 0 :(得分:0)

好的,让我试试。

首先,您的相关结构对我来说似乎不正确。你需要在那里使用时间协变量。

fit0 <- lme(X13C ~ Species*time, random = ~1|Block/Species, method='REML', 
            na.action=na.exclude, data=VacL,
            corAR1(0.9, form = ~ time | Block/Species))
summary(fit0)

然后嵌套随机效应的方差似乎相当小。我们尝试删除此参数。

fit1 <- lme(X13C ~ Species*time, random = ~1|Block, method='REML', 
            na.action=na.exclude, data=VacL,
            corAR1(0.9, form = ~ time | Block/Species))
summary(fit1)

anova(fit0, fit1)
#     Model df      AIC     BIC    logLik   Test     L.Ratio p-value
#fit0     1  8 35.47003 45.5348 -9.735014                           
#fit1     2  7 33.47003 42.2767 -9.735014 1 vs 2 8.37192e-09  0.9999

plot(fit1)

plot 1

情节确实显示出强烈的异质性。在这一点上,我会认真考虑一个GLMM。记住,δ13C是(转化的)级分13C / 12C。一个正态假设似乎有点可疑(尽管我偶尔会将它用于delta值)。然而,在我看来,我们可以根据拟合值对方差进行建模。

fit2 <- lme(X13C ~ Species*time, random = ~1|Block, method='REML', 
            na.action=na.exclude, data=VacL,
            corAR1(0.9, form = ~ time | Block/Species),
            weights = varPower())

plot(fit2, resid(., type = "normalized") ~ fitted(.))

plot2

anova(fit1, fit2)
#     Model df      AIC      BIC    logLik   Test  L.Ratio p-value
#fit1     1  7 33.47003 42.27670 -9.735014                        
#fit2     2  8 11.34319 21.40796  2.328405 1 vs 2 24.12684  <.0001

还不错。让我们检查一下p值。

coef(summary(fit2))
#                      Value    Std.Error DF    t-value      p-value
#(Intercept)    0.3906798322 0.0640391495 24  6.1006405 2.661703e-06
#SpeciesB      -0.0303078937 0.0777180616 24 -0.3899723 6.999965e-01
#time          -0.0016541839 0.0003059863 24 -5.4060727 1.491893e-05
#SpeciesB:time  0.0002578782 0.0004048368 24  0.6369930 5.301592e-01

拦截和斜坡都没有明显的不同。现在,让我们尝试ANOVA。

anova(fit2)
             numDF denDF  F-value p-value
(Intercept)      1    24   9.0061  0.0062
Species          1    24 525.7457  <.0001
time             1    24  56.5135  <.0001
Species:time     1    24   0.4058  0.5302

没有方差结构的比较:

anova(fit1)
             numDF denDF   F-value p-value
(Intercept)      1    24 29.536428  <.0001
Species          1    24  0.319802  0.5770
time             1    24 17.602173  0.0003
Species:time     1    24  0.041482  0.8403

因此,对于使用较少四个参数的模型,您会遇到同样的问题。现在我不知道为什么物种效应在顺序ANOVA中是显着的,如果包括方差结构,尽管相应的模型参数不重要。你可以学习Pinheiro&amp; Bates 2000并尝试找出自己或在Cross Validated上询问。