반응형
scipy.stats
와 statsmodels.api
는 모두 파이썬에서 통계 분석을 수행하는 데 널리 사용되는 라이브러리입니다. 그러나 이 둘은 기능과 목적에서 다소 차이가 있습니다. 다음은 scipy.stats
와 statsmodels.api
의 비교와 대조입니다:
SciPy.stats
scipy.stats
는 SciPy 라이브러리의 서브패키지로, 다양한 통계 함수와 확률 분포를 제공합니다.
주요 특징:
- 확률 분포:
- 정규 분포, 이항 분포, 포아송 분포 등 다양한 확률 분포를 지원합니다.
- 확률 밀도 함수(PDF), 누적 분포 함수(CDF), 분위수 함수 등 다양한 메서드를 제공합니다.
- 통계 테스트:
- t-검정, 카이제곱 검정, 윌콕슨 부호순위 검정 등 다양한 통계 검정을 제공합니다.
- 기술 통계:
- 기술 통계를 계산하는 함수들을 포함하고 있습니다. 예를 들어,
describe()
함수는 데이터의 기초 통계량(평균, 표준편차 등)을 제공합니다.
- 기술 통계를 계산하는 함수들을 포함하고 있습니다. 예를 들어,
- 경량 및 빠름:
- 상대적으로 가벼운 패키지로, 특정한 통계 작업을 빠르게 수행하는 데 유용합니다.
예시 코드:
from scipy import stats
import numpy as np
# 정규 분포에서 랜덤 샘플 생성
data = np.random.normal(loc=0, scale=1, size=1000)
# 샤피로-윌크 정규성 검정
stat, p_value = stats.shapiro(data)
print("Shapiro-Wilk Test: Statistic={}, p-value={}".format(stat, p_value))
Statsmodels.api
statsmodels
는 통계 모델링 및 계량경제학을 위한 라이브러리로, 회귀 분석, 시계열 분석, 분산 분석 등 더 복잡한 통계 모델을 다룹니다.
주요 특징:
- 회귀 분석:
- 단순선형회귀, 다중선형회귀, 로지스틱 회귀, 로버스트 회귀 등 다양한 회귀 모델을 제공합니다.
- 회귀 분석 결과에 대한 상세한 요약을 제공합니다.
- 시계열 분석:
- ARIMA, SARIMAX, VAR 등 시계열 모델을 제공합니다.
- 분산 분석:
- 일원배치법, 이원배치법 등 분산 분석 기능을 포함하고 있습니다.
- 모델 진단:
- 잔차 분석, 다중공선성 진단, Q-Q 플롯 등 다양한 모델 진단 도구를 제공합니다.
- 유연성:
- 공식(Formula) 기반의 모델링을 지원하여, 복잡한 모델도 쉽게 정의할 수 있습니다.
예시 코드:
import statsmodels.api as sm
import pandas as pd
# 예시 데이터프레임 생성
data = {
'age': [25, 30, 35, 40, 45, 50, 55, 60, 65, 70],
'Cholesterol': [200, 220, 180, 210, 230, 240, 220, 200, 190, 210],
'weight': [60, 65, 70, 75, 80, 85, 90, 95, 100, 105]
}
df = pd.DataFrame(data)
# 종속 변수와 독립 변수 설정
X = df[['age', 'Cholesterol']]
y = df['weight']
# 상수항 추가 (절편 포함)
X = sm.add_constant(X)
# 선형 회귀 모델 생성 및 적합
model = sm.OLS(y, X).fit()
# 회귀 분석 요약 출력
print(model.summary())
비교 요약:
scipy.stats
: 기본적인 통계 기능과 확률 분포를 제공하는 경량 패키지. 빠른 계산과 간단한 통계 테스트에 유용.statsmodels.api
: 회귀 분석, 시계열 분석 등 더 복잡한 통계 모델링을 제공하는 패키지. 상세한 모델 진단과 결과 요약을 지원.
이 두 라이브러리는 상호 보완적으로 사용할 수 있으며, 각자의 장점을 살려 특정한 통계 작업을 수행할 수 있습니다.
반응형
'통계분석' 카테고리의 다른 글
[통계분석]로지스틱 회귀에서 오즈비의 의미 (0) | 2024.06.20 |
---|---|
[통계분석] 피어슨 잔차, 디비언스, 디비언스 잔차 해석 (0) | 2024.06.20 |
[통계분석]로지스틱 회귀에서 피어슨 잔차, 디비언스, 디비언스 잔차(residuals) (0) | 2024.06.20 |
[통계분석]로짓(로그오즈) 함수, 로지스틱 함수 (0) | 2024.06.20 |
[통계 분석] statsmodels.api와 statsmodels.formula.api 비교 (0) | 2024.06.11 |