具有nlme和lme4的线性混合模型中的多个随机效应

时间:2020-08-07 10:24:09

标签: r lme4 mixed-models nlme multilevel-analysis

我想用线性混合效应模型研究两次就诊之间的脂肪差异。因此,一切都会以lme(fat~开始,现在...对于系数,我有一些值会从第1次访问到第2次更改,因为它们分别是高血压状态,糖尿病状态,bmi,腰围,吸烟状态等。其他变量从访问1到访问2都不会改变,因为它们是性别或种族。

请注意,以下变量是虚拟变量(高血压状态,糖尿病状态,吸烟状态,性别),而以下变量是连续变量( bmi,腰围,年龄)。 / p>

我使用nlme软件包的初始模型表示为:

lme(fat~ diabetes_status + hypertension_status + bmi + waist + smoker + gender + ethnicity, random= ~1|PatientID/Visit, data = df_1, na.action = na.omit)

访问有2个级别(1和2)

但是,我被告知,那些随时间变化的变量应该是随机效应,而所有其他变量都应该是固定的。在来自stackoverflow(specifying multiple separate random effects in nlme)的另一个问题中,我读到nlme不利于指定交叉效果(aka,多个分离的随机效果),并且lme4包将达到最佳效果。

我尝试了多种方法:

attempt_1 = lmer(fat ~ gender + ethnicity + (1|diabetes_status) + (1|hypertension_status) + (1|PatientID/visit), data=df_1, REML=TRUE)

attempt_2 = lmer(fat ~ gender + ethnicity + (1|diabetes_status) + (1|hypertension_status) + (1|PatientID/visit), data=df_1, REML=FALSE)

attempt_3 = lmer(fat ~ gender + ethnicity + (diabetes_status+hypertension_status|PatientID/visit), data=df_1, REML=TRUE)

attempt_4 = lmer(fat ~ age + ethnicity + (1|diabetes_status) + (1|hypertension_status) + (1|PatientID/visit), data=df_1, REML=FALSE)

attempt_5 = lmer(fat ~ age + ethnicity + (1+diabetes_status+hypertension_status|PatientID/visit), data=df_1, REML=TRUE)

但是这些尝试均无效,并且错误始终相同:Error: number of levels of each grouping factor must be < number of observations 我认为这可能是以下三个原因之一:

  1. 在任何尝试中该代码都不正确,如果这是真的,那将是表达这一点的最佳方法?

  2. 随机效应实际上应该是固定效应(因此,在这种情况下,正确的模型应该是lme(fat~ diabetes_status + hypertension_status + bmi + waist + smoker + gender + ethnicity, random= ~1|PatientID/Visit, data = df_1, na.action = na.omit)),它可以完美运行。

  3. 线性混合效果模型无法处理如此多的随机效果。

有什么想法吗? 谢谢!

0 个答案:

没有答案