최소제곱법를 사용하는 선형모형은 가장 오래된 통계방법의 하나로, 이해하기 쉽기 떄문에 현재에도 널리 쓰이고 있는 방법이다. 이번 장에서는 내가 만든 회귀모형이 과연 적절한 것인가 하는 내용을 다룬다. 또한 다중 회귀분석에서 모형선택을 자동화 할수 있는 여러 방법 들을 다룬다. 이번 장의 대부분은 Robert I Kabacoff의 "R in action"(2nd edition)을 참고하여 기술하였음을 밝힌다.

회귀진단 : 회귀모형이 과연 적절한가?

최소제곱법를 사용하는 선형모형은 가장 오래된 통계방법의 하나이다. 고성능 컴퓨터를 어디에서나 사용할 수 있고 R과 같은 고성능의 통계 소프트웨어를 무료로 사용할 수 있으며 통계학자들이 수천 개의 새로운 통계방법을 개발해내는 요즘 시대에서도 선형회귀가 널리 쓰이는 이유는, 무엇보다 선형모형이 이해하기 쉬우며 또한 최소제곱법이 모든 선형 추정 방법들 중 가장 적은 분산을 보이기 때문이다. lm() 함수를 통해 OLS 회귀모형을 만들고 summary() 함수로 모형의 회귀계수 및 통계 수치를 볼 수 있지만 과연 이 모형이 적절한 것인지 검증이 필요하다.

회귀모형의 검증이 왜 필요한가? 데이터가 불규칙하거나 예측변수와 반응변수 사이의 관계를 잘못 설정한 경우 부정확한 통계 모형을 만들 수 있다. 바꿔 얘기하면 실제로 예측변수와 반응변수 사이에 관계가 있음에도 불구하고 관계가 없다고 결론내리거나 예측변수와 반응변수 사이에 아무런 관계가 없음에도 불구하고 관계가 있다고 결론을 내려 통계 모형을 만들지만 실제 real-world에 그 모형을 적용해보면 예측이 빗나가 불필요한 심각한 오류를 만들 수 있다.

예를 들어 미국의 50개주의 문맹률과 수입, 인구수, 결빙일, 살인사건 발생률에 관한 데이터를 분석해보자.

states <- as.data.frame(state.x77[,c("Murder", "Population",
                             "Illiteracy", "Income", "Frost")])
fit=lm(Murder~Population+Illiteracy+Income+Frost,data=states)
summary(fit)

Call:
lm(formula = Murder ~ Population + Illiteracy + Income + Frost, 
    data = states)

Residuals:
    Min      1Q  Median      3Q     Max 
-4.7960 -1.6495 -0.0811  1.4815  7.6210 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) 1.235e+00  3.866e+00   0.319   0.7510    
Population  2.237e-04  9.052e-05   2.471   0.0173 *  
Illiteracy  4.143e+00  8.744e-01   4.738 2.19e-05 ***
Income      6.442e-05  6.837e-04   0.094   0.9253    
Frost       5.813e-04  1.005e-02   0.058   0.9541    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.535 on 45 degrees of freedom
Multiple R-squared:  0.567, Adjusted R-squared:  0.5285 
F-statistic: 14.73 on 4 and 45 DF,  p-value: 9.133e-08

회귀계수의 95% 신뢰구간은 다음과 같이 구할 수 있다.

confint(fit)
                    2.5 %       97.5 %
(Intercept) -6.552191e+00 9.0213182149
Population   4.136397e-05 0.0004059867
Illiteracy   2.381799e+00 5.9038743192
Income      -1.312611e-03 0.0014414600
Frost       -1.966781e-02 0.0208304170

이 결과에서 문맹률(Illiteracy)이 1% 변하면 인구 10만 명당 살인사건 발생률이 4.14(2.38에서 5.90) 변화한다고 95%의 확신을 가지고 이야기 할 수 있으며, 1 년중 기온이 0도 이하로 떨어지는 Frost의 경우 95% 신뢰구간이 0을 지나므로 다른 변수들이 일정하다면 온도의 변화는 살인사건의 발생률과 관계가 없다고 결론내릴 수 있다. 하지만 이러한 통계적 추론에 대해 확신을 가지려면 데이터가 OLS 회귀의 가정을 만족해야만 한다. R에서는 회귀모형의 적절성을 평가하는 여러가지 도구들을 제공하고 있다.

전형적인 회귀진단 방법

단순회귀모형

회귀분석을 공부하기 위해 전장에서 다루었던 여성의 키와 몸무게에 대한 단순회귀분석 결과를 보자.

fit <- lm(weight~height,data=women)
fit

Call:
lm(formula = weight ~ height, data = women)

Coefficients:
(Intercept)       height  
     -87.52         3.45  
plot(weight~height,data=women)
abline(fit,col="red")
title(expression(italic(weight==3.45%*%height-87.52)))