Как выполнить тест дурбина-ватсона в r
Одним из ключевых предположений линейной регрессии является отсутствие корреляции между остатками, то есть остатки независимы.
Один из способов определить, выполняется ли это предположение, — выполнить тест Дурбина-Ватсона , который используется для обнаружения наличия автокорреляции в остатках регрессии. В этом тесте используются следующие предположения:
H 0 (нулевая гипотеза): корреляция между остатками отсутствует.
H A (альтернативная гипотеза): Остатки автокоррелируются.
В этом руководстве объясняется, как выполнить тест Дурбина-Ватсона в R.
Пример: тест Дурбина-Ватсона в R
Чтобы выполнить тест Дурбина-Ватсона, мы должны сначала подобрать модель линейной регрессии. Мы будем использовать интегрированный набор данных R mtcars и подогнать регрессионную модель, используя миль на галлон в качестве предикторной переменной и 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() из пакета , потому что :
#load car package library(car) #perform Durbin-Watson test durbinWatsonTest(model) Loading required package: carData lag Autocorrelation DW Statistic p-value 1 0.341622 1.276569 0.034 Alternative hypothesis: rho != 0
Из результата мы видим, что статистика теста равна 1,276569 , а соответствующее значение p — 0,034 . Поскольку это значение p меньше 0,05, мы можем отвергнуть нулевую гипотезу и сделать вывод, что остатки этой регрессионной модели автокоррелированы.
Что делать, если обнаружена автокорреляция
Если вы отвергнете нулевую гипотезу и придете к выводу, что в остатках присутствует автокорреляция, то у вас есть несколько вариантов исправить эту проблему, если вы считаете ее достаточно серьезной:
- Для положительной серийной корреляции рассмотрите возможность добавления в модель лагов зависимой и/или независимой переменной.
- Для отрицательной последовательной корреляции убедитесь, что ни одна из ваших переменных не имеет чрезмерной задержки .
- Для сезонной корреляции рассмотрите возможность добавления в модель сезонных переменных.