Statsmodels 라이브러리 개요
카테고리
데이터 과학/AI
서브카테고리
데이터 분석
대상자
- 대상: 데이터 과학자, 분석가, 경제학자
- 난이도: 중급 이상 (통계적 모델링 및 Python 프로그래밍 기초 지식 필요)
핵심 요약
statsmodels
는 통계적 추론, 회귀 분석, 시간 시계열 분석을 위한 포괄적 라이브러리로, R 및 MATLAB에서 유래한 기능을 Python에 제공.- OLS(최소 제곱법), t-검정, ANOVA, 카이제곱 검정 등 통계적 모델링 및 검정 기능 포함.
scikit-learn
과 달리 p-value, R² 조정, 신뢰구간 등 통계적 해석 결과 제공.
섹션별 세부 요약
- 소개 및 배경
scikit-learn
은 예측 중심,SciPy.stats
은 분포 중심으로 제한적.statsmodels
는 R과 MATLAB의 통계 기능을 Python에 통합.- 통계적 검정, 모델 해석, 시간 시계열 분석이 필요한 경우 사용.
- 설치 및 사용법
- pip:
pip install statsmodels
- conda:
conda install -c conda-forge statsmodels
- Google Colab:
import statsmodels.api as sm
- 주요 기능
- 모델 종류:
- OLS(선형 회귀), GLM(일반화 선형 모델), 혼합 선형 모델
- 시간 시계열 분석
- 통계적 검정:
- t-검정, ANOVA, 카이제곱 검정, 공적분 검정
- 데이터 탐색:
- 요약 통계, 상관 분석, 다중공선성 분석
- 모델 진단:
- 신뢰구간, p-value, R² 조정
- OLS 예제
- 데이터 로드:
sklearn.datasets.load_iris()
사용. - 데이터 변환:
pandas.DataFrame
으로 변환. - 모델 생성:
sm.OLS(y, X).fit()
- 결과 출력:
model.summary()
로 통계적 요약 정보 확인.
- t-검정 예제
- 두 그룹 비교:
statsmodels.stats.weightstats.ttest_ind()
- 결과 해석:
- t-statistic: 그룹 평균 차이 크기.
- p-value: 0.05 이하면 귀무가설 기각.
- 자유도(df): t-분포의 형태 결정.
- ANOVA 예제
- 분석 방법:
statsmodels.formula.api.ols
+anova_lm
- 결과: 방법에 따른 점수 차이 유의성 확인 (예:
method
의 유의미한 영향 여부).
- 카이제곱 검정 예제
- 데이터 구조:
pandas.DataFrame
으로 분류 데이터 구성. - 결과 해석:
- 카이제곱 통계량: 관찰치와 기대치 차이.
- p-value: 0.05 이하면 독립성 검정 실패 (관련성 존재).
결론
statsmodels
는 통계적 해석과 모델 진단에 초점을 맞춘 라이브러리로, 예측보다 해석이 중요한 경우에 적합.- OLS, t-검정, ANOVA, 카이제곱 검정 등의 예제를 통해 실제 데이터에 적용 가능.
- 공식 문서(https://www.statsmodels.org) 및 GeeksforGeeks에서 추가 학습 가능.