[파이썬] statsmodels에서 GLM (일반화 선형 모델)

일반화 선형 모델 (Generalized Linear Models, GLM)은 다양한 종류의 반응 변수에 대한 회귀 분석을 수행하는데 사용되는 통계 모델입니다. statsmodels는 python에서 GLM을 적용하기 위한 강력한 라이브러리입니다. 이 블로그 포스트에서는 statsmodels를 사용하여 GLM을 수행하는 방법에 대해 알아보겠습니다.

statsmodels 설치하기

먼저, statsmodels를 설치해야 합니다. pip를 사용하여 간단히 설치할 수 있습니다.

pip install statsmodels

데이터 로드하기

데이터를 로드하기 위해 pandas를 사용해보겠습니다. pandas는 데이터 분석을 위한 강력한 라이브러리로, statsmodels와 더불어 자주 사용됩니다.

import pandas as pd

# 데이터를 로드합니다.
data = pd.read_csv('data.csv')

# 데이터의 일부를 출력합니다.
print(data.head())

모델 생성하기

GLM을 위한 모델을 생성하기 위해선 statsmodels의 GLM 클래스를 사용해야 합니다. 종속 변수와 설명 변수를 지정하여 모델을 생성합니다.

import statsmodels.api as sm

# 종속 변수와 설명 변수를 지정합니다.
endog = data['target_variable']
exog = data[['explanatory_variable1', 'explanatory_variable2']]

# GLM 모델을 생성합니다.
model = sm.GLM(endog, exog, family=sm.families.Binomial())

# 모델을 적합시킵니다.
results = model.fit()

# 모델 결과를 출력합니다.
print(results.summary())

결과 분석하기

모델링 결과를 쉽게 분석하기 위해 summary() 메서드를 사용할 수 있습니다. 이 메서드는 회귀 계수, 표준 오차, t-value, p-value 등의 통계치를 제공합니다.

# 모델 결과를 출력합니다.
print(results.summary())

결과에서 통계적으로 유의미한 변수를 찾거나 모델의 설명력을 평가할 수 있습니다. 또한 결과를 시각화하여 더 쉽게 이해할 수 있습니다.

예측하기

GLM 모델을 사용하여 새로운 데이터에 대한 예측을 수행할 수도 있습니다.

# 새로운 데이터를 생성합니다.
new_data = pd.DataFrame({'explanatory_variable1': [1, 2, 3], 'explanatory_variable2': [4, 5, 6]})

# 생성한 모델을 사용하여 예측을 수행합니다.
predictions = results.predict(exog=new_data)

# 예측 결과를 출력합니다.
print(predictions)

결론

statsmodels를 사용하여 GLM을 적용하는 방법에 대해 알아보았습니다. 이를 통해 다양한 종류의 반응 변수에 대한 회귀 분석을 수행할 수 있으며, 결과를 분석하거나 새로운 데이터에 대한 예측을 할 수 있습니다. statsmodels는 강력한 라이브러리이며, 통계 모델링에 익숙해지는 데 도움이 될 것입니다.