[파이썬] statsmodels에서 로지스틱 회귀

먼저, 필요한 라이브러리를 임포트합니다.

import statsmodels.api as sm
import pandas as pd

다음으로, 분석할 데이터를 불러옵니다. 이 예시에서는 암 발생 여부를 예측하기 위한 데이터셋을 사용합니다.

data = pd.read_csv('cancer_data.csv')

데이터를 살펴보고 필요한 전처리를 수행한 후, 로지스틱 회귀 모델을 만듭니다. Logit 클래스를 사용하여 로지스틱 회귀 모델을 정의하고, fit 메서드를 사용하여 모델을 학습시킵니다.

X = data[['age', 'tumor_size', 'stage']]
y = data['diagnosis']

X = sm.add_constant(X)
logit_model = sm.Logit(y, X)
result = logit_model.fit()

학습된 모델의 결과를 출력하려면 summary 메서드를 사용합니다.

print(result.summary())

결과를 통해 회귀 계수, t-값, p-값 등을 확인할 수 있습니다. 이 정보를 통해 변수의 영향력과 통계적 유의성을 평가할 수 있습니다.

로지스틱 회귀 모델을 사용하여 새로운 데이터의 예측을 수행할 수도 있습니다. predict 메서드를 사용하여 새로운 입력 데이터에 대한 예측 값을 얻을 수 있습니다.

new_data = pd.DataFrame([[45, 8.2, 2]], columns=['age', 'tumor_size', 'stage'])
new_data = sm.add_constant(new_data)

predicted_values = result.predict(new_data)
print(predicted_values)

위의 예시 코드를 통해 statsmodels를 사용하여 로지스틱 회귀를 수행하는 방법을 알아보았습니다. statsmodels는 다양한 통계 모델링 기능을 제공하기 때문에 데이터 분석 및 예측 모델링에 유용하게 사용될 수 있습니다.