1. statsmodels란?


2. 언제 사용하는가?

상황 statsmodels 추천 이유
회귀 결과를 상세히 해석해야 할 때 (ex: p-value, 신뢰구간, 표준오차, F통계량 등)
통계 분석/논문/연구 각 변수의 영향, 유의미성 해석이 필요할 때
시계열 데이터 분석 AR, MA, ARIMA, SARIMA 등 다양한 시계열 모델 지원
통계적 가설 검정/분산분석(ANOVA) t-test, chi2-test 등 통계적 유의성 판단
모델의 회귀 계수 해석이 중요할 때 단순 예측력보다 변수별 통계적 의미가 더 중요한 상황

3. scikit-learn과의 차이

비교항목 statsmodels scikit-learn
분야 통계 분석/해석 머신러닝(예측력/실용성)
출력 계수, 표준오차, p값, 신뢰구간 등 예측값, 정확도, 평가점수 위주
용도 논문, 연구, 통계, 변수 해석 실무, 대회, 예측모델
예측력 보통(해석 중심) 매우 좋음(튜닝, 앙상블 등 다양)

4. 대표적 사용 예시

(1) 선형회귀(OLS: Ordinary Least Squares)


import statsmodels.api as sm

X = ...  # 입력(특성) 데이터 (numpy, pandas 등)
y = ...  # 정답(타겟)

X = sm.add_constant(X)  # 절편항(상수) 추가 (중요!)

model = sm.OLS(y, X)    # OLS(최소제곱) 선형회귀 모델 생성
results = model.fit()   # 학습

print(results.summary())  # 상세 통계 결과(계수, p-value, R2, 신뢰구간 등)

(2) 로지스틱 회귀, 시계열, 가설검정 등