통계분석

[통계분석]scipy.stats와 statsmodel.api 비교

dondon-a 2024. 6. 11. 00:55
반응형

scipy.statsstatsmodels.api는 모두 파이썬에서 통계 분석을 수행하는 데 널리 사용되는 라이브러리입니다. 그러나 이 둘은 기능과 목적에서 다소 차이가 있습니다. 다음은 scipy.statsstatsmodels.api의 비교와 대조입니다:

SciPy.stats

scipy.stats는 SciPy 라이브러리의 서브패키지로, 다양한 통계 함수와 확률 분포를 제공합니다.

주요 특징:

  1. 확률 분포:
    • 정규 분포, 이항 분포, 포아송 분포 등 다양한 확률 분포를 지원합니다.
    • 확률 밀도 함수(PDF), 누적 분포 함수(CDF), 분위수 함수 등 다양한 메서드를 제공합니다.
  2. 통계 테스트:
    • t-검정, 카이제곱 검정, 윌콕슨 부호순위 검정 등 다양한 통계 검정을 제공합니다.
  3. 기술 통계:
    • 기술 통계를 계산하는 함수들을 포함하고 있습니다. 예를 들어, describe() 함수는 데이터의 기초 통계량(평균, 표준편차 등)을 제공합니다.
  4. 경량 및 빠름:
    • 상대적으로 가벼운 패키지로, 특정한 통계 작업을 빠르게 수행하는 데 유용합니다.

예시 코드:

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는 통계 모델링 및 계량경제학을 위한 라이브러리로, 회귀 분석, 시계열 분석, 분산 분석 등 더 복잡한 통계 모델을 다룹니다.

주요 특징:

  1. 회귀 분석:
    • 단순선형회귀, 다중선형회귀, 로지스틱 회귀, 로버스트 회귀 등 다양한 회귀 모델을 제공합니다.
    • 회귀 분석 결과에 대한 상세한 요약을 제공합니다.
  2. 시계열 분석:
    • ARIMA, SARIMAX, VAR 등 시계열 모델을 제공합니다.
  3. 분산 분석:
    • 일원배치법, 이원배치법 등 분산 분석 기능을 포함하고 있습니다.
  4. 모델 진단:
    • 잔차 분석, 다중공선성 진단, Q-Q 플롯 등 다양한 모델 진단 도구를 제공합니다.
  5. 유연성:
    • 공식(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: 회귀 분석, 시계열 분석 등 더 복잡한 통계 모델링을 제공하는 패키지. 상세한 모델 진단과 결과 요약을 지원.

이 두 라이브러리는 상호 보완적으로 사용할 수 있으며, 각자의 장점을 살려 특정한 통계 작업을 수행할 수 있습니다.

반응형