В следующем наборе данных я хотел посмотреть, изменится ли ответ (эффект) в отношении сайтов, сезона, продолжительности и их взаимодействий. Некоторые онлайн-форумы по статистике предложили мне продолжить работу с линейными моделями со смешанными эффектами, но проблема в том, что, поскольку репликации рандомизированы на каждой станции, у меня мало шансов собрать образец из одного и того же места в последовательных сезонах (например, repl-1 для s1 после муссона может не совпадать с таковым для муссона). В отличие от клинических испытаний (с дизайном внутри объекта), когда вы измеряете один и тот же объект несколько раз в течение сезона. Однако, рассматривая места и время года как случайный фактор, я выполнил следующие команды и получил предупреждение:
Warning messages:
1: In checkConv(attr(opt, "derivs"), optpar,ctrl=controlpar,ctrl=controlcheckConv,
: unable to evaluate scaled gradient
2: In checkConv(attr(opt, "derivs"), optpar,ctrl=controlpar,ctrl=controlcheckConv,
: Model failed to converge: degenerate Hessian with 1 negative eigenvalues
Может ли кто-нибудь помочь мне решить проблему? Коды приведены ниже:
library(lme4)
read.table(textConnection("duration season sites effect
4d mon s1 7305.91
4d mon s2 856.297
4d mon s3 649.93
4d mon s1 10121.62
4d mon s2 5137.85
4d mon s3 3059.89
4d mon s1 5384.3
4d mon s2 5014.66
4d mon s3 3378.15
4d post s1 6475.53
4d post s2 2923.15
4d post s3 554.05
4d post s1 7590.8
4d post s2 3888.01
4d post s3 600.07
4d post s1 6717.63
4d post s2 1542.93
4d post s3 1001.4
4d pre s1 9290.84
4d pre s2 2199.05
4d pre s3 1149.99
4d pre s1 5864.29
4d pre s2 4847.92
4d pre s3 4172.71
4d pre s1 8419.88
4d pre s2 685.18
4d pre s3 4133.15
7d mon s1 11129.86
7d mon s2 1492.36
7d mon s3 1375
7d mon s1 10927.16
7d mon s2 8131.14
7d mon s3 9610.08
7d mon s1 13732.55
7d mon s2 13314.01
7d mon s3 4075.65
7d post s1 11770.79
7d post s2 4254.88
7d post s3 753.2
7d post s1 11324.95
7d post s2 5133.76
7d post s3 2156.2
7d post s1 12103.76
7d post s2 3143.72
7d post s3 2603.23
7d pre s1 13928.88
7d pre s2 3208.28
7d pre s3 8015.04
7d pre s1 11851.47
7d pre s2 6815.31
7d pre s3 8478.77
7d pre s1 13600.48
7d pre s2 1219.46
7d pre s3 6987.5
"),header=T)->dat1
m1 = lmer(effect ~ duration + (1+duration|sites) +(1+duration|season),
data=dat1, REML=FALSE)
источник
Ответы:
«Решение» проблемы, с которой вы сталкиваетесь, в том смысле, что вы не получаете предупреждений о неудачной конвергенции, довольно просто: вы не используете оптимизатор BOBYQA по умолчанию, а вместо этого вы решаете использовать процедуру оптимизации Nelder-Mead, которая использовалась по умолчанию в предыдущих
1.0.x
предыдущих версиях. Или вы устанавливаете пакет,optimx
чтобы вы могли напрямую выполнять подпрограмму L-BFGS-B илиnlminb
(то же, что иlme4
версии до версии1
). Например:все работает нормально (без предупреждений). Интересные вопросы:
REML = TRUE
вы не получили никаких предупреждений.Вкратце, 1. вы получили эти предупреждения, потому что вы определили
duration
как фиксированный эффект, так и случайный наклон для фактора,sites
а такжеseason
. Модель эффективно исчерпала степени свободы, чтобы оценить корреляции между уклонами и определенными вами перехватами. Если вы использовали немного более простую модель, такую как:у вас не возникнет проблем сходимости. Эта модель будет эффективно оценивать некоррелированные случайные перехваты и случайные наклоны для каждого
season
.REML = FALSE
И последнее замечание: я не уверен, имеет ли смысл использовать
season
в качестве случайного эффекта для начала. В конце концов, есть только так много сезонов, чтобы вы могли относиться к ним как к фиксированным эффектам.источник
REML = FALSE, glmerControl(optimizer ='optimx', optCtrl=list(method='nlminb'))
- фактически решенная проблема сходимости вglmer
!Вопрос скорее статистический, чем технический. На самом деле, я использовал модель случайного эффекта вместо фиксированного эффекта. Я думаю, что ни один из факторов не следует рассматривать как случайный фактор, так как нам нужно как минимум 5 или 6 уровней или повторов, чтобы рассматривать фактор как случайный эффект (см. здесь Какое минимальное рекомендуемое количество групп для фактора случайных эффектов? ).
Приведенный выше набор данных содержит только три образца / место / сезон, что недостаточно для модели со случайным эффектом. В наборе данных продолжительность 4 дня и 7 дней принадлежат двум отдельным параллельным экспериментам, проводимым в одно и то же время. Поэтому для моделирования эффекта (переменной отклика) здесь было бы достаточно разделить данные, установленные по продолжительности (4-дневный и 7-дневный), и выполнить двухстороннюю анову для каждой продолжительности с сезоном и участками в качестве факторов. Модель должна быть следующей:
Спасибо Бодо Винтеру ( http://www.bodowinter.com/tutorial/bw_LME_tutorial2.pdf ) и @ usεr11852, которые помогли мне решить эту проблему.
источник