R で white のテストを実行する方法 (例あり)
ホワイトの検定は、回帰モデルに不均一分散性が存在するかどうかを判断するために使用されます。
不均一分散性とは、回帰モデル内の応答変数のさまざまなレベルでの残差の不均一な分散を指します。これは、残差が応答変数の各レベルで均等に分散するという線形回帰の重要な前提の1 つに違反します。
このチュートリアルでは、R でホワイト テストを実行して、特定の回帰モデルにおいて不均一分散性が問題であるかどうかを判断する方法について説明します。
例: R の白テスト
この例では、mtcars 組み込み R データセットを使用して重線形回帰モデルを近似します。
モデルをフィッティングしたら、 lmtestライブラリのbptest関数を使用して White テストを実行し、不均一分散性が存在するかどうかを判断します。
ステップ 1: 回帰モデルを当てはめます。
まず、 mpg を応答変数として、 dispとhp を2 つの説明変数として使用して回帰モデルを近似します。
#load the dataset data(mtcars) #fit a regression model model <- lm(mpg~disp+hp, data=mtcars) #view model summary summary(model) Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 30.735904 1.331566 23.083 < 2nd-16 *** available -0.030346 0.007405 -4.098 0.000306 *** hp -0.024840 0.013385 -1.856 0.073679 . --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 3.127 on 29 degrees of freedom Multiple R-squared: 0.7482, Adjusted R-squared: 0.7309 F-statistic: 43.09 on 2 and 29 DF, p-value: 2.062e-09
ステップ 2: ホワイトのテストを実行します。
次に、次の構文を使用して White のテストを実行し、不均一分散性が存在するかどうかを判断します。
#load lmtest library library(lmtest) #perform White's test bptest(model, ~ disp*hp + I(disp^2) + I(hp^2), data = mtcars) studentized Breusch-Pagan test data: model BP = 7.0766, df = 5, p-value = 0.215
結果を解釈する方法は次のとおりです。
- 検定統計量はX2 = 7.0766です。
- 自由度は5です。
- 対応する p 値は0.215です。
ホワイト検定では、次の帰無仮説と対立仮説を使用します。
- Null (H 0 ) : 等分散性が存在します。
- 代替 ( HA ):不均一分散性が存在します。
p 値は 0.05 未満ではないため、帰無仮説を棄却できません。回帰モデルに不均一分散性が存在すると主張する十分な証拠はありません。
次はどうする
ホワイトの検定の帰無仮説を棄却できなかった場合、不均一分散性は存在しないため、元の回帰の結果の解釈に進むことができます。
ただし、帰無仮説を棄却した場合は、データに不均一分散性が存在することを意味します。この場合、回帰出力テーブルに表示される標準誤差は信頼できない可能性があります。
この問題を解決するには、次のような一般的な方法がいくつかあります。
1. 応答変数を変換します。
応答変数に対して変換を実行してみることができます。たとえば、応答変数の対数、平方根、立方根を取得します。一般に、これにより不均一分散性が消失する可能性があります。
2. 重み付け回帰を使用します。
重み付き回帰では、近似値の分散に基づいて各データ ポイントに重みが割り当てられます。基本的に、これにより、分散が大きいデータ ポイントに低い重みが与えられ、残差二乗が減少します。適切な重みを使用すると、不均一分散性の問題を解決できます。