logo

잔차 분석

잔차 분석

  • 잔차 분석에서는 잔차의 분포에서 다음 특성에 주목
    • 왜도
    • 첨도
    • 정규성
    • 자기상관
  • 예측만 잘 된다면 크게 중요하지는 않을 수 있음
  • 하지만 모형을 개선하는 힌트를 줌
    • 예: 비선형적 요소 포함 필요성

잔차 보기

  • 잔차는 적합된 회귀모형의 resid 속성으로 확인
r = m.resid
  • 히스토그램으로 잔차 분포 확인
import seaborn as sns

sns.histplot(r)

왜도

  • 왜도(skewness): 분포의 비대칭성
  • 잔차의 왜도가 크면 한쪽 꼬리가 길거나 분포가 한쪽으로 치우쳐 있음을 의미
import scipy as sp

sp.stats.skew(r)

첨도

  • 첨도(kurtosis): 분포가 한 점에 몰린 정도
  • 정규분포의 첨도는 3
  • 첨도가 높음: 첨도 > 3
    • 데이터가 중심에 몰려 있음
  • 첨도가 낮음: 첨도 < 3
    • 데이터가 바깥으로 퍼져 있음
  • 초과 첨도는 첨도에서 3을 뺀 값
sp.stats.kurtosis(r)

정규성

  • 정규성(normality): 잔차가 정규분포에 가까운 성질을 가지고 있는지 보는 기준
  • Omnibus 검정, Jarque-Bera 검정
    • 잔차가 정규분포를 따른다는 귀무가설을 검정
  • Q-Q 플롯
    • 정규분포를 따른다고 할 때의 이론적 예측값과 실제값을 비교한 플롯
import matplotlib.pyplot as plt

sp.stats.probplot(m.resid, plot=plt)

등분산성

  • 등분산성(homoscedasticity): 모든 범위에서 잔차 분산이 일정한 성질
  • 예측값과 잔차를 산점도로 그려 시각화
plt.scatter(m.predict(df), m.resid)

예측값과 잔차의 산점도

등분산성 문제의 원인

  • 종속변수의 왜도가 큼
  • 종속변수가 이진(0, 1) 또는 개수, 비율
  • 측정값의 바닥효과/천장효과 등 범위 제한
  • 중요한 비선형 관계가 빠짐
  • 곱셈적인 관계 또는 비율의 변화
  • 이상치 또는 영향점
  • 서로 다른 집단이 합쳐진 경우
  • 예측값에 따라 잔차가 달라지는 경우
  • 집단별로 변동성이 다름

자기상관

  • 자기상관(autocorrelation): 이전의 값과 이후의 값 사이에 상관이 존재하는 현상
  • 양의 자기상관
    • 이전에 +면 계속 +로, -면 계속 -로 유지되는 경향
    • 예: 화학 공정의 품질
  • 음의 자기상관
    • 이전에 +-로, -+로 변하는 특성
    • 예: 주별 제품 판매량

양의 자기상관 예시 시계열

잔차 자기상관 패턴 비교

음의 자기상관 예시 시계열

잔차의 자기상관 진단

  • 잔차의 자기상관: 직전의 잔차가 직후의 잔차와 상관관계가 있는 것
  • 선형 회귀분석은 각각의 데이터가 독립적으로 수집되어야 하므로 자기상관이 있으면 안 됨
  • 자기상관은 acf로 수치 계산할 수 있음
from statsmodels.tsa.stattools import acf

acf(m.resid)  # 수치로 계산
  • plot_acf로 시각화
from statsmodels.graphics.tsaplots import plot_acf

plot_acf(m.resid)  # 시각화

잔차의 ACF 플롯

  • Durbin-Watson 통계량()으로 진단
    • : 양의 자기상관
    • : 자기상관 없음
    • : 음의 자기상관
Previous
모형 선택