R でダービン・ワトソンテストを実行する方法
線形回帰の重要な前提の 1 つは、残差間に相関がない、つまり残差が独立しているということです。
この仮定が満たされているかどうかを判断する 1 つの方法は、 ダービン・ワトソン検定を実行することです。これは、回帰の残差における自己相関の存在を検出するために使用されます。このテストでは次の仮定を使用します。
H 0 (帰無仮説):残差間に相関はありません。
H A (対立仮説):残差は自己相関します。
このチュートリアルでは、R でダービン-ワトソン テストを実行する方法について説明します。
例: R でのダービン・ワトソン検定
ダービン-ワトソン検定を実行するには、まず線形回帰モデルを適合させる必要があります。 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()関数を使用してダービン-ワトソン テストを実行できます。理由は次のとおりです。
#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 未満であるため、帰無仮説を棄却し、この回帰モデルの残差は自己相関していると結論付けることができます。
自己相関が検出された場合の対処方法
帰無仮説を棄却し、残差に自己相関が存在すると結論付けた場合、問題が十分に深刻であると考えられる場合、この問題を修正するためのオプションがいくつかあります。
- 正の系列相関を得るには、従属変数および/または独立変数のラグをモデルに追加することを検討してください。
- 負のシリアル相関の場合は、どの変数も遅延しすぎていないことを確認してください。
- 季節相関については、モデルに季節ダミーを追加することを検討してください。