로지스틱 회귀분석
로지스틱 회귀분석
- 주요 개념:
- 일반화 선형 모형
- 로지스틱 회귀분석
일반화 선형모형 Generalized Linear Model
- 다양한 종속변수를 분석할 수 있도록 선형 모형을 확장한 것
- (뮤): 종속 변수의 기댓값
- g : 연결 함수 link function
로지스틱 회귀분석 logistic regression
- 확률은 0~1 사이의 값이므로 확률을 출력하는 함수를 만들 수 있다
0~1 사이의 출력을 갖는 함수
승산 odds
- 승산 = 양성의 확률 / 음성의 확률
- 로짓(logit): 로그 승산
- 로지스틱 회귀분석은 로짓을 예측하는 선형 모형
한계 효과 marginal effect
- x의 추가 변화에 따른 의 추가 변화
- 선형 모형에서는 한계 효과가 x의 기울기 w로 일정
- 로지스틱 회귀분석에서 로짓의 한계 효과는 일정, 확률의 한계효과는 x에 따라 다름 일 때 한계효과가 가장 큼
우도 likelihood
- 특정한 추정치에서 관찰된 데이터가 나올 확률
- 예: 동전을 던져서 앞뒤뒤가 나왔을 경우(관찰된 데이터)
- 앞면이 나올 확률을 1/3이라고 하면:
- 앞면이 나올 확률을 1/20이면:
- 로지스틱 회귀분석의 적합도 지수
- 로그우도: log(우도)
- 우도는 확률의 곱이므로 n이 커질 수록 급격하게 작아짐
- 컴퓨터에서 나타낼 수 있는 큰/작은 수에는 한계가 있음
- 로그우도는 로그확률의 합이므로 n이 커져도 천천히 작아짐
- 이탈도(deviance): -2 × 로그우도
- AIC, BIC: 이탈도에 모형의 복잡도를 보정한 것. 작을 수록 좋음.
- 로그우도: log(우도)
McFadden의 유사 R제곱
- 선형 회귀분석의 R제곱과 비슷하게 해석할수 있도록 만든 값
- 분석 모형의 로그 우도
- : 독립변수 없이 예측할 때의 로그우도
완전 분리 complete separation
- 두 집단이 100% 완전하게 분리될 수 있는 경우
- 로지스틱 회귀분석에서 계수가 무한대로 발산
- 로지스틱 곡선은 0과 1로 점근하므로 1(=100%)에 가까이 가려면 무한대의 계수가 필요
- 완전 분리 가능한 경우는 로지스틱 회귀분석을 쓰지 않음
Python 로지스틱 회귀분석
import pandas as pd
from statsmodels.formula.api import logit #임포트
ch = pd.read_excel('churn.xlsx') #데이터 불러오기
m = logit('has_churned ~ join + purchase', ch).fit() #분석
m.summary() #결과 보기
Python 적합도 지수
-
AIC
m.aic
-
BIC
m.bic
-
McFadden의 유사 R제곱
m.prsquared
퀴즈
전처리:
hi = pd.read_excel('hiring.xlsx') # 데이터 불러오기
hi['y'] = hi.hire.map({'P': 1, 'F': 0}) # P는 1, F는 0으로 변환