Чи залишаються автокорельовані залишкові візерунки навіть у моделях з відповідними структурами кореляції, і як вибрати найкращі моделі?


17

Контекст

Це питання використовує R, але стосується загальних статистичних питань.

Я аналізую вплив факторів смертності (% смертності від хвороб та паразитизму) на швидкість зростання популяції молі протягом часу, де популяції личинок відбирали з 12 місць раз на рік протягом 8 років. Дані про темпи приросту населення показують чітку, але нерегулярну циклічну тенденцію в часі.

Залишки простої узагальненої лінійної моделі (темпи зростання ~% захворювання +% паразитизму + рік) демонстрували аналогічно чітку, але нерегулярну циклічну тенденцію з часом. Отже, узагальнені моделі найменших квадратів тієї ж форми також були пристосовані до даних з відповідними кореляційними структурами для вирішення тимчасової автокореляції, наприклад, симетрія сполук, порядок 1 авторегресивного процесу та кореляційні структури середньоквадратичного ковзання.

Усі моделі містили однакові фіксовані ефекти, порівнювались за допомогою AIC та були встановлені REML (щоб дозволити порівняння різних кореляційних структур за AIC). Я використовую пакет Rl nlme та функцію gls.

питання 1

Залишки моделей GLS як і раніше демонструють майже однакові циклічні візерунки, коли їх планують проти часу. Чи завжди такі шаблони залишаться, навіть у моделях, які точно враховують структуру автокореляції?

Я моделював деякі спрощені, але подібні дані в R нижче мого другого питання, яке показує проблему, засновану на моєму теперішньому розумінні методів, необхідних для оцінки тимчасово автокорельованих шаблонів у залишках моделі , які я тепер знаю, що вони неправильні (див. Відповідь).

Питання 2

Я встановив мої дані GLS з усіма можливими правдоподібними кореляційними структурами, але жодна насправді не відповідає кращому рівню, ніж GLM без будь-якої кореляційної структури: лише одна модель GLS є дещо кращою (оцінка AIC = 1,8 нижче), тоді як усі інші мають більш високі значення AIC Однак це лише той випадок, коли всі моделі оснащені REML, а не ML, де моделі GLS явно набагато кращі, але я розумію, що з книг статистики ви повинні використовувати REML лише для порівняння моделей з різними структурами кореляції та однаковими фіксованими ефектами з причин Я не буду тут деталізувати.

Враховуючи чітко часовий автокорельований характер даних, якщо жодна модель не є навіть помірно кращою від простого GLM, який є найбільш підходящим способом вирішити, яку модель використовувати для висновку, припускаючи, що я використовую відповідний метод (я врешті-решт хочу використовувати AIC для порівняння різних змінних комбінацій)?

Q1 «симуляція», вивчаючи залишкові візерунки в моделях з відповідними кореляційними структурами і без них

Створення імітованої змінної відповіді з циклічним ефектом "час" та позитивним лінійним ефектом "x":

time <- 1:50
x <- sample(rep(1:25,each=2),50)
y <- rnorm(50,5,5) + (5 + 15*sin(2*pi*time/25)) + (x/1)

y має відображати циклічну тенденцію протягом "часу" із випадковими варіаціями:

plot(time,y)

І позитивний лінійний зв’язок з "x" з випадковим варіантом:

plot(x,y)

Створіть просту модель лінійної добавки "y ~ час + x":

require(nlme)
m1 <- gls(y ~ time + x, method="REML")

Модель відображає чіткі циклічні закономірності у залишках, коли планується проти «часу», як і слід було очікувати:

plot(time, m1$residuals)

І що має бути приємним, явним відсутністю будь-якого шаблону чи тренду у залишках, коли планується проти "х":

plot(x, m1$residuals)

Проста модель "y ~ час + x", яка включає авторегресивну кореляційну структуру порядку 1, повинна відповідати даним набагато краще, ніж попередня модель, завдяки структурі автокореляції при оцінці за допомогою AIC:

m2 <- gls(y ~ time + x, correlation = corAR1(form=~time), method="REML")
AIC(m1,m2)

Однак модель все одно має відображати майже однаково «тимчасово» автокорельовані залишки:

plot(time, m2$residuals)

Дуже дякую за будь-яку пораду.


Ваша модель неправильно фіксує залежність від часу, спричинену циклами (навіть для модельованого випадку), тому ваша характеристика " точно враховувати " не підходить. Причина у вас все ще є візерунком у ваших залишках, ймовірно, тому.
Glen_b -Встановіть Моніку

Я думаю, ти маєш це назад. Оцінки слід отримувати, використовуючи повну максимальну ймовірність, а не REML. Метод вибору = "ML" необхідний для проведення тестів на коефіцієнт ймовірності та необхідний, якщо ви хочете використовувати AIC для порівняння моделей з різними прогнозами. REML забезпечує кращі оцінки компонентів дисперсії та стандартних помилок, ніж ML. Використовуючи метод = "ML" для порівняння різних моделей, іноді рекомендується, щоб кінцева модель була переобладнана за допомогою методу = "REML", а для остаточного висновку використовувались оцінки та стандартні помилки з придатності REML.
theforestecologist

Відповіді:


24

Q1

Ви робите тут дві речі неправильно. Перший - це взагалі погана річ; взагалі не заглиблюйтесь в об'єкти моделі та не виривайте компоненти. Навчіться використовувати функції витяжки, в цьому випадку resid(). У цьому випадку ви отримуєте щось корисне, але якби у вас був інший тип об'єкта моделі, наприклад, GLM glm(), він mod$residualsмістив би робочі залишки з останньої ітерації IRLS і є тим, чого ви зазвичай не робите хочете!

Друге, що ви робите неправильно, - це те, що мене теж застало. Залишки, які ви вилучили (а також вилучили б, якби ви використовували resid()), є залишковими залишками або відповідями. По суті це різниця між встановленими значеннями та спостережуваними значеннями реакції, враховуючи лише умови фіксованого впливу . Ці значення будуть містити ту саму залишкову автокореляцію, що і m1тому, що фіксовані ефекти (або, якщо вам зручніше, лінійний предиктор) однакові у двох моделях ( ~ time + x).

Щоб отримати залишки, що включають вказаний вами термін кореляції, вам потрібні нормовані залишки. Ви отримуєте це, виконуючи:

resid(m1, type = "normalized")

Це (та інші види залишків) описано в ?residuals.gls:

type: an optional character string specifying the type of residuals
      to be used. If ‘"response"’, the "raw" residuals (observed -
      fitted) are used; else, if ‘"pearson"’, the standardized
      residuals (raw residuals divided by the corresponding
      standard errors) are used; else, if ‘"normalized"’, the
      normalized residuals (standardized residuals pre-multiplied
      by the inverse square-root factor of the estimated error
      correlation matrix) are used. Partial matching of arguments
      is used, so only the first character needs to be provided.
      Defaults to ‘"response"’.

Для порівняння тут наведені АСФ сировини (відповіді) та нормалізованих залишків

layout(matrix(1:2))
acf(resid(m2))
acf(resid(m2, type = "normalized"))
layout(1)

введіть тут опис зображення

Щоб побачити, чому це відбувається, і де сировинні залишки не включають термін кореляції, розгляньте підходящу модель

у=β0+β1тiме+β2х+ε

де

εN(0,σ2Λ)

Λρ^ρ|г|г - натуральне ціле поділ у одиницях часу пар залишків.

Необработі залишки, повернені за замовчуванням, resid(m2)є лише з частини лінійного предиктора, звідси і з цього біту

β0+β1тiме+β2х

Λ

Q2

Здається, ви намагаєтеся вписати нелінійний тренд з лінійною функцією timeі пояснити невідповідність "тренду" за допомогою AR (1) (або інших структур). Якщо ваші дані є чимось на зразок даних, які ви наводите тут, я би підходив до GAM, щоб забезпечити безперебійну функцію коваріатів. Ця модель була б

у=β0+f1(тiме)+f2(х)+ε

Λ=Я

library("mgcv")
m3 <- gam(y ~ s(time) + s(x), select = TRUE, method = "REML")

де select = TRUEзастосовується деяка додаткова усадка, щоб дозволити моделі видалити будь-який із елементів із моделі.

Ця модель дає

> summary(m3)

Family: gaussian 
Link function: identity 

Formula:
y ~ s(time) + s(x)

Parametric coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  23.1532     0.7104   32.59   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Approximate significance of smooth terms:
          edf Ref.df      F  p-value    
s(time) 8.041      9 26.364  < 2e-16 ***
s(x)    1.922      9  9.749 1.09e-14 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

і має чіткі терміни, які виглядають так:

введіть тут опис зображення

Залишки цієї моделі також краще поводяться (сирі залишки)

acf(resid(m3))

введіть тут опис зображення

Тепер слово обережності; існує проблема згладжування часових рядів у тому, що методи, які визначають, наскільки гладкими або химерними є функції, передбачають, що дані незалежні. Це означає в практичному розумінні, що плавна функція часу ( s(time)) могла б відповідати інформації, яка є дійсно випадковою автокорельованою помилкою, а не лише базовою тенденцією. Отже, ви повинні бути дуже обережними при встановленні плавніших даних для даних часових рядів.

Існує цілий ряд способів цього, але один із способів - перейти на примірку моделі, за допомогою gamm()якої lme()внутрішньо дзвонить, і що дозволяє використовувати correlationаргумент, який ви використовували для gls()моделі. Ось приклад

mm1 <- gamm(y ~ s(time, k = 6, fx = TRUE) + s(x), select = TRUE,
            method = "REML")
mm2 <- gamm(y ~ s(time, k = 6, fx = TRUE) + s(x), select = TRUE,
            method = "REML", correlation = corAR1(form = ~ time))

s(time)s(time)ρ=0s(time)ρ>>.5

Модель з AR (1) не представляє значного покращення над моделлю без AR (1):

> anova(mm1$lme, mm2$lme)
        Model df      AIC      BIC    logLik   Test   L.Ratio p-value
mm1$lme     1  9 301.5986 317.4494 -141.7993                         
mm2$lme     2 10 303.4168 321.0288 -141.7084 1 vs 2 0.1817652  0.6699

Якщо ми подивимось на оцінку для $ \ hat {\ rho}}, яку ми бачимо

> intervals(mm2$lme)
....

 Correlation structure:
         lower      est.     upper
Phi -0.2696671 0.0756494 0.4037265
attr(,"label")
[1] "Correlation structure:"

Phiρρ . Оцінка трохи більше нуля, тому матиме незначний вплив на придатність моделі, отже, ви можете залишити її в моделі, якщо є вагома апріорна причина вважати залишкову автокореляцію.


Дуже дякую, Гевін, за чудову, глибоку детальну відповідь. Схоже, мої дані дають якісно схожий результат із GAM, оскільки спостерігається або дуже незначне поліпшення, або погіршення придатності (оцінюється за допомогою AIC / AICc) при порівнянні GAM зі стандартними кореляційними структурами та без них. Чи знаєте ви / хтось: якщо в даних / залишках є дуже чіткі, якщо нерегулярні, циклічні тенденції, чи було б тоді найдоцільніше дотримуватися найбільш коректної кореляційної структури, а не моделі з такою? Знову дякую.
ЮпітерM104

1
Прийшов дуже пізно, але хотів подякувати Гевіну за цю фантастичну відповідь. Допомогла мені тонна.
giraffehere
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.