7.2 시뮬레이션(모의실험)의 의미
알반적 의미
현실 세계에서는 시간 및 비용 등의 문제로 실현하기 어렵거나 불가능한 시스템을 모형(혹은 가상 데이터 생성) 을 통해 실제 시스템을 모사함으로써 현상에 대한 문제를 이해하고자 하는 목적으로 고안한 일련의 방법
시뮬레이션의 활용 사례
- 군사 모의실험
- 비행 모의실험
- 선거 모의실험
- 민방위 훈련
- …
통계적 모의실험(statistical or stochastic simulation)
통계학의 표본 이론과 확률론을 근간으로 확률모형으로부터 난수(random number)와 임의 표본(random sample) 으로 가상의 데이터를 생성한 후 어떤 결과나 문제의 해를 근사해 실제 이론으로 도출한 결과와 비교하기 위한 방법론임. 이러한 형태의 모의실험 방법을 몬테칼로 시뮬레이션(Monte Carlo simulation)이라고 함.
- 확률 모형(stochastic model)은 데이터가 어떻게 생성되었는지를 수학적으로 표현.
- “모형을 시뮬레이션 한다” = 단계적으로 “데이터처럼 보이는 것”, 생성하는 과정을 의미함
- 확률모형(분포)로 부터 도출한 합성 데이터(synthetic data), 대리 데이터(surrogate data) 생성
- 각 시뮬레이션 결과는 동일한 초기값에서 랜덤 요소를 수반하기 때문에 동일한 결과를 보장하지 않음
예시: \(X_1 \sim \mathcal{N}(3, 2^2)\), \(X_2 \sim \mathcal{N}(5, 3^2)\) 이고, \(X \perp \!\!\! \perp Y\) 일 때 \(X_3 = X_1 + 2X_2\) 의 분포는?
- \(X3 \sim \mathcal{N}(3 + 2\times5, 2^2 + 4\times 3^2) = \mathcal{N}(13, 40)\)
set.seed(10000)
<- rnorm(10000, 3, 2)
x1 <- rnorm(10000, 5, 3)
x2 <- x1 + 2*x2
x3 mean(x3); var(x3)
[1] 13.0817
[1] 39.87758
통계적 모의실험에 Monte carlo 라는 명칭이 붙게된 계기는 2차 세계대전 당시 미국의 원자폭탄 개발계획인 Manhattan 프로젝트에서 중성자의 특성을 연구하기 위한 모의실험의 명칭에 모나코의 유명한 도박 도시 Monte Carlo 이름을 붙힌 것에서 유래함.
통계적 모의실험의 특징
- 특정 분포를 따르는 확률 변수에 대응하는 관찰값이 필요
- 반복적으로 수많은 난수를 생성해야 하기 때문에 컴퓨터의 사용이 필수적
- 기본적으로 통계학의 가장 기본적 개념인 대수의 법칙(law of the large number)을 활용
통계적 모의실험을 하는 방법
- 통계적(확률) 모형은 보통 한 변수(\(X\))가 주어졌을 때 다른 변수(\(Y\))에 대한 조건부 분포임. 이러한 통계적 모형이 단순 선형회귀모형(simple linear regression model)임.
\[ \begin{eqnarray} X & \sim & \mathcal{N}(\mu_x, \sigma_1^2) \\ Y|X & \sim & \mathcal{N}(\beta_0 + \beta_1X, \sigma_2^2) \end{eqnarray} \] - 위 식에서 우변에 주어진 확률변수를 생성하는 방법을 알고 있다면 위 회귀모형에 대한 시뮬레이션 가능 \(\rightarrow\) 모든 종류의 확률 모형에 대한 시뮬레이션의 일반적 전략임.
난수 생성의 방법
- 난수(random number): 어떤 방법으로도 예측될 수 없는 일련의 수열(숫자)
- 통계적 의미로 난수는 특정 범위(보통 0에서 1 사이)의 균일분포(uniform distribution)에서
추출된 표본들의 관찰값으로, 임의의 확률분포(예: 정규분포, 지수분포 등)를 따르는 확률 변수와는 구별됨.
- 특정 분포를 따르는 확률 변수는 균일 분포를 따르는 확률 변수로부터 적절한 변환을 통해 얻을 수 있음.
- 난수를 발생하려면 어떤 알고리즘이 필요하고 알고리즘은 일정한 규칙에 의해 구현되기 때문에 컴퓨터로 발생한 난수는 엄밀한 의미에서 난수가 아님.
- 이를 구별하기 위해 보통 컴퓨터로 생성한 난수를 유사난수(pseudo-random number)라 칭함
- 난수 생성을 위한 알고리즘으로 합동법(congruential method), 역변환법(inversion method) 등이 널리 활용
- 통계 시뮬레이션에서는 주로 변수변환방법(transformation)을 통해 확률변수를 생성
- \(Z \sim \mathcal{N}(0, 1)\)일 때 \(\sigma Z + \mu \sim \mathcal{N}(\mu, \sigma^2)\)
- \(Z^2 \sim \chi^2(1)\)