重复测量的不平衡混合效应方差分析

机器算法验证 r 混合模式 重复测量 lme4-nlme
2022-01-20 22:43:45

我有来自在手术期间接受 2 种不同治疗的患者的数据。我需要分析它对心率的影响。每 15 分钟进行一次心率测量。

鉴于每位患者的手术长度可能不同,每位患者可以进行 7 到 10 次心率测量。所以应该使用不平衡的设计。我正在使用 R 进行分析。并且一直在使用 ez 包进行重复测量混合效应方差分析。但我不知道如何分析不平衡的数据。任何人都可以帮忙吗?

也欢迎就如何分析数据提出建议。

更新:
按照建议,我使用该函数拟合了数据lmer,发现最好的模型是:

heart.rate~ time + treatment + (1|id) + (0+time|id) + (0+treatment|time)

结果如下:

Random effects:
 Groups   Name        Variance   Std.Dev. Corr   
 id       time        0.00037139 0.019271        
 id       (Intercept) 9.77814104 3.127002        
 time     treat0      0.09981062 0.315928        
          treat1      1.82667634 1.351546 -0.504 
 Residual             2.70163305 1.643665        
Number of obs: 378, groups: subj, 60; time, 9

Fixed effects:
             Estimate Std. Error t value
(Intercept) 72.786396   0.649285  112.10
time         0.040714   0.005378    7.57
treat1       2.209312   1.040471    2.12

Correlation of Fixed Effects:
       (Intr) time  
time   -0.302       
treat1 -0.575 -0.121

现在我在解释结果时迷失了。我得出的结论是否正确,两种治疗方法在影响心率方面存在差异?treat0 和treat1 之间的-504 的相关性是什么意思?

1个回答

nlme/lme4 包中的 lme/lmer 函数能够处理不平衡的设计。您应该确保时间是一个数字变量。您可能还想测试不同类型的曲线。代码将如下所示:

library(lme4)
#plot data with a plot per person including a regression line for each
xyplot(heart.rate ~ time|id, groups=treatment, type= c("p", "r"), data=heart)

#Mixed effects modelling
#variation in intercept by participant
lmera.1 <- lmer(heart.rate ~ treatment * time + (1|id), data=heart)
#variation in intercept and slope without correlation between the two
lmera.2 <- lmer(heart.rate ~ treatment * time + (1|id) + (0+time|id), data=heart)
#As lmera.1 but with correlation between slope and intercept
lmera.3 <- lmer(heart.rate ~ treatment * time + (1+time|id), data=heart)

#Determine which random effects structure fits the data best
anova(lmera.1, lmera.2, lmera.3)

要获得二次模型,请使用公式“heart.rate ~ treatment * time * I(time^2) + (random effects)”。

更新:
在这种情况下,治疗是受试者之间的因素,我会坚持上面的模型规范。我不认为术语 (0+treatment|time) 是您希望包含在模型中的术语,对我来说,在这种情况下将时间视为随机效应分组变量是没有意义的。

但是要回答“ treat0treat1之间的相关性-0.504是什么意思”的问题,这是两个处理之间的相关系数,其中每个时间分组是一对值。如果 id 是分组因素并且治疗是受试者内变量,这更有意义。然后,您可以估计两个条件的截距之间的相关性。

在对模型做出任何结论之前,请使用 lmera.2 对其进行重新拟合并包含 REML=F。然后加载“languageR”包并运行:

plmera.2<-pvals.fnc(lmera.2)
plmera.2

然后你可以得到 p 值,但从它的外观来看,可能存在显着的时间影响和显着的治疗效果。