Я хотел бы изучить различия в количестве жира между 2 посещениями с помощью линейной модели смешанных эффектов. Итак, все будет начинаться как lme(fat~
, теперь ... что касается коэффициентов, у меня есть некоторые, которые будут меняться от посещения 1 к посещению 2, так как они статус гипертонии, статус диабета, bmi, окружность талии, Smoking_status эт c. И другие переменные, которые не изменятся от посещения 1 к посещению 2, так как они пол или этническая принадлежность.
Обратите внимание, что следующие переменные являются фиктивными ( статус гипертонии, статус диабетика , Smoking_status, пол ), а следующие непрерывны ( bmi, окружность талии, возраст ).
Моя первоначальная модель с использованием пакета 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 ( с указанием нескольких отдельных случайных эффектов в nlme ) я прочитал, что nlme
не подходит для указания перекрестных эффектов (то есть нескольких отдельных случайных эффектов) и что пакет 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
Я предполагаю, что это может быть для одна из этих трех причин:
Код неверен ни в одной из попыток, если это правда, что было бы наилучшим способом express это?
Случайные эффекты действительно должны быть фиксированными эффектами (так что в этом случае правильной моделью будет lme(fat~ diabetes_status + hypertension_status + bmi + waist + smoker + gender + ethnicity, random= ~1|PatientID/Visit, data = df_1, na.action = na.omit))
, которая работает идеально.
Линейные модели смешанных эффектов не готовы обрабатывать так много случайных эффектов.
Есть мысли? Спасибо!