회귀분석
회귀분석 regression
- 독립변수를 이용하여 연속인 종속변수를 예측하는 분석
- 예측: 종속변수에 대해 추론한다는 것. 시간적 의미에서 예측은 아님
- 예측값 - 실제값으로 정확성을 계산
- 독립변수(independent variable): 예측의 바탕이 되는 정보, 원인, 입력값. 보통 x로 표기
- 종속변수(dependent variable): 예측의 대상, 결과, 출력값. 보통 y로 표기
선형 모형
- ŷ: y의 예측치
- x: 독립변수
- w: 가중치 또는 기울기
- b: 절편( 일 때, y의 예측치)
회귀분석 예시: 피부암 사망률
- 독립변수(x): 위도
- 종속변수(y): 천만명 당 사망자 수
잔차 residual
- 잔차: 실제값과 예측값의 차이
- 잔차분산: 잔차를 제곱하여 평균낸 것
- cf. 분산: 편차(실제값과 평균의 차이) 제곱의 평균
- 잔차분산이 크다 → 예측이 잘 맞지 않음
- 잔차분산이 작다 → 예측이 잘 맞음
- 최소제곱법(Ordinary Least Squares): 잔차 분산이 최소가 되게 하는 w, b 등 계수를 추정
- 최소'제곱'법인 이유: 분산의 계산에 제곱이 들어가므로
- 가장 널리 사용되는 추정방법
Python 회귀분석
- 가져오기
from statsmodels.formula.api import ols
- 분석
m = ols("price ~ mileage", data=df).fit()
- 관계식:
- Python에서 회귀분석 모형 설정을 위한 문법
- 종속변수(y) ~ 독립변수(x) 형식으로 관계식을 표현
-
- 종속변수(y)가 먼저 나오는 것에 주의
- 결과
m.summary()
회귀계수 추정 결과
- price
- 표준오차와 t값은 p-value를 구하기 위한 것이므로 직접 해석 필요X
- 일반적으로 절편의 p-value는 해석하지 않음(0 과 같은 지 다른 지 관심 없음)
- mileage의 기울기의 p-value만 해석
회귀계수 가설검정 순서도
- 귀무가설
- "모집단에서 회귀계수 = 0"
- (보통 0.05)
- yes
- "통계적으로 유의한 관계가 있다"
- = "모집단에서 회귀계수 ≠ 0"
- 신뢰구간
- - ~ - → 모집단에서 (-) 계수
- + ~ + → 모집단에서 (+) 계수
- no
- "통계적으로 유의한 관계가 없다"
- = 결론을 유보
- 신뢰구간 - ~ +
- yes
Python 예측
- 새로운 데이터 만들기
new_df = pd.read_excel('new_car.xlsx')
- 모형에 입력하여 예측
m.predict(new_df)
R 제곱 R Sqaured
- 회귀 분석에서 예측의 정확성을 알기 쉽게 판단할 수 있게 만든 지표 (0~1)
- - (잔차분산 / 분산)
- R제곱 = 0: 분석결과가 y의 예측에 도움이 안됨
- R제곱 = 1: y를 완벽하게 정확히 예측할 수 있음
- 단순회귀분석(독립변수가 1개인 회귀분석)의 경우, 독립변수와 종속변수의 피어슨 상관계수의 제곱과 같음
R제곱을 읽는 법
- R제곱을 읽을 때는 "모형이 종속변수의 분산의 ~%를 설명한다"라고 함
- 예: R제곱 = 0.3 "분산의 30%를 설명한다"
- R제곱은 TSS(분산)에 비해 RSS가 얼마나 작아졌는지를 나타냄
- TSS와 RSS는 모두 평균, 또는 예측에 대한 변산성(불확실성)
- 변산성이 줄어들었다 → 불확실성이 줄어들었다 → 설명이 되었다
퀴즈
사용자 정보 입력
퀴즈를 시작하기 전에 이름과 소속을 입력해주세요.