Skip to main content

회귀분석

회귀분석

  • 독립변수(들) 이용하여 연속형 종속변수 예측/설명하는 분석.
    • 예측 (Prediction): 특정 값(보통 종속변수)에 대한 추론 의미. 반드시 미래 시점 예측 의미 아님.
  • 예측값 - 실제값으로 정확성을 계산
  • 독립변수 (Independent Variable, x): 예측의 바탕 정보, 원인, 입력값. 설명변수, 예측변수라고도 함.
  • 종속변수 (Dependent Variable, y): 예측 대상, 결과, 출력값. 반응변수라고도 함.

선형 모형 (Linear Model)

  • 모형: 독립변수와 종속변수의 관계를 수학적으로 표현한 것
  • 다양한 모형을 가정할 수 있으나 가장 단순한 선형 모형을 일반적으로 사용
  • 이를 바탕으로 더 복잡한 모형으로 확장

y^=wx+b\hat{y} = wx + b

  • 구성:
    • y^\hat{y}: yy예측치.
    • xx: 독립변수.
    • ww: 가중치(weight) 또는 기울기(slope). xx가 1단위 변할 때 y^\hat{y}의 변화량. 회귀계수(regression coefficient).
    • bb: 절편(intercept). x=0x = 0 일 때 y^\hat{y}의 예측치.

회귀분석 예시: 피부암 사망률

  • 독립변수(x): 위도 (Latitude)
  • 종속변수(y): 인구 천만명 당 피부암 사망자 수 (Mortality)
  • 분석 결과 (예시): y^=389.25.98x\hat{y} = 389.2 - 5.98x
    • 위도가 1단위 증가할수록 사망률 약 5.98 감소 예측.

잔차 (Residual)

  • 정의: 실제값(yy) - 예측값(y^\hat{y}). 예측 오차.
  • 잔차 분산 (Residual Variance / Mean Squared Error, MSE): 잔차 제곱의 평균. 모형 예측 정확도 지표.
  • cf. 분산 (Variance): 편차(실제값 - 평균) 제곱의 평균. 데이터 퍼짐 정도.
  • 해석:
    • 잔차 분산 크다 → 예측 잘 맞지 않음 (오차 큼).
    • 잔차 분산 작다 → 예측 잘 맞음 (오차 작음).
  • 최소제곱법 (Ordinary Least Squares, OLS): 잔차 분산이 최소가 되게 하는 w, b 등 계수를 추정
    • 최소'제곱'법인 이유: 분산의 계산에 제곱이 들어가므로
    • 가장 널리 사용되는 추정방법

Python 회귀분석 코드 (statsmodels)

# 1. 모듈 가져오기
from statsmodels.formula.api import ols

# 2. 모형 설정 및 분석 수행
m = ols("price ~ mileage", data=df).fit()

# 3. 결과 확인
m.summary()
  • 관계식:
    • Python에서 회귀분석 모형 설정을 위한 문법
    • 종속변수(y) ~ 독립변수(x) 형식으로 관계식을 표현
    • 종속변수(y)가 먼저 나오는 것에 주의

Python 예측 수행

# 새로운 데이터 불러오기
new_df = pd.read_excel('new_car.xlsx')

# 모형에 입력하여 예측
m.predict(new_df)

R 제곱

  • 회귀 분석에서 예측의 정확성을 알기 쉽게 판단할 수 있게 만든 지표 (0~1)
R2=1잔차분산분산R^2 = 1 - \frac{\text{잔차분산}}{\text{분산}}
  • R제곱 = 0: 분석결과가 y의 예측에 도움이 안됨
  • R제곱 = 1: y를 완벽하게 정확히 예측할 수 있음
  • 단순회귀분석(독립변수가 1개인 회귀분석)의 경우, 독립변수와 종속변수의 피어슨 상관계수의 제곱과 같음

R 제곱 읽는 법

  • R제곱을 읽을 때는 "모형이 종속변수의 분산의 ~%를 설명한다"라고 함
    • 예: R제곱 = 0.3 → "분산의 30%를 설명한다"
  • R제곱은 TSS(분산)에 비해 RSS가 얼마나 작아졌는지를 나타냄
  • TSS와 RSS는 모두 평균, 또는 예측에 대한 변산성(불확실성)
  • 변산성이 줄어들었다 → 불확실성이 줄어들었다 → 설명이 되었다

퀴즈