Остатки ГАМ в двух разных линиях - R "mgcv" - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь запустить GAM с использованием биномиальных данных (link = logit) на r с пакетом mgcv.Это делается для того, чтобы попытаться описать среду обитания афалины с использованием данных о присутствии (1) и отсутствии (0) в качестве отклика и набора переменных среды в качестве предиктора.

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

Вот вывод с использованием примераиз 2 переменных:

m1<-gam(Presence~s(Dist_Ent_k,k=8)+s(Dist_wall_m,k=5), data=mydata, 
        family = binomial(link = "logit"), weights=resp.weight)

summary(m1)

Family: binomial 
Link function: logit 

Formula:
Presence ~ s(Dist_Ent_k, k = 8) + s(Dist_wall_m, k = 5)

Parametric coefficients:
            Estimate Std. Error z value Pr(>|z|)   
(Intercept) -0.30155    0.09839  -3.065  0.00218 **

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Approximate significance of smooth terms:
                 edf Ref.df Chi.sq p-value   
s(Dist_Ent_k)  2.658  3.333 16.411  0.0015 **
s(Dist_wall_m) 1.389  1.680  0.273  0.7434   

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

R-sq.(adj) =  0.0359   Deviance explained = 3.42%
UBRE = -0.76828  Scale est. = 1         n = 2696

plot(m1,shade=T,scale = 0,residuals = TRUE)]

Заранее спасибо!

1 Ответ

0 голосов
/ 11 февраля 2019

То, что вы наносите на график, является частичными невязками, и то, что вы видите две отдельные полосы, является просто результатом того, что ваши данные являются двоичными или наблюдениями Бернулли.

Вы также увидите это, если построите графики невязок по сравнению слинейный предиктор, просто более экстремальный;try

layout(matrix(1:4, ncol = 2, byrow = TRUE))
gam.check(m1)
layout(1)

Диагностика моделей для моделей Бернулли (биномиальная с одним испытанием) затруднена из-за экстремального характера данных - ответ просто 0 или 1. Диагностику проще выполнить дляпример, если вы агрегируете данные таким образом, что у вас больше нет m=1 испытаний, а m=M;скажем, если ваши данные расположены в пространстве, вы можете создать более крупную сетку по региону и агрегировать 0 и 1 для точек в каждой сетке, сохраняя информацию о том, сколько точек было в каждой сетке (чтобы получить M для каждого агрегированного биномаcount).

В противном случае, я не думаю, что можно извлечь большую выгоду из построения частичных или отклонений от отклонений для таких моделей.График QQ в наборе из gam.check(), особенно если вы добавите rep = 100 (или некоторое такое число), более полезен для проверки предположений о распределении, поскольку он позволяет создать опорную полосу, которая имеет хорошие свойства для таких моделей, как эта;см. ?qq.gam для получения информации о функции / информации, необходимой для создания только графика QQ.

...