具有嵌套重复测量设计的多层次模型

机器算法验证 r 重复测量 多层次分析 lme4-nlme
2022-03-29 16:10:13

我是 R 新手,我正在尝试使用函数glmer(对于二项式结果变量)和lmer连续函数对我的数据集使用多级建模。

我有4Treatments实验Conc= 4 个级别的因子,= 整数(无十进制值)这是我的数据文件的示例PosQTimeConcTreatmentPosQ

ID   Time   Conc   Treatm    PosQ

1    1     1        1       6   
1    2     1        1       12   
1    3     1        1       14  
1    4     1        1       15 
2    1     0        3       20 
2    2     0        3       12
2    3     0        3       8
2    4     0        3       6

这是一个 3 级重复测量设计,我想测试结果变量的影响TreatmentTime对结果变量的影响。变量是嵌套的而不是交叉的,每个人只属于 4 个实验组中的 1 个,我对每个人做了 4 次测量。所以从最远到最近 Treatment is nested with IDthat is nested with Time(表示重复测量)

我想测量和的交互作用TimeTreatment根据他们所属的治疗组和时间的推移,我预计他们在 4 次测量结束时会更好)。我正在使用多级模型,因为我还想考虑个体差异以下是我使用的公式:

BinomialOutcomeVariable <- glmer(Conc ~ Treatment * Time + (1| Treatm) + (1|Treatm:ID) + (1|Treatm/ID/Time), data = analyses.4, family = binomial(link="logit"))

ContinuousVariable <- lmer(PosQ ~ Treatm * Sequ + (1| Treatm) + (1|Treatm:ID) + (1|Treatm/ID/Time), data = analyses.4)

这些公式正确吗?可以减少吗?因为当我对连续变量进行分析时,我会收到以下警告:

1:number of levels of each grouping factor must be < number of observations

2:grouping factors with < 5 sampled levels may give unreliable estimates

3:In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, : Model is nearly unidentifiable: large eigenvalue ratio - Rescale variables?

相反,如果我使用这个公式,我只有 1 个连续变量没有问题

model <- lmer(PosQ ~ Treatm * Time + (1| Treatm/ID), data = analyses.4)

和以前的公式一样吗?R是否理解这Time是嵌套的?如果我使用isNested函数,它表示它们没有嵌套。

任何帮助,想法,建议都非常感谢。

提前致谢

1个回答

这里唯一随机的部分是个人。时间和治疗都是固定的部分。据我了解,您需要全局(即固定)估计

  1. 时间
  2. 每个治疗水平(参考水平除外)
  3. 每个治疗水平(参考水平除外)与时间之间的相互作用。

以下模型将为您提供。

fm1 <- lmer(PosQ ~ Treatm * Time + (1|ID), data = analyses.4)
fm2 <- glmer(Conc ~ Treatm * Time + (1|ID), data = analyses.4, family = binomial)

话虽如此,您可以获得时间的随机效应,即。一个随机斜率模型,其中时间的影响因人而异。

fm3 <- lmer(PosQ ~ Treatm * Time + (Time|ID), data = analyses.4)
fm4 <- glmer(Conc ~ Treatm * Time + (Time|ID), data = analyses.4, family = binomial)

这是可能的,因为在时间上存在受试者内部的变化。但是,由于在治疗方面没有受试者内部差异,因此您不能对治疗进行相同的处理。

由于在治疗方面没有受试者内部变化,随机斜率模型中的时间效应实际上是个体接受的特定治疗的个体效应与时间的全局估计之间的偏差,后者将测量平均值对应于变量处理的参考类别的处理的效果。

您可以使用 anova() 来比较模型并测试是否有理由让时间的影响因主题而异:

anova(fm1, fm3)
anova(fm2, fm4)

会做你需要的测试。