answer_42 (answer_42) wrote,
answer_42
answer_42

Category:

Временная автокорреляция

Временная автокорреляция (ВА) дает ответ на вопрос, для временной серии, есть ли зависимость между значением в этот год и предыдущими значениями. Например для серии значений с 1 значением каждый год, нам может быть интересно, есть ли зависимость между значением в этот год и предыдущий (лаг 1 год), два года назад (лаг 2 года). ВА данных может представлять проблему и препятствовать параметрическому анализу, так как наличие ВА в самих данных или остатках модели нарушает условие независимости отсчётов.

Как определить, есть ли временная автокорреляция?
В рассмотренных примерах используется логтрансформированное количество сгоревших территорий в Республике Калмыкия с 1985 по 2006 (Dubinin, 2010)

1. Наглядный способ, ACF plot.
logfire = c(0,3,0,4.1,2.8,1.1,0,5.4,4.3,0,0,0,6.1,6.6,0,7.2,5.8,7.7,3.3,6.2,7.5,8,8.2,6)
acf(logfire,type="correlation")
Результат:



Интерпретация:

По оси X - временной лаг, по Y - коэффициент корреляции, синий пунктир - статистическая значимость.

По большому счету, связи между тем сколько сгорело в этом году и сколько в предыдущем, пред-предыдущем и т.п. нет. Однако, интересно наличие не статистически значимой, но близкого к тому 4х-летнего цикла (максимальная временная корреляция, позитивная), данные предыдущего года также достаточно сильно скоррелированы.

2. Тест Дурбина-Ватсона (Durbin-Watson statistic). Тест на автокорреляцию остатков, т.е. требует модель. Подходит только для AR1 процессов, т.е. лаг 1. Это более достоверная проверка, чем просто проверка отдельно данных, так как данные могут быть сами по себе не скоррелированы, а остатки модели - да. Например, сравним с NDVI.
logfire = c(0,3,0,4.1,2.8,1.1,0,5.4,4.3,0,0,0,6.1,6.6,0,7.2,5.8,7.7,3.3,6.2,7.5)
ndvi = c(3263,2140,3098,2662,3452,3829,3290,4040,2929,3431,3628,3894,3267,3243,4427,3271,4035,3262,3966,3642,4279)
library(lmtest)
dwtest(logfire~ndvi)

#output
       Durbin-Watson test

data:  logfire ~ ndvi
DW = 1.5358, p-value = 0.1243
alternative hypothesis: true autocorrelation is greater than 0

Интерпретация: остатки модели не скоррелированы во времени, отвергнуть H0 нельзя, H0 гласит, что автокорреляция = 0 (см. H1)

3. Тест Бройша-Годфри (Breusch–Godfrey test). Также для остатков. Лучше чем предыдущий тем, что позволяет проверять автокорреляцию для любых лагов и стохастических регрессоров.

logfire = c(0,3,0,4.1,2.8,1.1,0,5.4,4.3,0,0,0,6.1,6.6,0,7.2,5.8,7.7,3.3,6.2,7.5)
ndvi = c(3263,2140,3098,2662,3452,3829,3290,4040,2929,3431,3628,3894,3267,3243,4427,3271,4035,3262,3966,3642,4279)
library(lmtest)
bgtest(logfire~ndvi,order = 4)

#output
        Breusch-Godfrey test for serial correlation of order 4

data:  logfire ~ ndvi
LM test = 4.8878, df = 4, p-value = 0.299
Tags: r, корреляции, статистика
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 3 comments