如何在 r 中执行 durbin-watson 测试


线性回归的关键假设之一是残差之间不存在相关性,即残差是独立的。

确定是否满足此假设的一种方法是执行Durbin-Watson 检验,该检验用于检测回归残差中是否存在自相关。该测试使用以下假设:

H 0 (零假设):残差之间不存在相关性。

H A (替代假设):残差是自相关的。

本教程介绍如何在 R 中执行 Durbin-Watson 测试。

示例:R 中的 Durbin-Watson 测试

要执行 Durbin-Watson 检验,我们必须首先拟合线性回归模型。我们将使用mtcars集成 R 数据集,并使用mpg作为预测变量、 dispwt作为解释变量来拟合回归模型。

 #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,因此我们可以拒绝原假设并得出结论:该回归模型的残差是自相关的。

如果检测到自相关该怎么办

如果您拒绝零假设并得出残差中存在自相关的结论,那么如果您认为问题足够严重,则可以通过多种选择来纠正该问题:

  • 对于正序列相关,请考虑向模型添加因变量和/或自变量的滞后。
  • 对于负序列相关,请确保没有任何变量过度延迟
  • 对于季节性相关性,请考虑向模型添加季节性虚拟变量。

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注