본 포스팅의 내용은 Gareth James, Daniela Witten, Trevor Hastie, Robert Tibshirani, Jonathan Taylor (2023), 「An Introduction to Statistical Learning with Applications in Python」, Springer 를 참고하였습니다.
앞서,
3장에서 논의한 선형회귀모형은 주로 반응변수 를 양적(quantitative)라고 가정했다.
하지만 반응변수가 질적(qualitiative, 범주형(categorical))인 경우도 많다.
이번 장에는 질적 반응을 예측하기 위한 접근법, 분류(classification)의 처리과정을 다룬다.
질적 반응변수를 예측(분류)하는데 사용할 수 있는 기법 또는 분류기는 여러 종류가 있다.
이번 장에서는 로지스틱회귀분석(logistic regression), 선형판별분석(linear discriminant analysis), 이차판별분석(quadratic discriminant analysis), 나이브 베이즈(naive Bayes), K-최근접이웃(K-nearest neighbors) 등 분류기를 논의할 것이다.
로지스틱 회귀에 대한 논의는 일반화선형모형(generalized linear model), 포아송 회귀(Poisson regression)를 논의하기 위한 도약점이 된다.
분류 문제는 회귀 문제보다 훨씬 빈번하게 발생한다.
- 어떤 사람이 세 가지 질환 중 하나일 가능성을 보이며 응급실에 도착한다. 이 사람은 어떤 질환을 앓고 있을까?
- 온라인 뱅킹 서비스는 사용자의 IP주소와 과거 거래 이력을 기반으로 웹사이트에서 거래가 사기인지 판별해야한다.
- 질병이 있는 환자와 없는 환자의 DNA서열에서 어떤 DNA가 해당 질병을 유발하는지 파악하려고 한다.
분류 또한 훈련 데이터 세트로 분류기를 만들 수 있다.
이러한 훈련 데이터 세트를 통해 테스트 데이터 세트에 대한 정확한 관측을 목표로 한다.
이 번장에서는 Default(연체) 데이터 세트를 사용한다.
우리는 연소득과 원별 신용카드 잔액에 기반해, 한 개인이 신용카드 대금 결제의 연체 여부를 예측하려고 한다.

왼쪽 그림은 10,000 중 일부 부분집합의 income(연 소득)과 balance(월별 신용카드 잔액)을 나타낸 그래프이다.
연체한 사람은 주황색, 연체하지 않은 사람은 파란색으로 표시했다.
연체한 사람은 연체하지 않은 사람보다 Balance, 신용카드 잔액이 더 높은 경향을 보인다.
첫 번째 상자그림은 이진변수(default)에 대한 balance의 분포를 보여주고,
두 번째 상자그림은 Income의 분포를 보여준다.
상자그림을 통해 연체 여부에 따른 반응 변수의 차이를 확연하게 볼 수 있다.
선형회귀는 질적 반응에는 적합하지 않다.
앞서 언급한 것처럼 선형회귀를 통해 질적 반응변수를 예측할 경우에는 회귀모형을 세워 임의의 숫자를 설정한 후 적합과정에 들어간다.
예를 들어보자.

다음은 응급실에서 환자의 증상을 기반으로 환자의 질환을 예측하는 경우이다.
3가지 경우의 수를 이 식을 이용해 최소제곱을 이용한 예측변수 집합을 기반으로 반응변수를 예측하는 선형회귀모형을 적합할 수 있다.
여기서 3가지 질환에 대한 회귀계수는 순서를 이용해서 정했다는 것이다.
그 말인 즉슨, 뇌졸중과 약물 남용과의 차이와, 약물 남용과 간질발작의 차이를 같다고 주장하고 있다.
해당 질환이 순차적으로 경증, 중등도, 중증과 같이 순서가 있는 값이라면 합리적이라고 할 수 있지만,
이 경우에 대한 질환은 순서가 없이 임의로 설정한 것이기 때문에 합리적인 분석이라고 할 수 없다.
질적변수가 이진(binary)형태인 경우에는 가변수(dummy variable)을 사용해 반응변수를 코딩할 가능성이 생긴다.

이러한 이진 반응에 선형회귀를 적합하고 경우 약물 남용, 반대의 경우 뇌졸중으로 예측할 수 있다.
이렇게 이진 질적 반응인 경우에는 선형회귀를 사용해 추정값을 보일 수 있다.
하지만 선형회귀를 사용하면 추정값 중 일부가[0,1] 구간 밖에 위치할 수 있어 추정값을 확률로 해석하기 어렵게 만든다.

선형회귀를 사용해 이진 반응을 예측하면 얻게 되는 분류 결과는 이후 논의하는 선형판별분석(LDA, linear discrmininat analysis) 정차의 결과와 같다고 알려져 있다.
요약했을 때, 최소한 두 가지 이유로 분류를 수행할 때 회귀모형을 이용하지 못한다.
Default 데이터에서 반응변수는 'Yes', 'No'의 두 가지 범주이다.
로지스틱회귀는 반응변수를 직접 모형화하는 대신, 반응변수 가 특정 범주에 속할 확률을 모형화한다.
에서 이 값의 범위는 0과 1사이다. 예를 들어 0.5 초과일 경우
라고 예측할 수 있다.
와 X 사이의 관계를 어떻게 모형화할까?
다음은 이 확률을 표현하기 위해 아래 선형회귀모형을 사용했다.

이러한 모형으로는 그림[4.2]의 왼쪽 그림으로 제시된다.
balance가 0에 가까울 경우 음수, 매우 큰 경우 1보다 커지는 값을 가지게 되 합리적이지 않다.
이러한 문제를 피하기 위해서 항상 0과1사이의 값을 만족하는 함수를 사용해 모형화해야 한다.
로지스틱 회귀에서는 로지스틱 함수(logistic function)를 사용한다.

해당 모형을 적합하기 위해 사용하는 최대가능도(maximum likelihood)는 다음 절에서 논의한다.
이러한 모형을 통해 적합한 경우 [그림4.2]의 오른쪽 그림으로 제시된다.
로지스틱 함수는 항상 S자형 곡선을 생성해 0과1사이를 절대 넘지 않는다.
따라서 X의 값에 상관없이 합리적인 예측이 가능하다.
앞의 식을 조정할 경우 다음과 같다.

좌변을 오즈(odds)라고 하며 0에서 무한대 사이의 값을 취할 수 있다.
오즈가 0에 가까우면 default확률이 매우 낮고, 1에 가까운 경우 default확률이 매우 놓다.
또한 이 식에 로그를 취하면 다음 식을 얻는다.

좌변은 로그 오즈, 로짓(logit)이라고 한다. 로지스틱회귀모형에서 로짓은 X에 대해 선형이다.
여기서는 X값이 한 단위 증가하면 로그오즈는 만큼 증가하고 이는 오즈에 만큼 증가한다는 의미이다.
식 (4.2)의 계수 ,을 모르므로 훈련데이터를 통해 추정해야한다.
로지스틱 회귀에서는 '최대가능도' 방법으로 보통 사용된다.

이 식을 통해 각 개인의 연체확률가 실제 관찰된 연체 상태와 최대한 일치하도록 추정값을 구하고자 한다.
또한 값의 구간은 항상 0과 1을 만족해야 한다. 이를 가능도함수(likelihood function)이라는 공식으로 사용할 경우 다음과 같다.

이 가능도 함수를 최대화하는 추정값,을 선택한다.
최대가능도는 많은 비선형모형을 적합할 때 사용하는 매우 일반적인 방법이다.
다음은 balance를 이용해 인 확률을 예측하기 위해 Default 데이터에 로지스틱 회귀모형을 적합한 결과이다.

로 balance가 한 단위 증가할 때 default의 로그오즈는 0.0055단위 증가한다.
해당 표는 선형회귀분석 결과를 해석할 때가 같은 방법으로 해석하면 된다.
계수들이 추정되었을 때, 신용카드 잔액에 대한 연체 확률을 계산할 수 있다. 예를 들어 balance가 $1,000인 개인의 연체확률은 다음과 같다.

또한 앞서 소개한 가변수 접근법으로 로지스틱 회귀모형에 질적 예측 변수를 사용할 수 있다.
질적 변수 student가 포함되어 있고, 학생 상태를 예측변수로 사용하는 모형을 적합할 때, 학생은 1, 비학생은 0인 가변수를 설정하고 다음 적합 결과를 확인할 수 있다.


이로써 학생이 비학생보다 연체 확률이 더 높은 것을 알 수 있다.
만약 예측 변수가 여러 개일 경우 이진 반응변수 문제를 어떻게 해결할까?
단순선형회귀에서 다중선형회귀로 갈 때의 확장을 유추했을 때, 다음과 같이 일반화 할 수 있다.

또한 다음 식으로 다시 쓸 수 있다.

여기서 , 는 최대가능도법으로 추정한다.

다음 표는 balance, income, student 상태로 default의 확률을 예측하는 로지스틱 회귀모형의 계수 추정값을 보여준다.
여기서 해석할 수 있는 것은 balance와 student 여부를 나타내는 가변수의 p-value가 매우 낮아 default 반응 변수와 연관이 있음을 알 수 있다.
하지만 student 변수 개별로 진행하였을 때는 계수가 양수였지만 여기에는 음수이다.

왼쪽 그림에서는 모든 부분에서 학생이 비학생보다 balance에 대한 연체율이 낮음을 알 수 있다.
그러나 수평 파선은 정반대의 결과를 나타낸다.
평균을 나타내는 수평파선에서는 학생에 대한 연체율이 더 높은 것을 알 수 있다.
(??)
오른쪽 그림에서 보면 학생인 경우, balance 값이 더 많은 쪽으로 분포해있고, 보통 balance가 증가하면 연체율도 증가하기 때문에 balance가 많은 쪽에 학생이 더 많이 분포해있기 때문에 평균으로는 학생이 연체율이 높다.
따라서 학생의 신용카드 잔액에 대한 정보가 없는 경우는 학생이 비학생보다 더 연체 위험이 높다.
하지만 정보가 있는 경우 비학생이 학생보다 연체 위험이 높다.
이 간단한 예시는 우리에게 단일의 예측변수를 사용했을 때 발생할 수 있는 위험성과 차이를 시사한다.
하나의 예측변수만을 사용해 얻는 결과는 다중으로 했을 때와 큰 차이가 있을 수 있고, 이러한 현상은 중첩(confounding)이라고 알려져 있다.
다중 로지스틱회귀분석으로 추정한 회귀계수를 통해 다음과 같이 추정할 수 있다.
(잔액: $1500, 소득: $40,000 일 때 학생여부에 따른 연체 확률)
학생에 대한 확률

비학생에 대한 확률

두 개이상의 범주로 이루어진 반응변수를 분류할 때는 어떻게 할까?
부류가 2개인 로지스틱 회귀 방법을 인 부류로 확장하는 것이 가능하다.
이 확장을 다항 로지스틱회귀(multinomial logistic regression)이라고 한다.
먼저 하나의 부류를 기준범주(baseline)으로 선택하다. 그리고 k=1에서 k= K-1번째 부류를 선택하다.
모형은 다음과 같다.(위: k=1, ... , k-1. 아래: k=K)


그리고 위 두 식은 다음과 같이 보일 수 있다.

이 식의 모든 부류 쌍 사이의 로그 오즈가 특징에 대해 선형임을 다시 확인할 수 있다.
알려진 바에 따르면 위의 식에서 어떠한 것을 기준으로 정한 것은 중요하지 않다.
기준 부류의 선택이 다르기 때문에 두 모형 간의 계수 추정값은 달라질 수 있지만 예측값, 두 부류 간의 로그 오즈, 그리고 다른 주요 모형 출력들은 동일하게 유지된다.
(이해가 안가서 GPT를 사용해 확인해봤다.)
그럼에도 다항 로지스틱 회귀모형에서 계수를 해석할 때는 주의가 필요하다.
예를 들어 간질 발작을 기준 부류로 선택했을 때, 은 일 때 뇌졸중 대 간질 발작의 로그 오즈로 해석할 수 있다. 더 나아가 의 한 단위 증가는 간질발작의 로그오즈 만큼 증가와 연관되어 있다.
