R でブリューシュ・ゴドフリー検定を実行する方法
線形回帰の重要な前提の 1 つは、残差間に相関がない、つまり残差が独立しているということです。
一次自己相関をテストするには、 ダービン-ワトソンテストを実行します。ただし、より高次の自己相関をテストしたい場合は、 Breusch-Godfrey テストを実行する必要があります。
このテストでは次の仮定を使用します。
H 0 (帰無仮説): p以下の次数の自己相関はありません。
H A (対立仮説): p以下の特定の次数の自己相関が存在します。
検定統計量は、自由度pのカイ二乗分布に従います。
この検定統計量に対応するp 値が特定の有意水準 (0.05 など) を下回っている場合、帰無仮説を棄却し、特定の低次またはpに等しい残差間に自己相関が存在すると結論付けることができます。
R で Breusch-Godfrey テストを実行するには、 lmtestライブラリのbgtest(y ~ x, order = p)関数を使用できます。
このチュートリアルでは、R でこの構文を使用する例を示します。
例: R でのブリューシュ・ゴドフリー検定
まず、2 つの予測変数 (x1 と x2) と応答変数 (y) を含む偽のデータセットを作成しましょう。
#create dataset df <- data. frame (x1=c(3, 4, 4, 5, 8, 9, 11, 13, 14, 16, 17, 20), x2=c(7, 7, 8, 8, 12, 4, 5, 15, 9, 17, 19, 19), y=c(24, 25, 25, 27, 29, 31, 34, 34, 39, 30, 40, 49)) #view first six rows of dataset head(df) x1 x2 y 1 3 7 24 2 4 7 25 3 4 8 25 4 5 8 27 5 8 12 29 6 9 4 31
次に、 lmtestパッケージのbgtest()関数を使用して、Breusch-Godfrey テストを実行できます。
この例では、次数 p = 3 での残差間の自己相関をテストします。
#load lmtest package library (lmtest) #perform Breusch-Godfrey test bgtest(y ~ x1 + x2, order= 3 , data=df) Breusch-Godfrey test for serial correlation of order up to 3 data: y ~ x1 + x2 LM test = 8.7031, df = 3, p-value = 0.03351
結果から、検定統計量は 3 自由度でX2 = 8.7031であることがわかります。対応する p 値は0.03351です。
この p 値は 0.05 未満であるため、帰無仮説を棄却し、次数 3 以下の残差間に自己相関があると結論付けることができます。
自己相関に対処する方法
帰無仮説を棄却し、残差に自己相関が存在すると結論付けた場合、問題が十分に深刻であると考えられる場合、この問題を修正するためのオプションがいくつかあります。
- 正の系列相関を得るには、従属変数および/または独立変数のラグをモデルに追加することを検討してください。
- 負のシリアル相関の場合は、どの変数も遅延しすぎていないことを確認してください。
- 季節相関については、モデルに季節ダミーを追加することを検討してください。