Я пытался выполнить линейный смешанный анализ модели.
Мой набор данных выглядит следующим образом
Проверьте формат набора данных здесь
Я хочу проанализировать разницу снижения ОФВ1, которая отображается как BDR_FEV1_pcForecast1 до 3 на каждую последующую дату, в соответствии с типом pheno_a.
Я попробовал несколько кодов, но не смог найти никакого решения
library(nlme)
library(lme4)
#Long type
CBL <- reshape(CB,direction="long",varying=37:40, sep="")
CBL$time2<-with(CBL,ifelse(time=="1_pcForecast", 1,
ifelse(time=="1_pcForecast1",2,
ifelse(time=="1_pcForecast2",3,
ifelse(time=="1_pcForecast3",4,NA)))))
CBL$group <-factor(CBL$pheno_a)
CBL$time2 <- factor (CBL$time2)
CBL$id <- factor (CBL$id)
library(tidyverse)
library (dplyr)
CBL2<-select(CBL,id, time2, group, BDR_FEV)
(fm<- lmer(BDR_FEV~ time2 + group + time2:group +
(time2|id),data=CBL2,control=lmerControl(check.nobs.vs.nRE="ignore")))
Результат должен отображаться так
Подход к линейной смешанной модели от REML ['lmerMod']
Формула: BDR_FEV ~ время2 + группа + время2: группа + (время2 | идентификатор)
Данные: CBL2
Критерий REML при сходимости: 36920,69
Случайные эффекты:
Название группы Std.Dev. Corr
id (Перехват) 18.481
time22 8.159 -0.30
time23 8.835 -0.28 0.94
time24 9.189 -0.28 0.93 1.00
Остаточный 4,964
Количество наблюдателей: 4639, группы: id, 2422
Фиксированные эффекты:
(Перехват) время22 время23 время24 группа1
62.6471 0.1298 -0.4445 -1.1221 -6.2939
время22: группа1, время23: группа1, время24: группа1
-2.2448 0.4472 -0.4682
код сходимости 0; 2 предупреждения оптимизатора; 0 предупреждений lme4
Предупреждающие сообщения:
1: В checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
невозможно оценить масштабированный градиент
2: В checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
Модель не сходится: вырожденный гессиан с 1 отрицательным собственным значением
Желаю вашего совета.