R에서 강력한 표준 오류를 계산하는 방법
선형 회귀의 가정 중 하나는 모델 잔차가 예측 변수의 각 수준에 동일하게 분산되어 있다는 것입니다.
이 가정이 충족되지 않으면 회귀 모델에 이분산성이 존재한다고 합니다.
이런 일이 발생하면 모델 회귀 계수의 표준 오류가 신뢰할 수 없게 됩니다.
이를 설명하기 위해 우리는 이분산성에 대해 “견고하고” 회귀 계수에 대한 실제 표준 오류 값에 대한 더 나은 아이디어를 제공할 수 있는 견고한 표준 오류를 계산할 수 있습니다.
다음 예에서는 R의 회귀 모델에 대한 강력한 표준 오류를 계산하는 방법을 보여줍니다.
예: R에서 강력한 표준 오류 계산
한 수업에서 20명의 학생이 공부한 시간과 시험 점수에 대한 정보를 포함하는 다음과 같은 데이터 프레임이 R에 있다고 가정합니다.
#create data frame df <- data. frame (hours=c(1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 7, 7, 8), score=c(67, 68, 74, 70, 71, 75, 80, 70, 84, 72, 88, 75, 95, 75, 99, 78, 99, 65, 96, 70)) #view head of data frame head(df) hours score 1 1 67 2 1 68 3 1 74 4 1 70 5 2 71 6 2 75
lm() 함수를 사용하여 시간을 예측 변수로 사용하고 점수를 응답 변수로 사용하는 R의 회귀 모델을 맞출 수 있습니다.
#fit regression model fit <- lm(score ~ hours, data=df) #view summary of model summary(fit) Call: lm(formula = score ~ hours, data = df) Residuals: Min 1Q Median 3Q Max -19,775 -5,298 -3,521 7,520 18,116 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 71.158 4.708 15.11 1.14e-11 *** hours 1.945 1.075 1.81 0.087 . --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 10.48 on 18 degrees of freedom Multiple R-squared: 0.154, Adjusted R-squared: 0.107 F-statistic: 3.278 on 1 and 18 DF, p-value: 0.08696
회귀 모델에서 이분산성이 문제인지 시각적으로 확인하는 가장 쉬운 방법은 잔차 그림을 만드는 것입니다.
#create residual vs. fitted plot plot(fitted(fit), reside(fit)) #add a horizontal line at y=0 abline(0,0)
x축은 반응변수의 적합치를 나타내고, y축은 해당 잔차를 나타낸다.
그래프를 보면 적합치가 증가함에 따라 잔차의 분산이 증가하는 것을 볼 수 있습니다.
이는 회귀 모델에서 이분산성이 문제가 될 가능성이 높으며 모델 요약의 표준 오류가 신뢰할 수 없음을 나타냅니다.
강력한 표준 오류를 계산하기 위해 다음과 같이 lmtest 패키지의 coeftest() 함수와 샌드위치 패키지의 vcovHC() 함수를 사용할 수 있습니다.
library (lmtest) library (sandwich) #calculate robust standard errors for model coefficients coeftest(fit, vcov = vcovHC(fit, type = ' HC0 ')) t test of coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 71.1576 3.3072 21.5160 2.719e-14 *** hours 1.9454 1.2072 1.6115 0.1245 --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
시간 예측 변수에 대한 표준 오차는 이전 모델 요약의 1.075에서 이 모델 요약의 1.2072로 증가했습니다.
원래 회귀 모델에는 이분산성이 존재하므로 이 표준 오류 추정치는 더 신뢰할 수 있으며 시간 예측 변수에 대한 신뢰 구간을 계산할 때 사용해야 합니다.
참고 : vcovHC() 함수에서 계산하는 가장 일반적인 추정 유형은 ‘HC0’이지만 문서를 참조하여 다른 유형의 추정을 찾을 수 있습니다.
추가 리소스
다음 튜토리얼에서는 R에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
R에서 이분산성에 대한 White의 테스트를 수행하는 방법
R에서 선형 회귀 출력을 해석하는 방법
R에서 잔차 플롯을 만드는 방법