Биномиальный GLMM с взаимодействием не сходится, будет сходиться без взаимодействия - PullRequest
0 голосов
/ 16 мая 2019

Я использую биномиальный GLMM, чтобы сравнить реальные домашние диапазоны животных с симулированными полигонами (кружками). У меня есть 14 домашних диапазонов (4 женщины, 10 мужчин), и я смоделировал 5 полигонов для каждого реального домашнего диапазона. Для всех полигонов, реальных и смоделированных, я систематически извлекал все растровые значения внутри полигонов. Растровые слои включают расстояние до поля, расстояние до леса, высоту и уклон.

Моя переменная ответа заключается в том, была ли выборка растровой ячейки в реальном домашнем диапазоне (1) или если она была выбрана в симулированном многоугольнике (0). 4 переменные предиктора - это значения тех ячеек, которые являются 4 переменными, упомянутыми выше. Отдельные животные, связанные с 1 реальным домашним полигоном и 5 симулированными полигонами, включены в качестве случайных перехватов. Набор данных содержит 53036 «1» ответов и 217963 «0» ответов.

Существует взаимодействие всех предикторов с полом животных, связанным с каждым домашним диапазоном и его 5 моделируемыми полигонами.

sex.mod <- glmer(pt.id ~ (field + forest + elev + slope)*sex + (1|animal), family ='binomial', data=polygon.values, na.action = na.omit) 

Когда я запускаю вышеупомянутую модель, при взаимодействии с полом модель не сходится. Когда я удаляю сексуальное взаимодействие (как показано ниже), оно не вызывает никаких проблем.

mod <- glmer(pt.id ~ field + forest + elev + slope + (1|animal), family ='binomial', data=polygon.values, na.action = na.omit) 

Проблема в том, что мне действительно необходимо учитывать взаимодействие пола с этими переменными, поскольку у этого вида есть существенные половые различия.

Потенциальные проблемы, которые я рассматриваю, таковы: выборка женщин небольшого размера по сравнению с мужчинами. Кроме того, многие (от 1/2 до 2/3) растровых ячеек находятся как в пределах реальных домашних диапазонов, так и в моделируемых полигонах (они сильно перекрываются), поэтому предикторы идентичны как для ответов 1, так и для 0.

Я изменил размеры всех переменных предиктора с помощью функции scale (). Я попытался увеличить итерации. Я попытался запустить несколько оптимизаторов (по умолчанию, bobyqa, Nelder_Mead, optimx.nlminb.

Вот пример одной из скорректированных моделей, которые я пробовал запустить:

 sex.mod <- glmer(pt.id ~ (field + forest + elev + slope)*sex + (1|animal), family ='binomial', data=polygon.values, na.action = na.omit, control=glmerControl(optimizer="bobyqa",  optCtrl=list(maxfun=2e6)))`````

Я не получаю никаких ошибок без термина взаимодействия. Когда я бегу с сексуальным взаимодействием, я получаю сообщение об ошибке:

Warning message:
In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
 Model failed to converge with max|grad| = 0.0014355 (tol = 0.001,          component 1)

Есть мысли о том, почему половое взаимодействие вызывает проблемы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...