Я использую биномиальный 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)
Есть мысли о том, почему половое взаимодействие вызывает проблемы?