로지스틱 분석(Logistic Analysis)

로지스틱 회귀분석(Logistic Regression Analysis)은 종속 변수가 이진(binary) 또는 다범주(multi-category)인 경우에 사용되는 통계적 분석 기법입니다. 주로 사건의 발생 여부를 예측하거나 범주형 결과를 설명하는 데 사용됩니다.
\(\)

로지스틱 회귀의 기본 개념

종속 변수 (Dependent Variable):

    • 이진 로지스틱 회귀: 종속 변수가 두 가지 범주(예: 성공/실패, 참/거짓)로 이루어져 있습니다.
    • 다항 로지스틱 회귀: 종속 변수가 세 가지 이상의 범주(예: 고/중/저)로 이루어져 있습니다.

    독립 변수 (Independent Variables):

      • 종속 변수에 영향을 미치는 변수들로, 연속형 또는 범주형일 수 있습니다.

      로지스틱 회귀의 수학적 모델

      이진 로지스틱 회귀에서 종속 변수 ( Y )는 0 또는 1의 값을 가집니다. 로지스틱 회귀 모델은 다음과 같은 형태를 가집니다:

      \[ \text{logit}(P) = \ln\left(\frac{P}{1-P}\right) = \beta_0 + \beta_1X_1 + \beta_2X_2 + \ldots + \beta_kX_k \]

      여기서:

      • \( P )는 종속 변수가 1일 확률입니다.
      • \( \beta_0 \)는 절편(intercept)입니다.
      • \( \beta_i \)는 각 독립 변수 \( X_i \)의 회귀 계수입니다.

      로지스틱 함수

      위의 로지스틱 회귀 방정식을 확률 형태로 변환하면 다음과 같습니다:

      \[ P(Y=1|X) = \frac{1}{1 + e^{-(\beta_0 + \beta_1X_1 + \beta_2X_2 + \ldots + \beta_kX_k)}} \]

      이 함수는 입력 변수의 선형 결합을 확률 값으로 변환하는 S-곡선(S-curve)을 그립니다.

      로지스틱 회귀의 단계

      데이터 준비:

      • 독립 변수와 종속 변수를 포함하는 데이터를 준비합니다.

      모델 적합 (Model Fitting):

      • 데이터를 사용하여 로지스틱 회귀 모델을 적합시킵니다.

      모델 평가 (Model Evaluation):

      • 모델의 성능을 평가합니다. 주요 지표로는 정확도(accuracy), 민감도(sensitivity), 특이도(specificity), AUC-ROC 곡선(area under the ROC curve) 등이 있습니다.

      해석 (Interpretation):

      • 회귀 계수를 해석하여 독립 변수가 종속 변수에 미치는 영향을 평가합니다.

      로지스틱 회귀 분석의 예시 (Python 사용)

      아래는 Python의 statsmodelssklearn 라이브러리를 사용하여 로지스틱 회귀 분석을 수행하는 예제입니다.

      import pandas as pd
      import numpy as np
      import statsmodels.api as sm
      from sklearn.model_selection import train_test_split
      from sklearn.linear_model import LogisticRegression
      from sklearn.metrics import accuracy_score, roc_auc_score, roc_curve
      import matplotlib.pyplot as plt
      
      # 예시 데이터 생성
      np.random.seed(0)
      data = pd.DataFrame({
          'Age': np.random.randint(18, 70, 100),
          'Income': np.random.randint(20000, 80000, 100),
          'Education': np.random.randint(1, 5, 100),
          'Purchase': np.random.randint(0, 2, 100)  # 0 또는 1의 이진 종속 변수
      })
      
      # 독립 변수와 종속 변수 설정
      X = data[['Age', 'Income', 'Education']]
      y = data['Purchase']
      
      # 데이터 분할 (훈련 데이터와 테스트 데이터)
      X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
      
      # statsmodels를 사용한 로지스틱 회귀 분석
      X_train_sm = sm.add_constant(X_train)  # 절편 추가
      model_sm = sm.Logit(y_train, X_train_sm)
      result = model_sm.fit()
      print(result.summary())
      
      # sklearn를 사용한 로지스틱 회귀 분석
      model_sklearn = LogisticRegression()
      model_sklearn.fit(X_train, y_train)
      
      # 예측 및 평가
      y_pred = model_sklearn.predict(X_test)
      accuracy = accuracy_score(y_test, y_pred)
      roc_auc = roc_auc_score(y_test, model_sklearn.predict_proba(X_test)[:, 1])
      
      print(f'Accuracy: {accuracy}')
      print(f'ROC AUC: {roc_auc}')
      
      # ROC 곡선 그리기
      fpr, tpr, thresholds = roc_curve(y_test, model_sklearn.predict_proba(X_test)[:, 1])
      plt.figure()
      plt.plot(fpr, tpr, color='darkorange', lw=2, label=f'ROC curve (area = {roc_auc:.2f})')
      plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--')
      plt.xlim([0.0, 1.0])
      plt.ylim([0.0, 1.05])
      plt.xlabel('False Positive Rate')
      plt.ylabel('True Positive Rate')
      plt.title('Receiver Operating Characteristic (ROC)')
      plt.legend(loc="lower right")
      plt.show()

      결과 해석

      회귀 계수:

      • 각 독립 변수의 회귀 계수는 해당 변수가 종속 변수에 미치는 영향을 나타냅니다.
      • 예를 들어, Age의 회귀 계수가 양수라면, 나이가 증가할수록 구매할 확률이 높아짐을 의미합니다.

      모델 평가:

      • 정확도 (Accuracy): 예측이 실제 값과 얼마나 일치하는지를 나타냅니다.
      • ROC AUC: 모델의 분류 성능을 평가하는 지표로, 1에 가까울수록 성능이 좋음을 의미합니다.

      ROC 곡선:

      • ROC 곡선은 참 양성 비율(TPR)과 거짓 양성 비율(FPR) 간의 관계를 나타내며, 모델의 성능을 시각적으로 평가하는 데 사용됩니다.

      요약

      로지스틱 회귀 분석은 이진 또는 범주형 종속 변수를 예측하기 위한 강력한 통계 기법입니다. 이를 통해 독립 변수들이 종속 변수에 미치는 영향을 분석하고, 예측 모델을 구축할 수 있습니다. Python의 statsmodelssklearn 라이브러리를 사용하면 로지스틱 회귀 분석을 쉽게 수행할 수 있습니다.

      로지스틱과 로짓 비교

      로지스틱 회귀(Logistic Regression)와 로짓 모델(Logit Model)은 종종 혼용되지만, 두 용어는 실제로 비슷한 개념을 다루면서도 약간의 차이가 있습니다. 기본적으로 두 개념 모두 이진 종속 변수를 예측하기 위한 회귀 모델로 사용되지만, 사용되는 맥락과 용어의 기원에 따라 차이가 있습니다.
      즉, 동일한 수학적 공식을 기반으로 개념만 필요에 의해서 구분한다고 보면된다. 그냥 동일하게 사용해도 무관하다.

      \(\)

      로지스틱 회귀(Logistic Regression)

      로지스틱 회귀는 독립 변수와 종속 변수 간의 관계를 모델링하여 종속 변수가 특정 범주(주로 0 또는 1)를 가질 확률을 예측하는 통계 기법입니다. 이 기법은 의료, 사회과학, 마케팅 등 다양한 분야에서 널리 사용됩니다. 로지스틱 회귀는 로지스틱 함수를 사용하여 예측 값을 확률로 변환합니다.

      주요 특징:

      모델 형태:

      • 종속 변수는 이진 또는 다범주형일 수 있습니다.
      • 로지스틱 함수(시그모이드 함수)를 사용하여 결과 값을 0과 1 사이의 확률로 변환합니다.

      수학적 표현:
      \[
      \text{logit}(P) = \ln\left(\frac{P}{1-P}\right) = \beta_0 + \beta_1X_1 + \beta_2X_2 + \ldots + \beta_kX_k
      \]
      여기서 (P)는 종속 변수가 1일 확률입니다.

      예측 값:
      \[
      P(Y=1|X) = \frac{1}{1 + e^{-(\beta_0 + \beta_1X_1 + \beta_2X_2 + \ldots + \beta_kX_k)}}
      \]

      로짓 모델(Logit Model)

      로짓 모델은 로지스틱 회귀와 같은 원리를 사용하지만, 주로 경제학과 계량경제학에서 사용되는 용어입니다. 로짓 모델은 로지스틱 회귀의 수학적 기초를 기반으로 이산 선택 모델(discrete choice model)을 분석하는 데 사용됩니다. 주로 소비자의 선택 행동, 시장 점유율 분석, 교통 모형 등에서 사용됩니다.

      주요 특징:

      용어의 기원:

      • 경제학과 계량경제학에서 주로 사용됩니다.
      • 로지스틱 회귀와 동일한 수학적 모델을 사용하지만, 주로 이산 선택 행동을 설명하는 데 중점을 둡니다.

      수학적 표현:

      • 로지스틱 회귀와 동일한 수학적 표현을 사용합니다.

      주요 차이점

      용어의 사용:

      • 로지스틱 회귀: 주로 통계학, 생물학, 사회과학, 마케팅 등에서 사용됩니다.
      • 로짓 모델: 주로 경제학과 계량경제학에서 이산 선택 행동을 분석할 때 사용됩니다.

      응용 분야:

      • 로지스틱 회귀: 질병 예측, 고객 이탈 예측, 마케팅 캠페인 효과 분석 등.
      • 로짓 모델: 소비자 선택 분석, 교통 수요 분석, 제품 선호도 분석 등.

      맥락:

      • 로지스틱 회귀: 일반적으로 예측과 분류 문제에 사용됩니다.
      • 로짓 모델: 주로 개별 선택의 경제적 결정에 초점을 맞춥니다.

      요약

      로지스틱 회귀와 로짓 모델은 동일한 수학적 원리를 공유하지만, 사용되는 맥락과 용어의 기원에 따라 차이가 있습니다. 로지스틱 회귀는 다양한 분야에서 이진 종속 변수의 예측에 널리 사용되는 반면, 로짓 모델은 주로 경제학에서 이산 선택 행동을 분석하는 데 사용됩니다. 두 모델 모두 로지스틱 함수를 사용하여 독립 변수와 종속 변수 간의 관계를 모델링합니다.

      댓글 달기

      이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

      위로 스크롤