R에서 goldfeld-quandt 테스트를 수행하는 방법
Goldfeld-Quandt 테스트는 회귀 모델에 이분산성이 존재하는지 여부를 확인하는 데 사용됩니다.
이분산성은 회귀 모델에서 반응 변수 의 다양한 수준에서 잔차 가 고르지 않게 분산되는 것을 의미합니다.
이분산성이 존재하는 경우 이는 잔차가 반응 변수의 각 수준에 동일하게 분산되어 있다는 선형 회귀 분석의 주요 가정 중 하나를 위반하는 것입니다.
이 튜토리얼에서는 주어진 회귀 모델에 이분산성이 존재하는지 여부를 확인하기 위해 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, 데이터, 분수)
금:
- model: lm() 명령으로 생성된 선형 회귀 모델입니다.
- order.by: 모델의 예측 변수입니다.
- 데이터: 데이터 세트의 이름입니다.
- 분수*: 데이터 세트에서 제거할 중앙 관측치의 수입니다.
*Goldfeld-Quandt 테스트는 데이터 세트 중앙에 있는 여러 관측치를 제거한 다음 잔차 분포가 데이터 세트 양쪽에 있는 두 개의 결과 데이터 세트와 다른지 테스트하는 방식으로 작동합니다. 중앙 관찰.
일반적으로 전체 관측치의 약 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에서 White의 테스트를 수행하는 방법
R에서 Breusch-Pagan 테스트를 수행하는 방법