比较 R 中线性混合效应回归中的模型

机器算法验证 r 回归 线性的 混合模式
2022-04-13 04:35:25

我有一个非常大的数据集,重复测量相同的血液值(co)(每位患者 1 到 7 次测量)。每次测量都与时间相结合,时间是外科手术和血液水平测量之间的时间间隔。

我的目的是表明这种血液值与时间呈正相关。

血液水平测量值高度向右倾斜,因此我使用对数变换和线性混合效应回归模型(lme4 包中的 lmer)。

我构建了一个空模型:

fit1<-(lmer(lgco~(1|id),data=ASR))

模型 2 包括时间作为自变量:

fit2<-(lmer(lgco~time+(1|id),data=ASR))

Id 是数据集中的患者编号。

通过使用 anova() 函数,我发现 fit2 明显优于 fit1:

> anova(fit1,fit2)
refitting model(s) with ML (instead of REML)

Data: ASR
Models:
fit1: lgco ~ (1 | id)
fit2: lgco ~ time + (1 | id)
     Df    AIC    BIC  logLik deviance  Chisq Chi Df Pr(>Chisq)    
fit1  3 342.77 357.50 -168.39   336.77                             
fit2  4 320.64 340.27 -156.32   312.64 24.135      1  8.983e-07 ***

然而,我有其他数据表明时间和血液价值之间的相关性可能更加深刻,例如二次方。这将是模型 3。

我尝试了以下方法:首先我取血值的平方根,然后使用 log 进行转换。

fit3<-(lmer(lgsqrtco~time+(1|id),data=ASR))

我的问题是,在因变量在这些模型中有两种不同的转换之后,我现在可以比较模型 2 和 3。在 fit1 和 fit2 中,变换是相同的,只是添加了独立的。我假设通过不同的因变量转换,不允许使用 anova() :

anova(fit2,fit3)
refitting model(s) with ML (instead of REML)
Data: ASR
Models:
fit2: lgco ~ time + (1 | id)
fit3: lgsqrtco ~ time + (1 | id)
     Df      AIC      BIC  logLik deviance  Chisq Chi Df Pr(>Chisq)    
fit2  4   320.64   340.27 -156.32   312.64                             
fit3  4 -1065.66 -1046.03  536.83 -1073.66 1386.3      0  < 2.2e-16 ***
1个回答

虽然您可以比较模型 1 和模型 2,并通过普通似然比检验或 F 检验(例如 R 中的 anova)进行选择,但您不能通过似然比检验或 F 检验比较模型 1 与 3 或模型 2 与 3。您也不能按信息标准比较 1 对 3 和 2 对 3,因为响应变量在不同的尺度上。

因此,pvalues 形成anova(fit2,fit3)并且anova(fit1,fit3)具有误导性。原因是的模型和的模型没有嵌套,似然比和 F 检验不再具有通常的渐近分布。对于这种困难的情况有一些特殊的测试(参见 MacKinnon 1983,针对非嵌套替代的模型规范测试,计量经济学评论 2,5-110链接)。希望这可以帮助。logylog(y)3