회귀분석
회귀분석
- 독립변수(들) 이용하여 연속형 종속변수 예측/설명하는 분석.
- 예측 (Prediction): 특정 값(보통 종속변수)에 대한 추론 의미. 반드시 미래 시점 예측 의미 아님.
- 예측값 - 실제값으로 정확성을 계산
- 독립변수 (Independent Variable, x): 예측의 바탕 정보, 원인, 입력값. 설명변수, 예측변수라고도 함.
- 종속변수 (Dependent Variable, y): 예측 대상, 결과, 출력값. 반응변수라고도 함.
선형 모형 (Linear Model)
- 모형: 독립변수와 종속변수의 관계를 수학적으로 표현한 것
- 다양한 모형을 가정할 수 있으나 가장 단순한 선형 모형을 일반적으 로 사용
- 이를 바탕으로 더 복잡한 모형으로 확장
- 구성:
- : 의 예측치.
- : 독립변수.
- : 가중치(weight) 또는 기울기(slope). 가 1단위 변할 때 의 변화량. 회귀계수(regression coefficient).
- : 절편(intercept). 일 때 의 예측치.
회귀분석 예시: 피부암 사망률
- 독립변수(x): 위도 (Latitude)
- 종속변수(y): 인구 천만명 당 피부암 사망자 수 (Mortality)
- 분석 결과 (예시):
- 위도가 1단위 증가할수록 사망률 약 5.98 감소 예측.
잔차 (Residual)
- 정의: 실제값() - 예측값(). 예측 오차.
- 잔차 분산 (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)
- R제곱 = 0: 분석결과가 y의 예측에 도움이 안됨
- R제곱 = 1: y를 완벽하게 정확히 예측할 수 있음
- 단순회귀분석(독립변수가 1개인 회귀분석)의 경우, 독립변수와 종속변수의 피어슨 상관계수의 제곱과 같음
R 제곱 읽는 법
- R제곱을 읽을 때는 "모형이 종속변수의 분산의 ~%를 설명한다"라고 함
- 예: R제곱 = 0.3 → "분산의 30%를 설명한다"
- R제곱은 TSS(분산)에 비해 RSS가 얼마나 작아졌는지를 나타냄
- TSS와 RSS는 모두 평균, 또는 예측에 대한 변산성(불확실성)
- 변산성이 줄어들었다 → 불확실성이 줄어들었다 → 설명이 되었다