통계분석
데이터 기반 의사결정을 위한 통계분석 레시피 모음입니다. 기술통계부터 A/B 테스트까지 실무에서 자주 사용되는 통계 기법을 학습합니다.
왜 통계가 필요한가?
ℹ️
데이터 분석 vs 통계분석
- 데이터 분석: “지난 달 매출이 10% 증가했다”
- 통계분석: “이 증가가 우연인지, 실제 의미있는 변화인지 검증”
통계는 데이터의 불확실성을 정량화하고, 신뢰할 수 있는 결론을 도출하는 도구입니다.
0. 사전 준비 (Setup)
import pandas as pd
import numpy as np
import scipy.stats as stats
import statsmodels.api as sm
from statsmodels.formula.api import ols
# Dummy Data for Examples
group_a = np.random.normal(100, 10, 100)
group_b = np.random.normal(105, 12, 100)
df = pd.DataFrame({'x1': np.random.rand(100), 'x2': np.random.rand(100), 'y': np.random.rand(100)})커리큘럼
1. 기술통계
초급데이터의 특성을 요약하는 기본적인 통계량을 학습합니다.
- 중심 경향: 평균, 중앙값, 최빈값
- 산포도: 표준편차, 분산, 범위, IQR
- 분포 형태: 왜도(Skewness), 첨도(Kurtosis)
- 백분위수와 사분위수
2. 상관관계 분석
초급중급두 변수 간의 관계를 분석하는 방법을 학습합니다.
- 피어슨 상관계수 (연속형 변수)
- 스피어만 상관계수 (순서형/비선형)
- 상관관계 vs 인과관계
- 상관관계 행렬과 히트맵
3. 가설검정
중급데이터에 기반한 가설 검증 방법을 학습합니다.
- 귀무가설과 대립가설
- p-value의 의미와 해석
- t-검정 (단일표본, 독립표본, 대응표본)
- 카이제곱 검정 (범주형 변수)
- 제1종/제2종 오류
4. 회귀분석
중급고급변수 간의 관계를 모델링하고 예측하는 방법을 학습합니다.
- 단순 선형 회귀
- 다중 선형 회귀
- 회귀 계수 해석
- 결정계수(R²)와 모델 평가
- 다중공선성 진단
5. A/B 테스트
중급고급실험을 통한 인과관계 검증 방법을 학습합니다.
- A/B 테스트 설계
- 표본 크기 산정 (검정력 분석)
- 전환율 비교 (비율 검정)
- 연속형 지표 비교 (t-검정)
- 조기 종료와 다중 비교 문제
6. 시계열 분석
고급시간에 따른 데이터 패턴을 분석하고 예측하는 방법을 학습합니다.
- 시계열 분해 (추세, 계절성, 잔차)
- 이동평균과 지수평활
- 자기상관(ACF)과 편자기상관(PACF)
- ARIMA 모델 기초
- Prophet 활용
주요 개념 정리
확률과 분포
| 분포 | 사용 시점 | 예시 |
|---|---|---|
| 정규분포 | 연속형 데이터, 표본 평균 | 키, 몸무게, 테스트 점수 |
| 이항분포 | 성공/실패 횟수 | 전환 수, 클릭 수 |
| 포아송분포 | 단위 시간당 발생 횟수 | 일별 주문 건수 |
| t-분포 | 소표본 평균 비교 | 그룹 간 평균 차이 검정 |
가설검정 의사결정 흐름
데이터 수집
↓
가설 설정 (H₀, H₁)
↓
유의수준 결정 (보통 α = 0.05)
↓
검정 통계량 계산
↓
p-value 산출
↓
p < α → H₀ 기각 (유의미한 차이)
p ≥ α → H₀ 기각 실패 (유의미한 차이 없음)Python 통계 라이브러리
# 기본 통계
import scipy.stats as stats
import statsmodels.api as sm
from statsmodels.formula.api import ols
# 예시: t-검정
t_stat, p_value = stats.ttest_ind(group_a, group_b)
# 예시: 회귀분석
model = ols('y ~ x1 + x2', data=df).fit()
print(model.summary())실행 결과
OLS Regression Results
==============================================================================
Dep. Variable: y R-squared: 0.005
Model: OLS Adj. R-squared: -0.015
Method: Least Squares F-statistic: 0.2639
Date: Sat, 20 Dec 2025 Prob (F-statistic): 0.769
Time: 00:25:05 Log-Likelihood: -13.739
No. Observations: 100 AIC: 33.48
Df Residuals: 97 BIC: 41.29
Df Model: 2
Covariance Type: nonrobust
==============================================================================
coef std err t P>|t| [0.025 0.975]
------------------------------------------------------------------------------
Intercept 0.5603 0.078 7.139 0.000 0.404 0.716
x1 -0.0050 0.097 -0.052 0.959 -0.197 0.187
x2 -0.0750 0.103 -0.726 0.469 -0.280 0.130
==============================================================================
Omnibus: 19.776 Durbin-Watson: 2.230
Prob(Omnibus): 0.000 Jarque-Bera (JB): 5.138
Skew: -0.135 Prob(JB): 0.0766
Kurtosis: 1.923 Cond. No. 5.63
==============================================================================
Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.실무 팁
💡
통계적 유의성 vs 실무적 중요성
- p < 0.05라고 해서 무조건 의미있는 것은 아닙니다
- **효과 크기(Effect Size)**를 함께 고려하세요
- 예: 전환율이 0.01% 증가하고 p = 0.001이라면?
- 통계적으로 유의하지만, 실무적 가치는 작을 수 있음
- 비즈니스 임팩트(매출 영향 등)를 항상 함께 계산하세요
Last updated on