회귀모형 진단이란?
회귀분석을 하면 결과만 보는 게 아니라,
모형이 제대로 설정되었는지, 가정이 충족됐는지 확인하는 과정이 필요합니다.
이를 모형진단(Regression Diagnostics)이라고 합니다.
회귀모형의 기본 가정
1️⃣ 오차의 등분산성 : X 값과 관계없이 Y의 분산은 일정
2️⃣ 선형성 : Y와 X 사이 선형 관계
3️⃣ 오차의 정규성 : 오차항이 정규분포를 따른다
이 세 가지가 지켜지지 않으면, 분석 결과의 신뢰성이 떨어지기 때문에 반드시 확인해야 합니다.
오차의 등분산성 진단
방법 1 : 잔차산점도
잔차(예측값-실제값)를 세로축, 예측값을 가로축으로 해서 그래프를 그립니다.
잔차의 퍼짐이 일정하지 않으면 등분산성 위배
R 코드
방법 2 : 스코어검정
모형에서 특정 모수(계수나 분산 등)에 대해 귀무가설이 참인지 확인할 때 사용하는 검정방법
예를 들어,
-
귀무가설: “이 변수의 회귀계수는 0이다”
-
대립가설: “이 변수의 회귀계수는 0이 아니다”
이걸 검정할 때 모수의 추정값이 귀무가설 하에서 얼마만큼 ‘좋지 않은지’ 확인하는 방식.
ncvtest()
함수란 등분산성(혹은 이분산성)을 검정하는 방법 중 하나.
non-constant variance test의 약자로, 잔차의 분산이 일정한지 아닌지를 스코어검정 기반으로 확인하는 함수
방법 3 : Goldfeld-Quandt (GQ) 검정
-
회귀모형의 오차항이 등분산성을 갖는지 확인하는 검정 방법
-
즉, 오차의 분산이 일정한지(=등분산성) 아니면 특정 변수의 값에 따라 달라지는지(=이분산성)을 확인할 때 사용한다.
-
만약 오차분산이 일정하지 않다면 회귀계수 추정량의 신뢰성이 떨어지고, 검정 결과도 왜곡될 수 있다.
p-value < 0.05 → 등분산성 위배
잔차 그래프에서 fitted 값에 따라 분산이 퍼지면 → ncvtest()
특정 변수값 크기 순으로 나누어 분산 차이 확인하고 싶으면 → gqtest()
회귀모형의 선형성 진단
잔차-설명변수 산점도를 그려서,
잔차가 곡선 형태면 비선형성 의심
R 코드
오차의 정규성 진단
오차항이 정규분포인지 확인하는 방법
방법 1 : 정규확률그림
잔차가 직선에 가까우면 정규분포 근사
방법 2 : Shapiro-Wilk 검정
p-value < 0.05 → 정규성 위배
변수변환 (데이터 변환)
이분산성이나 비선형성을 해결하기 위해
데이터를 변환해 선형성을 만족시킵니다.
대표적인 변환
-
Y의 로그 변환
-
Y의 제곱근 변환
-
X의 로그 변환
-
Box-Cox 변환
Box-Cox 변환 공식
Box와 Cox(1964)가 제안한 방법으로
최적의 변환계수 λ를 찾음
R 코드 실습
bc_lambda 값 확인 → 0.5(제곱근 변환)
중요 내용 정리
개념 | 설명 |
---|---|
오차의 등분산성 | X값에 관계없이 분산 일정 |
선형성 | X와 Y는 직선 관계 |
오차의 정규성 | 잔차는 정규분포 |
잔차산점도 | 이상 패턴 있으면 문제 |
Box-Cox 변환 | 최적의 변환값으로 데이터 변환 |
객관식 문제 (정답 및 해설)
문제 1
등분산성을 확인하는 가장 기본적인 방법은?
① 분산분석표
② 잔차산점도
③ t-검정
④ 정규확률그림
정답 : ②
해설 : 잔차산점도로 잔차의 퍼짐 확인
문제 2
오차의 정규성을 확인하는 검정 방법은?
① Goldfeld-Quandt 검정
② Shapiro-Wilk 검정
③ AIC
④ Cook’s D
정답 : ②
해설 : Shapiro-Wilk 검정으로 정규성 확인
문제 3
비선형성을 해결하고 등분산성을 만족시키기 위한 데이터 변환법은?
① 잔차추정
② 변수변환
③ 오차산점도
④ T-분포
정답 : ②
해설 : 변수변환(로그, 제곱근, Box-Cox)으로 문제 해결