Skip to main content

로지스틱 회귀분석

로지스틱 회귀분석

  • 주요 개념:
    • 일반화 선형 모형
    • 로지스틱 회귀분석

일반화 선형모형 Generalized Linear Model

  • 다양한 종속변수를 분석할 수 있도록 선형 모형을 확장한 것
  • μ\mu(뮤): 종속 변수의 기댓값
  • g : 연결 함수 link function
g(μ)=wx+bg(\mu)=wx+b

로지스틱 회귀분석 logistic regression

y^=σ(wx+b)\hat{y}=\sigma(wx+b)
  • 확률은 0~1 사이의 값이므로 확률을 출력하는 함수를 만들 수 있다
σ(z)=11+exp(z)\sigma(z)=\frac{1}{1+exp(-z)}

0~1 사이의 출력을 갖는 함수

승산 odds

  • 승산 = 양성의 확률 / 음성의 확률
p1p\frac{p}{1-p}
  • 로짓(logit): 로그 승산
logp1plog\frac{p}{1-p}
  • 로지스틱 회귀분석은 로짓을 예측하는 선형 모형

한계 효과 marginal effect

  • x의 추가 변화에 따른 의 추가 변화
  • 선형 모형에서는 한계 효과가 x의 기울기 w로 일정
  • 로지스틱 회귀분석에서 로짓의 한계 효과는 일정, 확률의 한계효과는 x에 따라 다름 wx+b=0wx+b=0 일 때 한계효과가 가장 큼

우도 likelihood

  • 특정한 추정치에서 관찰된 데이터가 나올 확률
  • 예: 동전을 던져서 앞뒤뒤가 나왔을 경우(관찰된 데이터)
    • 앞면이 나올 확률을 1/3이라고 하면: 13×23×23=4270.148\frac{1}{3}\times\frac{2}{3}\times\frac{2}{3}=\frac{4}{27}\approx 0.148
    • 앞면이 나올 확률을 1/20이면: 12×12×12=180.125\frac{1}{2}\times\frac{1}{2}\times\frac{1}{2}=\frac{1}{8}\approx 0.125
  • 로지스틱 회귀분석의 적합도 지수
    • 로그우도: log(우도)
      • 우도는 확률의 곱이므로 n이 커질 수록 급격하게 작아짐
      • 컴퓨터에서 나타낼 수 있는 큰/작은 수에는 한계가 있음
      • 로그우도는 로그확률의 합이므로 n이 커져도 천천히 작아짐
    • 이탈도(deviance): -2 × 로그우도
    • AIC, BIC: 이탈도에 모형의 복잡도를 보정한 것. 작을 수록 좋음.

McFadden의 유사 R제곱

  • 선형 회귀분석의 R제곱과 비슷하게 해석할수 있도록 만든 값
1LmodelL01-\frac{L_{model}}{L_{0}}
  • LmodelL_{model} 분석 모형의 로그 우도
  • L0L_{0}: 독립변수 없이 예측할 때의 로그우도

완전 분리 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으로 변환