R で goldfeld-quandt テストを実行する方法


Goldfeld-Quandt 検定は、回帰モデルに不均一分散性が存在するかどうかを判断するために使用されます。

不均一分散性とは、回帰モデルの応答変数のさまざまなレベルでの残差の不均一な分散を指します。

不均一分散が存在する場合、応答変数の各レベルで残差が均等に分散しているという線形回帰の重要な仮定の1 つに違反します。

このチュートリアルでは、R で Goldfeld-Quandt 検定を実行して、特定の回帰モデルに不均一分散性が存在するかどうかを判断する方法の段階的な例を示します。

ステップ 1: 回帰モデルを作成する

まず、R に組み込まれている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: Goldfeld-Quandt テストを実行する

次に、 lmtestパッケージのgqtest()関数を使用して Goldfeld-Quandt テストを実行し、不均一分散性が存在するかどうかを判断します。

この関数は次の構文を使用します。

gqtest(モデル、order.by、データ、分数)

金:

  • モデル: lm() コマンドによって作成された線形回帰モデル。
  • order.by:モデルの予測変数。
  • data:データセットの名前。
  • 分数*:データセットから削除する中心観測値の数。

*Goldfeld-Quandt テストは、データ セットの中心に位置する多数の観測値を削除し、残差の分布がデータ セットの両側にある 2 つの結果のデータ セットと異なるかどうかをテストすることによって機能します。中心的な観察。

通常、合計観測値の約 20% を削除することを選択します。この場合、mtcars には合計 32 個の観測値があるため、中心の 7 つの観測値を削除することを選択できます。

 #load lmtest library
library(lmtest)

#perform the Goldfeld Quandt test
gqtest(model, order.by = ~disp+hp, data = mtcars, fraction = 7)

	Goldfeld-Quandt test

data: model
GQ = 1.0316, df1 = 10, df2 = 9, p-value = 0.486
alternative hypothesis: variance increases from segment 1 to 2

結果を解釈する方法は次のとおりです。

  • 検定統計量は1.0316です。
  • 対応する p 値は0.486です。

Goldfeld-Quandt 検定では、次の帰無仮説と対立仮説が使用されます。

  • Null (H 0 ) : 等分散性が存在します。
  • 代替 ( HA ):不均一分散性が存在します。

p 値は 0.05 未満ではないため、帰無仮説を棄却できません。回帰モデルに不均一分散性が存在すると主張する十分な証拠はありません。

次はどうする

Goldfeld-Quandt 検定の帰無仮説を棄却できなかった場合、不均一分散性は存在しないため、元の回帰の結果の解釈に進むことができます。

ただし、帰無仮説を棄却した場合は、データに不均一分散性が存在することを意味します。この場合、回帰出力テーブルに表示される標準誤差は信頼できない可能性があります。

この問題を解決するには、次のような一般的な方法がいくつかあります。

1. 応答変数を変換します。

応答変数に対して変換を実行してみることができます。たとえば、応答変数の対数、平方根、立方根を取得します。一般に、これにより不均一分散性が消失する可能性があります。

2. 重み付け回帰を使用します。

重み付き回帰では、近似値の分散に基づいて各データ ポイントに重みが割り当てられます。基本的に、これにより、分散が大きいデータ ポイントに低い重みが与えられ、残差二乗が減少します。

適切な重みを使用すると、重み付き回帰によって不均一分散性の問題を解決できます。

追加リソース

R で重回帰を実行する方法
R でホワイトのテストを実行する方法
R で Breusch-Pagan テストを実行する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です