Как выполнить тест Дарбина-Ватсона в R


Одно из ключевых допущений линейной регрессии состоит в том, что между остатками нет корреляции, т. е. остатки независимы.

Один из способов определить, выполняется ли это предположение, — выполнить тест Дарбина-Ватсона , который используется для обнаружения наличия автокорреляции в остатках регрессии. В этом тесте используются следующие гипотезы:

H 0 (нулевая гипотеза): между остатками нет корреляции.

H A (альтернативная гипотеза): остатки автокоррелированы.

В этом руководстве объясняется, как выполнить тест Дарбина-Ватсона в R.

Пример: тест Дарбина-Ватсона в R

Чтобы выполнить тест Дарбина-Ватсона, нам сначала нужно подобрать модель линейной регрессии. Мы будем использовать встроенный набор данных R mtcars и подгоним регрессионную модель, используя mpg в качестве переменной-предиктора и disp и wt в качестве независимых переменных.

#load mtcars dataset
data(mtcars)

#view first six rows of dataset
head(mtcars)

 mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1

#fit regression model
model <- lm(mpg ~ disp+wt, data=mtcars)

Затем мы можем выполнить тест Дарбина-Ватсона, используя функцию durbinWatsonTest() из пакета car :

#load car package
library(car)

#perform Durbin-Watson test
durbinWatsonTest(model)

Loading required package: carData
 lag Autocorrelation D-W Statistic p-value
 1 0.341622 1.276569 0.034
 Alternative hypothesis: rho != 0

Из вывода мы видим, что статистика теста равна 1,276569 , а соответствующее значение p равно 0,034.Поскольку это p-значение меньше 0,05, мы можем отклонить нулевую гипотезу и сделать вывод, что остатки в этой регрессионной модели автокоррелированы.

Что делать, если обнаружена автокорреляция

Если вы отвергаете нулевую гипотезу и заключаете, что в остатках присутствует автокорреляция, то у вас есть несколько различных вариантов исправления этой проблемы, если вы считаете ее достаточно серьезной:

  • Для положительной последовательной корреляции рассмотрите возможность добавления в модель лагов зависимой и/или независимой переменной.
  • Для отрицательной последовательной корреляции убедитесь, что ни одна из ваших переменных не является сверхдифференциальной .
  • Для сезонной корреляции рассмотрите возможность добавления в модель сезонных фиктивных переменных.