[기초통계] 데이터로 모수를 추정하는 방법론

Hyunjun Kim·2025년 9월 26일

통계학기초

목록 보기
17/24

데이터 분석에서 모수(Parameter) 추정은 모집단의 특성을 파악하고, 예측과 의사결정에 활용하기 위한 핵심 과정이다. 본 글에서는 기본 개념부터 대표적인 추정 방법, 실제 데이터 분석에서의 적용까지 단계별로 설명한다.


1. 기본 개념

  • 모수(Parameter): 모집단의 특성을 나타내는 값
    예: 평균(μ), 분산(σ²), 표준편차(σ)
  • 표본(Sample): 모집단에서 일부를 추출한 데이터
  • 통계량(Statistic): 표본 데이터를 기반으로 계산된 값, 모수 추정에 사용

즉, 대부분의 모수는 직접 알 수 없으므로, 표본 통계량을 통해 추정한다.


2. 대표적인 모수 추정 방법

(1) 점 추정 (Point Estimation)

  • 하나의 값으로 모수를 추정하는 방법
  • 예시:
    • 모평균 μ → 표본평균 x̄
    • 모분산 σ² → 표본분산 s²
import numpy as np

data = np.array([5.1, 4.9, 5.0, 5.2, 5.1, 5.0])

mu_hat = np.mean(data)      # 모평균 추정
sigma2_hat = np.var(data)   # 모분산 추정 (MLE 기준)
sigma_hat = np.std(data)    # 모표준편차 추정

print(mu_hat, sigma2_hat, sigma_hat)

(2) 최대우도추정법 (MLE, Maximum Likelihood Estimation)

  • 아이디어: 관측된 데이터가 나올 확률(우도, Likelihood)이 가장 커지도록 모수 값을 선택

  • 과정

    1. 우도 함수 정의
      L(θx1,...,xn)L(\theta \mid x_1, ..., x_n)

    2. 로그우도로 변환
      (θ)=logL(θx1,...,xn)\ell(\theta) = \log L(\theta \mid x_1, ..., x_n)

    3. 로그우도 최대화 → 모수 추정값 θ^

  • 예시: 정규분포 N(μ, σ²)

    • μ^MLE=xˉ,σ^MLE2=1n(xixˉ)2\hat{\mu}_{MLE} = \bar{x}, \quad \hat{\sigma}^2_{MLE} = \frac{1}{n} \sum (x_i - \bar{x})^2

동전 던지기 예제

  • 동전이 앞면이 나올 확률 θ를 추정한다고 하자. 10번 던져 7번 앞면이 나왔다면,

우도 함수는 : L(θ)=θ7(1θ)3L(\theta) = \theta^7 (1-\theta)^3

로그우도를 최대화하면 θ^MLE = 0.7


(3) 최소제곱법 (Least Squares)

  • 주로 회귀분석에서 회귀계수 추정에 사용
  • 아이디어: 데이터와 모델 예측값 사이의 오차 제곱합을 최소화
  • 선형 회귀 예:
    β^=argminβ(yi(β0+β1xi))2\hat{\beta} = \arg\min_\beta \sum (y_i - (\beta_0 + \beta_1 x_i))^2

(4) 베이지안 추정 (MAP, Maximum a Posteriori)

  • MLE와 유사하지만 사전 지식(Prior) 반영
  • 우도(Likelihood)와 사전분포(Prior)를 곱한 사후분포(Posterior)에서 모수 추정
θ^MAP=argmaxθL(θx)P(θ)\hat{\theta}_{MAP} = \arg\max_\theta L(\theta \mid x) P(\theta)

3. 실제 데이터 분석에서 적용

  1. 데이터 탐색
    평균, 분산, 표준편차, 히스토그램 등을 확인

  2. 분포 가정
    데이터가 따를 확률분포(정규, 베르누이, 포아송 등) 선택

  3. 모수 추정 방법 선택

    • 데이터만으로 충분하면 MLE
    • 사전 지식이 있으면 MAP
  4. 추정치 계산
    Python, R 등으로 계산

  5. 신뢰구간 계산
    모수 추정의 불확실성을 표현


4. Python 예제: MLE와 MAP

import numpy as np
from scipy.stats import norm

# 데이터: 정규분포 샘플
data = np.array([5.1, 4.9, 5.0, 5.2, 5.1, 5.0])

# MLE: 평균과 분산 추정
mu_mle = np.mean(data)
sigma_mle = np.std(data)
print("MLE:", mu_mle, sigma_mle)

# MAP: 사전분포가 N(5, 0.1^2)일 경우
prior_mu = 5
prior_sigma = 0.1
sigma_likelihood = sigma_mle / np.sqrt(len(data))

# MAP 추정 (정규-정규 Conjugate)
mu_map = (mu_mle/sigma_likelihood**2 + prior_mu/prior_sigma**2) / (1/sigma_likelihood**2 + 1/prior_sigma**2)
print("MAP:", mu_map)

5. 정리

  • 모수 추정은 표본 데이터에서 통계량 또는 우도 최대화 등을 통해 수행한다.
  • 평균, 분산, 표준편차는 가장 기본적인 모수 추정치이다.
  • 실무에서는 MLE, MAP, 최소제곱법 등 방법론을 데이터 특성과 목적에 맞게 적용한다.
  • 동전 던지기, 정규분포, 회귀 등 다양한 예제를 통해 이해하면 실제 분석에 유용하게 활용 가능하다.
profile
Data Analytics Engineer 가 되

0개의 댓글