[Data Analysis] 2. Logistic Regression
로지스틱 회귀분석 : Logisitc Linear Regression
💡 Data business
강필성 교수님의 강의를 보고 정리하였습니다.
다중 선형 회귀분석 : 수치형 설명변수 $X$와 종속변수 $Y$ 간의 관계를 선형으로 가정하고 이를 잘 표현할 수 있는 회귀계수를 추정
$y$ 와 $\hat{y}$ 의 차이가 적게 되는 $\hat{\beta_i}=(X^T X)^{-1}X^TY$ 를 추정
예시
- 33명의 성인 여성에 대한 나이와 혈압 사이의 관계
해석 : p-value가 충분히 작다는 가정하에 혈압은 81.54를 기준으로 나이가 들어갈수록 1.222씩 늘어난다.
- 연속형 변수가 아닌 이진형 Binary 변수인 Cancer Diagnosis일 경우
해석 : 현재 데이터에 선형회귀를 적용할 수 는 있지만 제대로된 추정이 아님 → 이진분류에 사용할 수 있는 로지스틱 사용
0 or 1의 이진 값이 아닌 확률값을 종속 변수로 사용한다면?
선형회귀분석의 우변의 범위에 대한 제한이 없기 때문에 종속변수(좌변) 역시 범위의 제한을 받지 않으므로 적절하지 않음
$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)의 형태를 갖는 종속변수(분류문제)에 대해 회귀식의 형태로 모형을 추정하는 것
속성
- 종속변수 $Y$ 자체를 그대로 사용하는 것이 아니라 $Y$에 대한 logit function를 회귀식의 종속변수로 사용 → 좌변의 범위를 $[-\infty, \infty]$ 로 맞추기위해
- logit function는 설명변수의 선형결합으로 표현될 수 있음
- 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}$ 는 무한대에 가까운 값을 가짐
하지만 여전히 범위에 대한 제약이 존재함 $0<odds<\infty$ → 비대칭성 Asymmetric
→ 해결방법 : Odds에 $\log$를 취함
\[\log(Odds)=\log\Big(\frac{p}{1-p}\Big)\]↳ 성공확률 $p$ 가 작으면 음수값을 갖고, 성공확률 $p$가 크면 양수값을 가짐
로지스틱 회귀분석의 식
-
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\]회귀식의 형태를 유지해서 얻을 수 있는 장점 : 변수의 통계적 유의성 확인 가능 / 변수의 증감과 성공확률의 관계를 해석하고 이해할 수 있음
-
양변에 지수를 취하면
\[\frac{p}{1-p}=e^{\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)}}=\sigma(x|\beta)\]$\sigma(x|\beta)$ : $\beta$ 라는 추정값을 전제하고 $x$ 라는 새로운 값이 주어졌을 때, 나타나는 성공확률
- 로지스틱 회귀 모형은 종속변수가 이분형일 때 선형회귀 모형의 제약을 극복하기 위해 확률에 대한 로짓 변환을 고려하여 분석
- 위의 모형식에서 추정된 회귀계수로부터 사후확률에 대한 추정식을 계산
로지스틱 회귀분석 : 학습
동일한 데이터셋에 대해 다음과 같이 두 가지 로지스틱 회귀분석 모형이 존재한다고 하면 어떤 모형이 현재 데이터를 더 잘 설명하는 모형인가?
↳ cut-off가 0.5라면 분류 정확도는 둘다 100% 이지만, 실제 정답이 1일 때 1 범주로 예측할 확률이 높고 정답이 0일 때도 0 범주로 예측할 확률이 높으므로 Model A가 더 우수한 모형
로지스틱 회귀분석에서 회귀 계수의 추정
동일한 데이터셋에 대해 위와 같이 둑 자의 로지스틱 회귀분석 모형이 존재한다고 하면 어떤 모형이 현재 데이터를 잘 설명하는 모형인가?
→ 우도함수, Likelihood function
- 개별 객체의 우도 함수는 해당 학습 데이터가 정답 범주에 속할 확률 (고객1의 우도 함수 값은 0.908, 고객2의 우도함수 값은 0.799)
-
데이터의 생성 과정이 독립임을 가정할 수 있을 때, 전체 데이터셋의 우도 함수는 개별 객체의 우도 함수를 모두 곱한 값
$P(A,B)=P(A)\cdot P(B)$ → 사건 $A$와 $B$가 독립일 때
- 일반적으로 데이터셋의 우도 함수는 매우 작은 값을 가지므로(1보다 작은 소수가 계속 곱해지므로) 로그 우도 함수를 주로 사용
우도함수
Model A의 (로그)우도 함수가 Model B의 (로그)우도 함수보다 큼 → Model A 가 Model B보다 데이터셋을 더 잘 설명하는 모델
최대 우도 추정법, Maximum likelihood estimation (MLE)
학습 데이터의 개별 객체들이 갖는 정답 범주에 대한 확률을 극대화하기
-
성공에 대한 식에서
\[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)\] -
$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}\] -
출력변수가 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}\] -
학습 데이터셋의 객체들이 도립적으로 발생됨을 가정할 경우 전체 데이터 셋에 대한 우도 함수는 다음과 같이 표현
\[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}\] -
양변에 로그를 취하면
\[\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)\] -
우도함수와 로그-우도함수는 회귀계수 $\beta$에 대해 비선형이므로 선형회귀분석과 같이 명시적인 해가 존재하지 않음 → Conjugate gradient 등의 최적화 알고리즘을 차용해 해를 구함
기울기 하강, Gradient descent algorithm
파란색 선 : 미지수 w의 변화에 따른 목적함수 값의 변화
검정색 점 : 현재 해의 위치
화살표 : 목적함수를 최적화하기 위해 미지수 w가 이동해야 하는 방향
gradient : 목적함수를 미지수에 대해 1차 미분한 값 → 최저점 Global cost minimum $J_{min}(w)=0$
비용함수를 현재의 가중치 값(w)에 대해 1차 미분을 수행한 뒤 아래의 절차를 따름
-
- 1차 미분 값 (gradient)이 0인가?
-
그렇다 → 현재의 가중치 값이 최적이므로 학습 종류
-
아니다 → 현재의 가중치 값이 최적이 아니므로 계속 학습
-
- 1차 미분 값(gradient)가 0이 아닐 경우 어떻게 해야 좀 더 잘하는 모델을 만들 수 있는 가?
-
1차 미분 값 (gradient)의 부호에 대한 반대 방향으로 조금씩 가중치를 이동
식 전개
- 함수의 테일러 전개
- 목적함수가 최소인 경우 함수의 1차 미분 값(gradient)이 0이 아니면 Gradient의 반대 방향으로 이동해야 목적함수 값을 감소시킬 수 있음
$\color{blue}\alpha$는 얼마만큼 갈 것인가를 나타내고 $\color{red}-, w$는 어느방향으로 갈 것인가
-
이동 후의 새로운 함수 값은 이동 전의 함수 값보다 작음
\[f(w_{new})=f(w_{old}-\alpha f'(w_{old})) \cong f(w_{old})-\alpha |f'(w)|^2<f(w_{old})\]
로지스틱 회귀분석의 그래프 표현
설명 변수의 값들을 적절히 취합해서 시그모이드 Sigmoid 함수를 통해 출력값을 산출
Gradient Descent 에서 회귀계수가 업데이트 되는 원리
현재 모델이 얼마나 잘 맞추는지, 해당 회귀계수와 연결되어 있는 설명변수가 얼마나 값이 크냐 작냐에 따라 값이 업데이트 됨
로지스틱 회귀분석 : 성공확률
회귀계수가 추정되고 나면 주어진 설명변수 집합에 대한 성공확률을 다음과 같이 계산할 수 있음
\[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)}}\]이진분류를 위한 cut-off 설정
일반적으로 0.5가 주로 사용되고 사전확률을 고려한 cut-off나 검증 데이터의 정확도를 최대화하는 cut-off 등이 사용될 수도 있음
로지스틱 회귀분석 회귀계수의 의미
- 선형 회귀분석 회귀식
-
선형 회귀분석에서의 회귀계수는 해당 변수가 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)}}\]- 회귀계수, Coefficient
로지스틱 회귀분석에서 각 변수에 대응하는 베타값
선형회귀분석에서는 해당 변수가 1단위 증가할 때 종속변수의 변화량을 의미하지만, 로지스틱 회귀분석에서는 해당 변수가 1단위 증가할 때 로그승산비의 변화량을 의미
양수이면 성공확률과 양의 상관관계, 음수이면 성공 확률과 음의 상관관계
✎ age
는 p-value값이 높기 때문에 나이라는 속성은 대출유무를 판단하는데 유효한 속성이 아님
✎ family
는 p-value값이 낮기 때문에 가족 구성원 수는 대출유무에 영향을 미치고 회귀 계수가 양수이기 때문에 가족 구성원 수가 많을 수록 대출을 이용할 확률이 높아짐
- 유의 확률, P-value
로지스틱 회귀분석에서 해당 변수가 통계적으로 유의미한지 알려주는 지표
0에 가까울수록 모델링에 중요한 변수이며, 1에 가까울수록 유의미하지 않은 변수임
특정 유의수준($\alpha$)을 설정하여 해당 값 미만의 변수만을 사용하여 다시 로지스틱 회귀분석을 구축하는 것도 가능함 (주로 $\alpha=0.0.5$ 사용)
✎ age, experience
의 p-value는 0.05보다 큰 값으로 나이와 직장경력은 신용대출 유무를 판별하는데 유의미하지 않지만 나머지 변수들은 유의미하다
- 승산비율, Odds Ratio
나머지 변수는 모두 고정시킨 상태에서 한 변수를 1만큼 증가시켰을 때 변화하는 Odds의 비율
Geometric interpretation
로지스틱 회귀분석은 d차원의 데이터를 구분하는 (d-1)차원의 초평면을 찾는 것으로 이해할 수 있음
신용카드 연체 예측
대출 금액(Balance)에 따른 연체 여부를 예측하는 것은 가능해 보이나, 수입(Income)에 따른 연체 여부를 예측하는 것은 불가능해 보임 → Balance
는 유효한 변수라는 것을 알 수 있음
단변량 로지스틱 회귀분석
balance
변수를 가지고 단변량 로지스틱 회귀분석을 시행하면
- p-value가 낮기 때문에 연체를 예측하는데 중요한 변수가 될 것
- coefficient가 0보다 크기 때문에 잔액이 클수록 연체할 확률이 높아질 것
- 대출액이 $1000일 때의 연체 확률은 0.6%이지만 대출액이 $2000인 경우의 연체 확률은 58.6%로 높아진 것을 볼 수 있음
다변량 로지스틱 회귀분석
student[Yes]
일 경우에 coefficient가 음수라는 것은 학생이 아닐 경우 보다 연체를 일으킬 확률이 낮아진다는 것income
의 p-value는 0.05보다 큰 값이므로 유의미한 변수가 아님
다항 로지스틱 회귀분석
지금까지의 로지스틱 회귀분석은 이범주 분류를 풀기 위한 방식 → 범주가 3개 이상은 다범주 분류에는 로지스틱 회귀분석을 어떻게 적용할 수 있을까?
기준이 되는 범주를 설정하고 이 범주 대비 다른 범주가 발생할 로그 승산을 회귀식으로 추정
예시
범주가 3개인 분류 문제의 경우 아래 두 개의 회구식에 대한 회귀 계수를 추정
- 범주 3 대비 범주 1의 발생 확률에 대한 로지스틱 회귀분석
- 범주 3 대비 범주 2의 발생 확률에 대한 로지스틱 회귀분석
왜 범주는 3개인데 2개의 모형만 학습하는가? (일반화하면 K개의 범주가 있을 때, (K-1)개의 모형만 학습하는 이유는?)
각 범주에 속할 확률의 합은 항상 1이므로 나머지 K번째 범주에 대한 확률은 자동으로 산출 됨
와인의 화학적 성분 비율을 통해 포도 품종 맞추기
- 12번째 변수는 3가지의 포도 품종이 비슷한 분포를 띄고 있기 때문에 유의미한 변수가 아닐 것
- 8번째 변수는 초록색 포도품종을 구분하는데 도움이 되지만 노랑색, 파란색의 포도품종을 구분하는데는 도움이 되지 않을 것
- 5번째 그래프에서 PCA0, PCA1 첫 두개의 주성분만 사용해도 어느정도 잘 구분되는 것을 볼 수 있음
-
Total.phenols, Flavanolds
는 3가지 품종을 나누는데 중요한 역할을 할 것 -
Ash, Proanthocyanins
는 1번과 3번 범주를 구분하는데는 유의미하지 않지만, 2번과 3번 범주를 구분하는데는 유의미할 것
댓글남기기