如何在 r 中执行 durbin-watson 测试
线性回归的关键假设之一是残差之间不存在相关性,即残差是独立的。
确定是否满足此假设的一种方法是执行Durbin-Watson 检验,该检验用于检测回归残差中是否存在自相关。该测试使用以下假设:
H 0 (零假设):残差之间不存在相关性。
H A (替代假设):残差是自相关的。
本教程介绍如何在 R 中执行 Durbin-Watson 测试。
示例:R 中的 Durbin-Watson 测试
要执行 Durbin-Watson 检验,我们必须首先拟合线性回归模型。我们将使用mtcars集成 R 数据集,并使用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()函数执行 Durbin-Watson 测试,因为:
#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,因此我们可以拒绝原假设并得出结论:该回归模型的残差是自相关的。
如果检测到自相关该怎么办
如果您拒绝零假设并得出残差中存在自相关的结论,那么如果您认为问题足够严重,则可以通过多种选择来纠正该问题:
- 对于正序列相关,请考虑向模型添加因变量和/或自变量的滞后。
- 对于负序列相关,请确保没有任何变量过度延迟。
- 对于季节性相关性,请考虑向模型添加季节性虚拟变量。