Как бороться с пространственно автокоррелированными остатками в GLMM - PullRequest
0 голосов
/ 07 ноября 2018

Я провожу анализ того, где на ландшафте хищник встречает потенциальную добычу. Мои данные ответа являются двоичными с местоположением Encounter = 1 и Случайным местоположением = 0, и мои независимые переменные являются непрерывными, но были изменены.

Я изначально использовал структуру GLM

glm_global <- glm(Encounter ~ Dist_water_cs+coverMN_cs+I(coverMN_cs^2)+
                  Prey_bio_stand_cs+Prey_freq_stand_cs+Dist_centre_cs,
                  data=Data_scaled, family=binomial)

, но понял, что это не учитывает потенциальную пространственную автокорреляцию в данных (сплайн-коррелограмма показала высокую остаточную корреляцию до ~ 1000 м).

Correlog_glm_global <- spline.correlog (x = Data_scaled[, "Y"],
                                        y = Data_scaled[, "X"],
                                        z = residuals(glm_global,
                                        type = "pearson"), xmax = 1000)

Я попытался объяснить это, внедрив GLMM (в lme4) с группой хищников в качестве случайного эффекта.

glmm_global <- glmer(Encounter ~ Dist_water_cs+coverMN_cs+I(coverMN_cs^2)+
                     Prey_bio_stand_cs+Prey_freq_stand_cs+Dist_centre_cs+(1|Group),
                     data=Data_scaled, family=binomial)

При сравнении AIC глобального GLMM (1144.7) с глобальным GLM (1149.2) я получаю значение Delta AIC> 2, которое указывает на то, что GLMM лучше соответствует данным. Однако я по-прежнему получаю по существу ту же корреляцию в остатках, как показано на сплайн-коррелограмме для модели GLMM).

Correlog_glmm_global <- spline.correlog (x = Data_scaled[, "Y"],
                                         y = Data_scaled[, "X"],
                                         z = residuals(glmm_global,
                                         type = "pearson"), xmax = 10000)

Я также попытался явно включить Lat * Long всех местоположений в качестве независимой переменной, но результаты те же. После прочтения опций я попытался запустить Обобщенные уравнения оценки (GEE) в «geepack», думая, что это даст мне больше гибкости в отношении явного определения структуры корреляции (как в моделях GLS для нормально распределенных данных ответа) вместо того, чтобы ограничиваться сложная симметрия (это то, что мы получаем с GLMM). Однако я понял, что мои данные все еще требуют использования сложной симметрии (или «обмена» в geepack), поскольку у меня не было временной последовательности в данных. Когда я запускал глобальную модель

gee_global <- geeglm(Encounter ~ Dist_water_cs+coverMN_cs+I(coverMN_cs^2)+
                     Prey_bio_stand_cs+Prey_freq_stand_cs+Dist_centre_cs,
                     id=Pride, corstr="exchangeable", data=Data_scaled, family=binomial)

(использование масштабированных или немасштабированных данных не имело никакого значения, так что это с масштабированными данными для согласованности) вдруг ни один из моих ковариат не был значимым. Тем не менее, будучи новичком в GEE-моделировании, я не знаю, а) является ли это обоснованным подходом к этим данным, или б) объясняет ли это даже остаточную автокорреляцию, которая была очевидна повсюду.

Я был бы очень признателен за некоторую конструктивную обратную связь относительно 1), в каком направлении двигаться, как только я понял, что модель GLMM (с группой хищников в качестве случайного эффекта) все еще показывает пространственно автокоррелированные остатки Пирсона (до ~ 1000 м), 2 ) если действительно модели GEE имеют смысл на этом этапе и 3) если я что-то упустил в своем моделировании GEE. Большое спасибо.

1 Ответ

0 голосов
/ 10 ноября 2018

Принимая во внимание пространственную автокорреляцию в вашей модели, можно сделать разными способами. Я ограничу свой ответ на основные пакеты R, которые имеют дело со случайными эффектами.

Во-первых, вы можете пойти с пакетом nlme и указать корреляционную структуру в своих остатках (доступно много: corGaus, corLin, CorSpher ...). Вы должны попробовать многие из них и сохранить лучшую модель. В этом случае пространственная автокорреляция считается непрерывной и может быть аппроксимирована глобальной функцией.

Во-вторых, вы можете пойти с пакетом mgcv и добавить двумерный сплайн (пространственные координаты) к вашей модели. Таким образом, вы можете захватить пространственный рисунок и даже отобразить его В строгом смысле этот метод не учитывает пространственную автокорреляцию, но может решить проблему. Если в вашем случае пространство будет дискретным, вы можете использовать гладкое случайное марковское поле. Этот сайт очень полезен для поиска примеров: https://www.fromthebottomoftheheap.net

В-третьих, вы можете пойти с пакетом brms . Это позволяет вам определять очень сложные модели с другой структурой корреляции в ваших остатках (CAR и SAR). В пакете используется байесовский подход.

Надеюсь, это поможет. Удачи

...