2026년 데이터 사이언스를 위한 통계학: 확률론, 가설 검정, 면접 질문
데이터 사이언스 면접에 필요한 통계학을 다룹니다. 확률 분포, 가설 검정, p-값, A/B 테스트, 그리고 2026년 기술 면접에서 자주 나오는 질문과 답변을 상세히 설명합니다.

통계학은 모든 데이터 사이언스 직무의 수학적 기반을 형성합니다. Google, Meta, Netflix와 같은 기업의 면접관들이 통계적 추론을 테스트하는 이유는 모델을 구축할 수 있는 지원자와 그 모델이 왜 작동하는지 이해하는 지원자를 구별하기 위해서입니다.
통계학 질문은 세 가지 능력을 평가합니다: 비즈니스 문제를 통계적 프레임워크로 변환하는 능력, 데이터에 적합한 검정을 선택하는 능력, 그리고 결론을 과도하게 일반화하지 않으면서 결과를 해석하는 능력입니다.
데이터 사이언티스트가 반드시 알아야 할 확률 분포
확률 분포는 데이터 포인트가 가능한 값들에 어떻게 분산되는지를 설명합니다. 면접관들이 확률 분포에 대한 숙련도를 기대하는 이유는 이것이 샘플링, A/B 테스트, 모델 가정의 기반이 되기 때문입니다.
정규 분포(가우시안 분포)는 모든 곳에서 나타납니다: 측정 오차, 키, 시험 점수 등. 종 모양의 곡선은 평균을 중심으로 하며, 데이터의 68%가 1 표준편차 이내에, 95%가 2 표준편차 이내에 있습니다. 샘플 크기가 30을 초과하면, 중심극한정리에 의해 모집단의 형태와 관계없이 표본 평균이 정규 분포를 따르는 것이 보장됩니다.
이항 분포는 성공/실패 시행을 모델링합니다. 클릭률, 전환 이벤트, 품질 검사의 합격/불합격 등이 이항 분포를 따릅니다. n번의 시행에서 성공 확률이 p일 때, 기댓값은 np이고 분산은 np(1-p)입니다.
포아송 분포는 고정된 간격 동안 발생하는 희귀 이벤트의 수를 계산합니다: 분당 웹사이트 방문 수, 배치당 결함 수, 시간당 전화 건수 등. 단일 매개변수 λ가 평균과 분산을 모두 나타냅니다. 이벤트가 일정한 평균 비율로 독립적으로 발생할 때 포아송 분포가 적합합니다.
# distributions_demo.py
import numpy as np
from scipy import stats
# Normal: customer spend follows N(μ=50, σ=15)
normal_samples = stats.norm.rvs(loc=50, scale=15, size=1000)
prob_above_80 = 1 - stats.norm.cdf(80, loc=50, scale=15) # P(X > 80)
# Binomial: 100 users, 5% conversion rate
binom_samples = stats.binom.rvs(n=100, p=0.05, size=1000)
prob_at_least_10 = 1 - stats.binom.cdf(9, n=100, p=0.05) # P(X >= 10)
# Poisson: 3 support tickets per hour on average
poisson_samples = stats.poisson.rvs(mu=3, size=1000)
prob_zero_tickets = stats.poisson.pmf(0, mu=3) # P(X = 0)이 세 가지 분포로 대부분의 실무 시나리오를 처리할 수 있습니다. 면접관들은 특정 비즈니스 맥락에 어떤 분포가 적합한지 자주 질문하므로, 실제 문제를 적절한 모델에 매핑하는 연습이 중요합니다.
가설 검정: A/B 테스트의 기반 프레임워크
가설 검정은 데이터로부터 의사결정을 내리기 위한 형식적 구조를 제공합니다. 이 프레임워크는 효과나 차이가 없음을 나타내는 귀무가설(H₀)과 실험이 탐지하고자 하는 것을 나타내는 대립가설(H₁)로 시작합니다.
전형적인 A/B 테스트의 귀무가설은 "새로운 기능이 전환율에 영향을 미치지 않는다"고 진술합니다. 대립가설은 효과가 존재한다고 주장합니다. 검정은 귀무가설이 참일 때 관측된 데이터가 얼마나 발생하기 쉬운지를 계산합니다.
p-값은 이 가능성을 정량화합니다. p-값이 0.03이라는 것은 귀무가설이 성립할 때 이처럼 극단적인 결과가 나올 확률이 3%라는 의미입니다. p-값이 유의수준(일반적으로 α = 0.05) 아래로 떨어지면 귀무가설은 기각됩니다.
# ab_test_analysis.py
import numpy as np
from scipy import stats
# A/B test data: control vs treatment conversion rates
control_conversions = 120
control_visitors = 2000
treatment_conversions = 145
treatment_visitors = 2000
# Proportions
p_control = control_conversions / control_visitors # 0.060
p_treatment = treatment_conversions / treatment_visitors # 0.0725
# Pooled proportion under null hypothesis
p_pooled = (control_conversions + treatment_conversions) / (control_visitors + treatment_visitors)
# Standard error
se = np.sqrt(p_pooled * (1 - p_pooled) * (1/control_visitors + 1/treatment_visitors))
# Z-statistic
z_stat = (p_treatment - p_control) / se
# Two-tailed p-value
p_value = 2 * (1 - stats.norm.cdf(abs(z_stat)))
print(f"Z-statistic: {z_stat:.3f}") # Z-statistic: 1.681
print(f"P-value: {p_value:.4f}") # P-value: 0.0928p-값이 0.0928인 경우, 이 검정은 α = 0.05에서 귀무가설을 기각하지 않습니다. 관측된 차이는 무작위 변동일 수 있습니다. 통계적 유의성에 도달하려면 더 많은 데이터 또는 더 큰 효과 크기가 필요합니다.
제1종 오류와 제2종 오류: 면접관이 탐색하는 통계적 트레이드오프
통계적 검정은 두 가지 유형의 오류 사이에서 균형을 맞춥니다. 제1종 오류(위양성)는 참인 귀무가설을 기각할 때 발생합니다. 제2종 오류(위음성)는 거짓인 귀무가설을 기각하지 못할 때 발생합니다.
유의수준 α는 제1종 오류 확률을 직접 제어합니다. α = 0.05를 설정하는 것은 5%의 위양성 가능성을 수용한다는 의미입니다. α를 0.01로 낮추면 위양성은 감소하지만 위음성은 증가합니다.
검정력(1 - β)은 거짓인 귀무가설을 올바르게 기각할 확률을 측정합니다. 검정력은 효과 크기, 샘플 크기, 유의수준에 따라 달라집니다. 업계 표준은 80%의 검정력을 목표로 하며, 이는 실제 효과를 놓칠 확률이 20%임을 의미합니다.
지원자들은 종종 "유의한 차이가 없음"과 "차이가 존재하지 않음"을 혼동합니다. 귀무가설을 기각하지 못했다고 해서 귀무가설이 참임을 증명하는 것은 아닙니다. 검정에 작지만 실제적인 효과를 탐지할 검정력이 부족할 수 있습니다.
샘플 크기 계산은 이러한 우려 사항들 사이에서 균형을 맞춥니다. 전환율 2% 상승(5%에서 7%로)을 목표로 하고 검정력 80%, α = 0.05인 A/B 테스트의 경우:
# sample_size_calculation.py
from statsmodels.stats.power import zt_ind_solve_power
# Baseline conversion: 5%, expected lift: 2 percentage points
baseline = 0.05
expected = 0.07
effect_size = (expected - baseline) / np.sqrt(baseline * (1 - baseline)) # Cohen's h
# Required sample size per group
n_per_group = zt_ind_solve_power(
effect_size=effect_size,
alpha=0.05,
power=0.80,
alternative='two-sided'
)
print(f"Sample size per group: {int(np.ceil(n_per_group))}") # ~1,570 per group검정력이 부족한 검정은 현실적인 효과를 탐지할 수 없는 실험을 수행함으로써 리소스를 낭비합니다.
신뢰 구간: 불확실성의 정량화
95% 신뢰 구간의 의미는: 동일한 샘플링 과정을 여러 번 반복하면, 구성된 구간의 95%가 실제 모수를 포함한다는 것입니다. 신뢰 구간은 점추정치만으로는 전달하기 어려운 불확실성을 더 잘 전달합니다.
모집단 분산이 알려진 평균의 경우, 구간은 z-분포를 사용합니다. 작은 샘플이나 분산이 알려지지 않은 경우 t-분포가 적용됩니다. t-분포는 정규 분포보다 꼬리가 두꺼워 추가적인 불확실성을 고려한 더 넓은 구간을 생성합니다.
# confidence_intervals.py
import numpy as np
from scipy import stats
# Sample data: response times in milliseconds
response_times = np.array([245, 312, 278, 299, 256, 334, 287, 301, 265, 289])
n = len(response_times)
mean = np.mean(response_times) # 286.6
std_err = stats.sem(response_times) # Standard error of the mean
# 95% confidence interval using t-distribution (df = n-1)
t_critical = stats.t.ppf(0.975, df=n-1)
margin_of_error = t_critical * std_err
ci_lower = mean - margin_of_error
ci_upper = mean + margin_of_error
print(f"Mean: {mean:.1f}ms") # Mean: 286.6ms
print(f"95% CI: [{ci_lower:.1f}, {ci_upper:.1f}]ms") # 95% CI: [265.4, 307.8]ms구간이 좁을수록 추정치가 더 정밀함을 나타냅니다. 샘플 크기가 정밀도를 결정합니다: n을 4배로 늘리면 오차 범위가 절반으로 줄어듭니다.
Data Science & ML 면접 준비가 되셨나요?
인터랙티브 시뮬레이터, flashcards, 기술 테스트로 연습하세요.
베이지안 vs 빈도주의: 통계 철학에 관한 면접 질문
면접관들은 때때로 경쟁하는 통계적 패러다임에 대한 이해를 탐색합니다. 빈도주의 통계는 확률을 장기적인 빈도로 취급합니다: 모수는 고정되어 있고 데이터는 반복된 실험에서 변동합니다. p-값과 신뢰 구간은 이 전통에서 유래합니다.
베이지안 통계는 확률을 믿음의 정도로 취급합니다: 사전 지식이 데이터와 결합하여 사후 믿음을 생성합니다. 이 프레임워크는 도메인 전문 지식을 통합할 수 있으며 모수에 대한 확률적 진술을 직접 생성합니다.
A/B 테스트에서는 이해관계자들이 실제로 묻는 질문 "처리군 B가 처리군 A를 능가할 확률은 얼마인가?"에 답할 수 있기 때문에 베이지안 방법의 채택이 증가하고 있습니다. 이는 "차이가 없다면 이 데이터가 얼마나 놀라운가?"라는 질문과는 다릅니다.
# bayesian_ab_test.py
import numpy as np
from scipy import stats
# Prior: Beta(1, 1) = uniform prior for conversion rate
# Posterior: Beta(alpha + successes, beta + failures)
control_successes, control_failures = 120, 1880
treatment_successes, treatment_failures = 145, 1855
# Posterior distributions
posterior_control = stats.beta(1 + control_successes, 1 + control_failures)
posterior_treatment = stats.beta(1 + treatment_successes, 1 + treatment_failures)
# Monte Carlo estimation: P(treatment > control)
samples_control = posterior_control.rvs(100000)
samples_treatment = posterior_treatment.rvs(100000)
prob_treatment_better = np.mean(samples_treatment > samples_control)
print(f"P(treatment > control): {prob_treatment_better:.2%}") # ~95%베이지안 결과는 직접적으로 전달됩니다: "처리군의 전환율이 대조군 전환율을 초과할 확률은 95%입니다." 빈도주의 결과는 더 신중한 해석이 필요합니다.
통계적 추론에 관한 자주 출제되는 면접 질문
이 질문들은 테크 기업의 데이터 사이언스 면접에서 자주 출제됩니다. 각각 특정 통계적 개념을 테스트합니다.
"중심극한정리를 설명하고 왜 중요한지 말해보세요."
중심극한정리(CLT)는 임의의 모집단(유한 분산을 가진)에서 추출한 표본 평균이 샘플 크기가 증가함에 따라 정규 분포에 접근한다고 진술합니다. 이것이 중요한 이유는 가설 검정에서의 정규성 가정이 원래 분포와 관계없이 대규모 샘플에서 성립하기 때문입니다. 샘플 크기 30 이상이면 일반적으로 충분합니다.
"p-hacking이 무엇이고 어떻게 방지합니까?"
p-hacking은 유의성을 찾을 때까지 여러 가설을 테스트하거나 결과가 유의해지면 데이터 수집을 중단함으로써 위양성률을 부풀립니다. 방지 전략: 분석 계획을 사전 등록하고, 다중 비교 보정(본페로니, FDR)을 적용하며, 데이터 수집 전에 샘플 크기를 설정합니다.
"t-검정과 맨-휘트니 U 검정을 언제 사용합니까?"
t-검정은 정규 분포 데이터(또는 CLT에 의한 대규모 샘플)를 가정하고 평균을 비교합니다. 맨-휘트니 U 검정은 정규성 가정 없이 분포를 비교하는 비모수적 대안입니다. 명확하게 비정규적인 작은 샘플이나 순서형 측정값을 비교할 때 맨-휘트니를 사용합니다.
"A/B 테스트에서 다중 비교를 어떻게 처리합니까?"
여러 변형을 테스트하면 제1종 오류가 증가합니다. α = 0.05에서 20번 비교하면 적어도 하나의 위양성이 발생할 확률이 60%를 초과합니다. 본페로니 보정은 α를 검정 수로 나눕니다. 벤자미니-호흐베르그 절차는 본페로니보다 검정력을 유지하면서 위발견율을 제어합니다.
심슨의 역설: 인기 있는 면접 주제
심슨의 역설은 집계된 데이터의 경향이 하위 그룹 수준에서 역전되는 현상입니다. 면접관들이 이 주제를 좋아하는 이유는 통계적 메커니즘뿐만 아니라 인과 추론을 테스트하기 때문입니다.
전형적인 예: 병원 A는 병원 B보다 전체 사망률이 높습니다. 하지만 병원 A는 경증과 중증 케이스 모두에서 사망률이 더 낮습니다. 이 역설은 병원 A가 더 많은 중증 케이스를 치료하고, 중증 케이스는 병원의 품질과 관계없이 사망률이 높기 때문에 발생합니다.
# simpsons_paradox.py
import pandas as pd
# Hospital mortality data
data = {
'Hospital': ['A', 'A', 'B', 'B'],
'Severity': ['Mild', 'Severe', 'Mild', 'Severe'],
'Patients': [200, 800, 800, 200],
'Deaths': [10, 160, 48, 50]
}
df = pd.DataFrame(data)
df['Mortality'] = df['Deaths'] / df['Patients']
# Subgroup mortality
print(df[['Hospital', 'Severity', 'Mortality']])
# Hospital A: Mild 5%, Severe 20%
# Hospital B: Mild 6%, Severe 25%
# Aggregate mortality
agg = df.groupby('Hospital').agg({'Deaths': 'sum', 'Patients': 'sum'})
agg['Mortality'] = agg['Deaths'] / agg['Patients']
print(agg['Mortality'])
# Hospital A: 17%, Hospital B: 9.8%해결책은 교란 변수(중증도)를 식별하고 하위 그룹을 별도로 분석하는 것입니다. 하위 그룹 비율이 다를 때 집계 분석은 오해를 불러일으킵니다.
특성 엔지니어링을 위한 통계적 개념
통계학 지식은 특성 엔지니어링을 직접 향상시킵니다. 분포에 대한 이해가 변환을 안내하고, 관계에 대한 이해가 특성 생성을 안내합니다.
왜도는 분포의 비대칭성을 측정합니다. 오른쪽으로 치우친 데이터(소득, 가격)는 분포를 정규화하고 모델 성능을 향상시키는 로그 변환의 혜택을 받습니다. 왼쪽으로 치우친 데이터는 제곱 또는 지수 변환을 사용합니다.
상관관계는 선형 관계를 정량화합니다. 피어슨 상관관계는 정규성과 선형성을 가정합니다. 스피어만 상관관계는 단조로운 비선형 관계를 처리합니다. 고도로 상관된 특성은 선형 모델에서 다중공선성을 야기하므로 일반적으로 하나를 제거합니다.
이상치는 평균과 표준편차에 불균형적인 영향을 미칩니다. 강건한 통계(중앙값, IQR)는 이상치의 영향에 저항합니다. 이상치가 오류를 나타내는지 진정한 극단값을 나타내는지에 따라 제거, 캡핑 또는 변환을 결정합니다.
이러한 개념을 머신러닝 모델에 적용하는 방법에 대한 자세한 내용은 특성 엔지니어링 면접 가이드를 참조하고 추론 통계 연습 모듈을 탐색하십시오.
연습을 시작하세요!
면접 시뮬레이터와 기술 테스트로 지식을 테스트하세요.
통계학 질문에서 우수한 지원자를 돋보이게 하는 것
데이터 사이언스 면접에서의 통계적 능력에는 교과서적 정의 이상의 것이 필요합니다. 우수한 지원자들은 다음 능력을 보여줍니다:
- 통계를 비즈니스 성과에 연결: A/B 테스트 결과를 p-값만이 아니라 수익 영향이나 사용자 참여 측면에서 프레이밍
- 가정을 알고 있음: 모든 검정에는 조건(독립성, 정규성, 등분산성)이 있으며, 지원자는 그 조건이 실패할 수 있는 경우를 진술해야 함
- 불확실성 정량화: 신뢰 구간이나 신용 구간이 없는 점추정치는 이해관계자들이 신뢰성에 대해 추측하게 만듦
- 인과관계 한계 인식: 관측 데이터는 상관관계를 보여주며, 지원자는 인과관계를 확립하기 위한 실험 설계를 명확히 진술해야 함
- 적절한 검정 선택: 데이터 유형(연속형 vs 범주형), 샘플 크기, 연구 질문을 적절한 통계적 방법에 매칭
- 결과를 명확히 전달: 통계적 발견을 비기술적 이해관계자가 이해하고 행동할 수 있는 실행 가능한 권고로 변환
Data Science & ML 코드의 버그를 찾을 수 있나요
실제 코드 한 조각, 숨은 버그 하나, 하루 한 번. 계정 없이 바로 도전할 수 있습니다.

작성자
Anthony Fillion-MailletSharpSkill 창업자
10년 이상 풀스택 개발을 해왔습니다. SharpSkill을 운영하며 이곳에 게시되는 모든 내용에 책임을 집니다.
2026년 8월 21일 업데이트
공유
관련 기사

2026년 PyTorch 컴퓨터 비전 완벽 가이드: CNN, 전이 학습, 면접 질문
PyTorch를 활용한 컴퓨터 비전 실전 가이드입니다. CNN 기초부터 전이 학습, 이미지 분류, 면접에서 자주 나오는 질문까지 체계적으로 다룹니다.

2026년 데이터 사이언티스트를 위한 LangChain: LLM, 에이전트, 면접 질문
LangChain 0.3을 데이터 사이언스에서 마스터하는 방법을 다룹니다. LCEL 체인, RAG 패턴, ReAct 에이전트, 메모리 시스템, ML 엔지니어링 면접 질문을 포괄적으로 설명합니다.

2026년 MLOps: MLflow, 모델 레지스트리와 기술 면접 질문
ML 라이프사이클, MLflow 실험 추적, 모델 레지스트리 승격, 배포 패턴, 드리프트 모니터링, 2026년을 위한 시스템 디자인을 Python 코드와 답변으로 다루는 MLOps 면접 질문.