[Data Analysis] 2. Logistic Regression

7 분 소요

로지스틱 회귀분석 : Logisitc Linear Regression

💡 Data business
강필성 교수님의 강의를 보고 정리하였습니다.

다중 선형 회귀분석 : 수치형 설명변수 $X$와 종속변수 $Y$ 간의 관계를 선형으로 가정하고 이를 잘 표현할 수 있는 회귀계수를 추정

01

$y$ 와 $\hat{y}$ 의 차이가 적게 되는 $\hat{\beta_i}=(X^T X)^{-1}X^TY$ 를 추정

예시

  1. 33명의 성인 여성에 대한 나이와 혈압 사이의 관계

02

해석 : p-value가 충분히 작다는 가정하에 혈압은 81.54를 기준으로 나이가 들어갈수록 1.222씩 늘어난다.

  1. 연속형 변수가 아닌 이진형 Binary 변수인 Cancer Diagnosis일 경우

03

해석 : 현재 데이터에 선형회귀를 적용할 수 는 있지만 제대로된 추정이 아님 → 이진분류에 사용할 수 있는 로지스틱 사용

0 or 1의 이진 값이 아닌 확률값을 종속 변수로 사용한다면?

선형회귀분석의 우변의 범위에 대한 제한이 없기 때문에 종속변수(좌변) 역시 범위의 제한을 받지 않으므로 적절하지 않음

04

$y\in {0,1}$ 의 범위와 $\hat{y}\in{-\infty, \infty}$ 의 범위는 적절하지 않음

→ $y$를 확률로 바꾸어 $0\le p(y=1)\le 1$ ($y$가 1이 될 확률), $p(y=1) \in [0,1]$로 바꾸어 생각

→ 하지만 선형 회귀선이 계속해서 늘어나면 확률이 갖지 못하는 값 (1보다 크고 0보다 작은 값)이 될 수 있기 때문에 이것도 적절하지 않음

→ 해결 방법 : Logistic Regression

로지스틱 회귀분석 : Logistic Regression

목적 : 이진형 (0 or 1)의 형태를 갖는 종속변수(분류문제)에 대해 회귀식의 형태로 모형을 추정하는 것

속성

  1. 종속변수 $Y$ 자체를 그대로 사용하는 것이 아니라 $Y$에 대한 logit function를 회귀식의 종속변수로 사용 → 좌변의 범위를 $[-\infty, \infty]$ 로 맞추기위해
  2. logit function는 설명변수의 선형결합으로 표현될 수 있음
  3. logit function의 값은 종속변수에 대한 성공 확률로 역산될 수 있으며, 이는 따라서 분류 문제에 적용할 수 있음

ODDS

\[Odds=\frac{p}{1-p} \quad\quad \text{(p:성공범주, class=1에 속할 확률)}\]

2010 World Cup Betting Odds → 스페인 9:2, 한국 250:1

  • 스페인의 우승 odds는 $\frac{2}{9}$이므로 스페인의 우승 확률은 $\frac{2}{11}$
  • 대한민국의 우승 odds는 $\frac{1}{250}$이므로 대한민국의 우승확률은 $\frac{1}{251}\fallingdotseq 0.00398 (0.398\%)$

확률값이 0부터 1로 변화함에 따라 승산 odds는 0부터 무한대의 값을 가짐 $[0, \infty]$

  • $p$ 가 0에 가까우면 $\frac{p}{1-p}$ 는 0에 가까운 값을 가짐
  • $p$ 가 1에 가까우면 $\frac{p}{1-p}$ 는 무한대에 가까운 값을 가짐

05

하지만 여전히 범위에 대한 제약이 존재함 $0<odds<\infty$ → 비대칭성 Asymmetric

→ 해결방법 : Odds에 $\log$를 취함

\[\log(Odds)=\log\Big(\frac{p}{1-p}\Big)\]

↳ 성공확률 $p$ 가 작으면 음수값을 갖고, 성공확률 $p$가 크면 양수값을 가짐

06

로지스틱 회귀분석의 식

  1. Log Odds를 이용한 회귀분석식

    \[\log (Odds)=\log\Big(\frac{p}{1-p}\Big)=\hat{\beta_0}+\hat{\beta_1}x_1+\hat{\beta_2}x_2 +\cdots+\hat{\beta_d}x_d\]

    회귀식의 형태를 유지해서 얻을 수 있는 장점 : 변수의 통계적 유의성 확인 가능 / 변수의 증감과 성공확률의 관계를 해석하고 이해할 수 있음

  2. 양변에 지수를 취하면

    \[\frac{p}{1-p}=e^{\hat{\beta_0}+\hat{\beta_1}x_1+\hat{\beta_2}x_2 +\cdots+\hat{\beta_d}x_d}\]
  3. 성공확률에 대한 식으로 표현 → 시그모이드 함수

    \[p=\frac{1}{1+e^{-(\hat{\beta_0}+\hat{\beta_1}x_1+\hat{\beta_2}x_2 +\cdots+\hat{\beta_d}x_d)}}=\sigma(x|\beta)\]

    $\sigma(x|\beta)$ : $\beta$ 라는 추정값을 전제하고 $x$ 라는 새로운 값이 주어졌을 때, 나타나는 성공확률

\[\ln\Big(\frac{p}{1-p}\Big) : \text{logit}\\ \ln\Big(\frac{p}{1-p}\Big)=\beta_0+\beta_1x_1 +\cdots+\beta_ix_i\]
  • 로지스틱 회귀 모형은 종속변수가 이분형일 때 선형회귀 모형의 제약을 극복하기 위해 확률에 대한 로짓 변환을 고려하여 분석
\[p=\frac{e^{\hat{\beta_0}+\hat{\beta_1}x_1+\cdots+\hat{\beta_i}x_i}}{1+e^{\hat{\beta_0}+\hat{\beta_1}x_1+\hat{\beta_2}x_2 +\cdots+\hat{\beta_d}x_d}}\]
  • 위의 모형식에서 추정된 회귀계수로부터 사후확률에 대한 추정식을 계산

로지스틱 회귀분석 : 학습

동일한 데이터셋에 대해 다음과 같이 두 가지 로지스틱 회귀분석 모형이 존재한다고 하면 어떤 모형이 현재 데이터를 더 잘 설명하는 모형인가?

07

↳ cut-off가 0.5라면 분류 정확도는 둘다 100% 이지만, 실제 정답이 1일 때 1 범주로 예측할 확률이 높고 정답이 0일 때도 0 범주로 예측할 확률이 높으므로 Model A가 더 우수한 모형

로지스틱 회귀분석에서 회귀 계수의 추정

동일한 데이터셋에 대해 위와 같이 둑 자의 로지스틱 회귀분석 모형이 존재한다고 하면 어떤 모형이 현재 데이터를 잘 설명하는 모형인가?

→ 우도함수, Likelihood function

  1. 개별 객체의 우도 함수는 해당 학습 데이터가 정답 범주에 속할 확률 (고객1의 우도 함수 값은 0.908, 고객2의 우도함수 값은 0.799)
  2. 데이터의 생성 과정이 독립임을 가정할 수 있을 때, 전체 데이터셋의 우도 함수는 개별 객체의 우도 함수를 모두 곱한 값

    $P(A,B)=P(A)\cdot P(B)$ → 사건 $A$와 $B$가 독립일 때

  3. 일반적으로 데이터셋의 우도 함수는 매우 작은 값을 가지므로(1보다 작은 소수가 계속 곱해지므로) 로그 우도 함수를 주로 사용

우도함수

08

Model A의 (로그)우도 함수가 Model B의 (로그)우도 함수보다 큼 → Model A 가 Model B보다 데이터셋을 더 잘 설명하는 모델

최대 우도 추정법, Maximum likelihood estimation (MLE)

학습 데이터의 개별 객체들이 갖는 정답 범주에 대한 확률을 극대화하기

  1. 성공에 대한 식에서

    \[p=\frac{1}{1+e^{-(\hat{\beta_0}+\hat{\beta_1}x_1+\hat{\beta_2}x_2 +\cdots+\hat{\beta_d}x_d)}}=\sigma(\mathbf{x}|\beta)\]
  2. $i$번째 객체에 대한 우도 함수

    \[P(\mathbf{x}_i, y_i|\beta)= \begin{cases} \sigma(\mathbf{x}_i|\beta), & \mbox{if }y_i=1\\ 1-\sigma(\mathbf{x}_i|\beta), & \mbox{if }y_i=0 \end{cases}\]
  3. 출력변수가 1과 0임을 고려하여 다음과 같이 변형가능

    \[P(\mathbf{x}_i, y_i|\beta)=\sigma(\mathbf{x}_i|\beta)^{y_i}(1-\sigma(\mathbf{x}_i|\beta))^{1-y_i}\]
  4. 학습 데이터셋의 객체들이 도립적으로 발생됨을 가정할 경우 전체 데이터 셋에 대한 우도 함수는 다음과 같이 표현

    \[L(\mathbf{X}, \mathbf{y}|\beta)=\prod_{i=1}^N \sigma(\mathbf{x}|\beta)^{y_i}(1-\sigma(\mathbf{x}_i|\beta))^{1-y_i}\]
  5. 양변에 로그를 취하면

    \[\log L(\mathbf{X}, \mathbf{y}|\beta)=\sum_{i=1}^N \Big(y_i \log(\sigma(\mathbf{x}|\beta))+(1-y_i)\log(1-\sigma(\mathbf{x}_i|\beta))\Big)\]
  6. 우도함수와 로그-우도함수는 회귀계수 $\beta$에 대해 비선형이므로 선형회귀분석과 같이 명시적인 해가 존재하지 않음 → Conjugate gradient 등의 최적화 알고리즘을 차용해 해를 구함

기울기 하강, Gradient descent algorithm

09

파란색 선 : 미지수 w의 변화에 따른 목적함수 값의 변화

검정색 점 : 현재 해의 위치

화살표 : 목적함수를 최적화하기 위해 미지수 w가 이동해야 하는 방향

gradient : 목적함수를 미지수에 대해 1차 미분한 값 → 최저점 Global cost minimum $J_{min}(w)=0$

1_rCCH2J1JHTdknga6qFpwyA

비용함수를 현재의 가중치 값(w)에 대해 1차 미분을 수행한 뒤 아래의 절차를 따름

  1. 1차 미분 값 (gradient)이 0인가?

    그렇다 → 현재의 가중치 값이 최적이므로 학습 종류

    아니다 → 현재의 가중치 값이 최적이 아니므로 계속 학습

  2. 1차 미분 값(gradient)가 0이 아닐 경우 어떻게 해야 좀 더 잘하는 모델을 만들 수 있는 가?

    1차 미분 값 (gradient)의 부호에 대한 반대 방향으로 조금씩 가중치를 이동

식 전개

  1. 함수의 테일러 전개
\[f(w, \Delta w)=f(w)+\frac{f'(w)}{1!}\Delta w +\frac{f''(w)}{2!}(\Delta w)^2 + \cdots\]
  1. 목적함수가 최소인 경우 함수의 1차 미분 값(gradient)이 0이 아니면 Gradient의 반대 방향으로 이동해야 목적함수 값을 감소시킬 수 있음
\[w_{new}=w_{old}{\color{red}{-}}{\color{blue}{\alpha}} f'({\color{red}{w}}), \quad \text{where } 0<\alpha<1\]

$\color{blue}\alpha$는 얼마만큼 갈 것인가를 나타내고 $\color{red}-, w$는 어느방향으로 갈 것인가

  1. 이동 후의 새로운 함수 값은 이동 전의 함수 값보다 작음

    \[f(w_{new})=f(w_{old}-\alpha f'(w_{old})) \cong f(w_{old})-\alpha |f'(w)|^2<f(w_{old})\]

로지스틱 회귀분석의 그래프 표현

설명 변수의 값들을 적절히 취합해서 시그모이드 Sigmoid 함수를 통해 출력값을 산출

10

11

Gradient Descent 에서 회귀계수가 업데이트 되는 원리

12

현재 모델이 얼마나 잘 맞추는지, 해당 회귀계수와 연결되어 있는 설명변수가 얼마나 값이 크냐 작냐에 따라 값이 업데이트 됨

로지스틱 회귀분석 : 성공확률

회귀계수가 추정되고 나면 주어진 설명변수 집합에 대한 성공확률을 다음과 같이 계산할 수 있음

\[P(y=1)=\frac{1}{1+e^{-(\hat{\beta_0}+\hat{\beta_1}x_1+\hat{\beta_2}x_2 +\cdots+\hat{\beta_d}x_d)}}\]

13

이진분류를 위한 cut-off 설정

14

일반적으로 0.5가 주로 사용되고 사전확률을 고려한 cut-off나 검증 데이터의 정확도를 최대화하는 cut-off 등이 사용될 수도 있음

로지스틱 회귀분석 회귀계수의 의미

  1. 선형 회귀분석 회귀식
\[\hat{y}=\hat{\beta_0}+\hat{\beta_1}x_1+\hat{\beta_2}x_2 +\cdots+\hat{\beta_d}x_d\]
  1. 선형 회귀분석에서의 회귀계수는 해당 변수가 1 증가함에 따른 종속변수의 변화량

    로지스틱 회귀분석 회귀식

\[\log (Odds)=\log\Big(\frac{p}{1-p}\Big)=\hat{\beta_0}+\hat{\beta_1}x_1+\hat{\beta_2}x_2 +\cdots+\hat{\beta_d}x_d\\ p=\frac{1}{1+e^{-(\hat{\beta_0}+\hat{\beta_1}x_1+\hat{\beta_2}x_2 +\cdots+\hat{\beta_d}x_d)}}\]
  1. 로지스틱 회귀분석에서의 회귀계수는 해당 변수가 1 증가함에 따른 로그 승산의 변화량

승산 비율 : Odds Ratio

로지스틱 회귀분석에서 나머지 벼수는 모두 고정시킨 상태에서 한 변수를 1만큼 증가시켰을 때 변화하는 Odds의 비율

Odds Ratio

\[\frac{odds({\color{red}{x_1+1}}, \cdots, x_d)}{odds(x_1, \cdots, x_d)}= \frac{e^{\hat{\beta_o}+\hat{\beta_1}({\color{red}{x_1+1}})+\hat{\beta_2}x_2+\cdots+\hat{\beta_d}x_d}}{e^{\hat{\beta_o}+\hat{\beta_1}x_1+\hat{\beta_2}x_2+\cdots+\hat{\beta_d}x_d}}=e^{\hat{\beta_1}}\]

$x_1$이 1 증가하게 되면 성공에 대한 승산 비율이 $e^{\beta_1}$만큼 변화함 (직관적인 확인이 어려움)

회귀 계수가 양수 → 변수가 증가하면 성공확률이 증가 = p값이 커짐 (성공 범주와 양의 상관 관계)

회귀 계수가 음수 → 변수가 증가하면 성공확률이 감소 (성공 범주와 음의 상관 관계)

\[\frac{p}{1-p}=e^{\hat{\beta_o}+\hat{\beta_1}x_1+\hat{\beta_2}x_2+\cdots+\hat{\beta_d}x_d}\]

로지스틱 회귀분석 결과 및 해석

\[p=\frac{1}{1+e^{-(\hat{\beta_0}+\hat{\beta_1}x_1+\hat{\beta_2}x_2 +\cdots+\hat{\beta_d}x_d)}}\]

15

  1. 회귀계수, Coefficient

로지스틱 회귀분석에서 각 변수에 대응하는 베타값

선형회귀분석에서는 해당 변수가 1단위 증가할 때 종속변수의 변화량을 의미하지만, 로지스틱 회귀분석에서는 해당 변수가 1단위 증가할 때 로그승산비의 변화량을 의미

양수이면 성공확률과 양의 상관관계, 음수이면 성공 확률과 음의 상관관계

✎ age는 p-value값이 높기 때문에 나이라는 속성은 대출유무를 판단하는데 유효한 속성이 아님

✎ family 는 p-value값이 낮기 때문에 가족 구성원 수는 대출유무에 영향을 미치고 회귀 계수가 양수이기 때문에 가족 구성원 수가 많을 수록 대출을 이용할 확률이 높아짐

  1. 유의 확률, P-value

로지스틱 회귀분석에서 해당 변수가 통계적으로 유의미한지 알려주는 지표

0에 가까울수록 모델링에 중요한 변수이며, 1에 가까울수록 유의미하지 않은 변수임

특정 유의수준($\alpha$)을 설정하여 해당 값 미만의 변수만을 사용하여 다시 로지스틱 회귀분석을 구축하는 것도 가능함 (주로 $\alpha=0.0.5$ 사용)

✎ age, experience의 p-value는 0.05보다 큰 값으로 나이와 직장경력은 신용대출 유무를 판별하는데 유의미하지 않지만 나머지 변수들은 유의미하다

  1. 승산비율, Odds Ratio

나머지 변수는 모두 고정시킨 상태에서 한 변수를 1만큼 증가시켰을 때 변화하는 Odds의 비율

Geometric interpretation

로지스틱 회귀분석은 d차원의 데이터를 구분하는 (d-1)차원의 초평면을 찾는 것으로 이해할 수 있음

16

신용카드 연체 예측

17

대출 금액(Balance)에 따른 연체 여부를 예측하는 것은 가능해 보이나, 수입(Income)에 따른 연체 여부를 예측하는 것은 불가능해 보임 → Balance는 유효한 변수라는 것을 알 수 있음

단변량 로지스틱 회귀분석

18

balance 변수를 가지고 단변량 로지스틱 회귀분석을 시행하면

  1. p-value가 낮기 때문에 연체를 예측하는데 중요한 변수가 될 것
  2. coefficient가 0보다 크기 때문에 잔액이 클수록 연체할 확률이 높아질 것
  3. 대출액이 $1000일 때의 연체 확률은 0.6%이지만 대출액이 $2000인 경우의 연체 확률은 58.6%로 높아진 것을 볼 수 있음

다변량 로지스틱 회귀분석

19

  1. student[Yes]일 경우에 coefficient가 음수라는 것은 학생이 아닐 경우 보다 연체를 일으킬 확률이 낮아진다는 것
  2. income의 p-value는 0.05보다 큰 값이므로 유의미한 변수가 아님

다항 로지스틱 회귀분석

지금까지의 로지스틱 회귀분석은 이범주 분류를 풀기 위한 방식 → 범주가 3개 이상은 다범주 분류에는 로지스틱 회귀분석을 어떻게 적용할 수 있을까?

기준이 되는 범주를 설정하고 이 범주 대비 다른 범주가 발생할 로그 승산을 회귀식으로 추정

20

예시

범주가 3개인 분류 문제의 경우 아래 두 개의 회구식에 대한 회귀 계수를 추정

  1. 범주 3 대비 범주 1의 발생 확률에 대한 로지스틱 회귀분석
\[\log\Big(\frac{p(y=1)}{p(y=3)}\Big)=\hat{\beta_{10}}+\hat{\beta_{11}}x_1+\hat{\beta_{12}}x_2 +\cdots+\hat{\beta_{1d}}x_d=\beta^T_{1\cdot}\mathbf{x}\]
  1. 범주 3 대비 범주 2의 발생 확률에 대한 로지스틱 회귀분석
\[\log\Big(\frac{p(y=2)}{p(y=3)}\Big)=\hat{\beta_{20}}+\hat{\beta_{21}}x_1+\hat{\beta_{22}}x_2 +\cdots+\hat{\beta_{2d}}x_d=\beta^T_{2\cdot}\mathbf{x}\]

왜 범주는 3개인데 2개의 모형만 학습하는가? (일반화하면 K개의 범주가 있을 때, (K-1)개의 모형만 학습하는 이유는?)

각 범주에 속할 확률의 합은 항상 1이므로 나머지 K번째 범주에 대한 확률은 자동으로 산출 됨

21

와인의 화학적 성분 비율을 통해 포도 품종 맞추기

22

  1. 12번째 변수는 3가지의 포도 품종이 비슷한 분포를 띄고 있기 때문에 유의미한 변수가 아닐 것
  2. 8번째 변수는 초록색 포도품종을 구분하는데 도움이 되지만 노랑색, 파란색의 포도품종을 구분하는데는 도움이 되지 않을 것

23

  1. 5번째 그래프에서 PCA0, PCA1 첫 두개의 주성분만 사용해도 어느정도 잘 구분되는 것을 볼 수 있음

24

  1. Total.phenols, Flavanolds 는 3가지 품종을 나누는데 중요한 역할을 할 것

  2. Ash, Proanthocyanins는 1번과 3번 범주를 구분하는데는 유의미하지 않지만, 2번과 3번 범주를 구분하는데는 유의미할 것

댓글남기기