JANGUN


몬테칼로 시뮬레이션 및 통계적 결과 분석


지음 : 이효남



목차

1 시뮬레이션과 몬테칼로 방법
2 확률과 통계 기초
3 이산형 확률분포
4 연속형 확률분포
5 추정
6 균등분포 난수 만들기
7 특정 확률분포를 따르는 난수 만들기
8 몬테칼로 시뮬레이션
9 분산축소 기법
10 데이터로부터 분포의 모수 추정
11 적합도 검정


1 시뮬레이션과 몬테칼로 방법

시뮬레이션 : 컴퓨터 상에서 이루어지는 가상 실험 또는 모의실험으로 한정
- 시뮬레이션을 위해서는 먼저 계 또는 문제의 대상에 대한 이해가 필요하다
- 시뮬레이션 모델이 계를 정확히 반영하는지 검증과정(validation)을 거쳐야 한다.
- 확정론적 시뮬레이션 : 하나의 입력변수에 하나의 값만 사용
- 확률론적 시뮬레이션 : : 하나의 입력변수에 확률분포로부터 임의로 선택된 값을 사용

몬테칼로 시뮬레이션
- 확률분포로부터 임의추출된 어떤 값을 입력으로 사용해서 계의 상태를 계산하여 결과를 만들고, 이를 반복하면 존재 가능한 결과들의 집합, 즉 확률분포를 얻을 수 있다.
- 유한한 반복으로 얻어진 결과는 통계적 추정을 통해서 근사치의 형태로 나옴
- 시뮬레이션 결과에 영향을 주는 입력변수들의 종류나 확률변수의 범위 등을 어떻게 조절할 것이진 결정해야 함
- 실험계획법을 적용하여 시뮬레이션 시간을 줄이면서도 계의 상태변화를 효과적으로 파악할 수 있다.




2 확률과 통계 기초

1. 표본공간과 확률변수

2. 확률밀도(질량)함수와 누적분포함수

3. 기대값과 분산


4. 조건부확률
- 결합확률 : 두 가지 사건이 동시에 일어날 확률, P(X=S, Y=L) = 0.2
- 주변부확률 : 두 변수 중의 하나가 특정한 값으로 고정될 때 다른 나머지 변수의 확률을 정의하는 함수, 예를 들어, X에 대한 주변확률을 얻으려면 Y의 모든 경우를 더하면 된다. PX(x) or PY(y)
- 조건부확률 : 상관관계에 있는 변수들 중에서 어느 한 변수의 조건이 정해진 이후 다른 나머지 변수의 확률밀도
- P(B | A) : 변수가 A로 고정된 조건에서 (또는 사건 A가 이미 관찰된 조건에서), 변수 B의 확률
- 조건부확률 = 결합확률 / 주변확률
- 베이즈 정리

- 조건부확률의 기대값

- 조건부확률의 분산


5. 분포에 대한 이해
- 확률분포는 그 함수를 구성하는 인자들에 의해 분포의 특징이 결정된다.
- 이러한 인자들을 특별히 모수(parameter)라고 하는데, 분포에 따라서 하나 도는 여러 개의 모수들이 존재할 수 있다.
- 모수는 분포에 미치는 영향에 다라 위치(location), 형태(shape), 척도(scale) 모수의 3가지로 구분할 수 있다.

모멘트
- 모멘트는 확률변수 X의 k제곱에 대한 기대값으로 정의
- 데이터나 확률분포의 중심 경향, 퍼짐, 대칭성, 뾰쪽함 정도 등을 나타내는 데 유용하게 쓰임
- 1차는 평균, 2차는 분산, 3차는 왜도(skewness, 비대칭), 4차는 첨도(kurtosis, 뾰쪽함)을 나타낸다.



3 이산형 확률분포

1. 이산형 균등분포, U(a, b)
- 예) 동전, 주사위

2. 베르누이 분포, Bernoulli (p)

3. 이항분포, Bin(n, p)

4. 포아송 분포, Poisson(λ)
- 단위 시간 또는 공간에서 발생하는 사건수에 대한 분포
- n이 아주 크고, p가 매우 작은 이항분포로 근사된다.

5. 기하분포, Geom(p)
- 사건 발생 확률이 p인 독립시행을 계속할 때, 어떤 사건이 처음 발생할 때까지의 시행횟수

6. 음이항분포, NegBin(r, p)
- 확률 p인 독립적인 베르누이 시행을 계속할 때, 확률변수 X를 r번째 성공이 나올 때까지 필요한 시행회수

7. 초기하분포, HypGeom(n, M, N)
- N개로 이루어진 부품 모집단에 합격품이 M개 있을 때, 불량품(N-M).
- 비복원추출방법으로 n개의 표본을 뽑았을 때, 그 안에 포함된 합격품의 수를 확률변수 X로 정의




4 연속형 확률분포

1. 균등분포, U(a, b)

2. 지수분포, Expo(β)

3. 정규분포, N(μ, σ2)

4. 로그정규분포, LogN(μ, σ2)

5. 와이블 분포, Weibull(α, β)

6. 레일리 분포, Rayleigh(β)

7. 극단값분포, EVD(β)
- 어떤 표본들로부터 최대값(또는 최소값)을 뽑는 일을 반복해서 하나의 표본을 만들면, 원래의 분포가 무엇이었든 그 표본은 극단값분포를 따른다.

8. 감마분포, Gamma(α, β)

9. 카이제곱분포, Chi2(ν)

10. 베타분포, Beta(α1, α2)

11. F 분포, F(ν1, ν2)

12. Student’s t 분포, Stt(ν)

13. 코쉬 분포, Cauchy

14. 파레토 분포

15. 삼각형분포
- f(x) = 2(x-a) / [(b-a)(c-a)] , if, a< x <c
- f(x) = 2(b-x) / [(b-a)(b-c)], if, c< x <b
- E(x) = (a+b+c) / 3
- V(x) = (a2+b2+c2-ab-bc-ca) / 18





5 추정

추정
- 모집단, 모수
- 표본은 모집단을 대표하는 일부분으로 모집단의 통계적 특성을 알아내기 위함이다.
- 표본오차
- 편향 (bias) : 추정치가 모수에서 벗어난 정도,

좋은 추정치의 특성
- 불편추정치 : 표본평균, 표본분산
- 분산이 작아야 한다.
- MSE (평균제곱오차) : 추정치의 편향과 분산 정도를 나타내는 척도

중심극한정리
- 표본의 개수가 많다면 확률변수들의 합의 분포는 정규분포를 따른다.

다수의 법칙 (Law of Large Numbers)
- 약한 다수의 법칙 : 표본 개수가 많아질수록 추정치가 기대값으로부터 벗어날 확률은 작아진다.
- 강한 다수의 법칙 : 표본 개수가 많아질수록 추정치는 기댓값으로부터 거의 확실하게 수렴한다.


추정방법 : 점추정과 구간추정

통계적 허용한계 :
- 하한, 상한



6 균등분포 난수 만들기

난수 : 무작위로 선택된 수
- 의사 난수
- 합동법



7 특정 확률분포를 따르는 난수 만들기

특정 분포를 갖는 난수를 만드는 방법 : 대부분의 경우에는 역변환법으로 가능하다.

역변환법
- 분포함수(CDF)와 그 역함수를 이용하는 방법
- 분포함수를 F(x) = u로 정의하고 이를 확률변수 X에 대해서 푸는, 즉 x=F-1(u)를 구하는 것이다.
- 분포함수 F(x)는 0 ~ 1의 값을 갖는 증가함수이므로 u ~ U(0, 1)인 균등분포 난수에 대응시킬 수 있다.

분할법(합성법)
- 하나의 분포함수 F를 여러 개의 간단한 분포함수 F1, F2, …로 나누어 난수를 만드는 방법
- 나뉜 각각의 분포함수에서 편리한 방법으로 확률변수값을 구하고, 각 분포함수가 차지하는 분율을 고려해서 더한다.
- 분포함수 F를 이용해서 직접 난수를 만들어 내는 것보다, 잘게 나눈 분포함수들 F1, F2, …로부터 난수를 더 쉽게 만들 수 있을 때 사용

결합법
- 동일한 분포를 따르는 여러 확률변수들의 합으로부터 목적 확률변수를 만드는 방법
- 독립적인 확률변수들을 만들고, 그 합을 이용한다.

취사선택법 (채택-기각법)
- 난수를 만들려고 하는 확률함수 f(x) 아래의 면적을 포함하는 함수 g(x)를 정의 : f(x) ≤ c·g(x)
- g(x)가 차지하는 면적 내에서 난수를 만든다.
- 만들어진 난수가 함수 f(x)의 면적에 포함되는지 조사하여 선택 여부를 결정한다.



8 몬테칼로 시뮬레이션

1. 기본 개념
- 연못에 돌 던지기
- 뷔퐁의 바늘 던지기
- 해석적 방법이나 수치해석 방법으로 잘 풀리지 않는 문제들이나 고려해야 될 차원이 아주 많은 복잡한 문제들을 푸는 강력한 도구
- 돌을 반복적으로 던져 넣는 것은 표본추출과 동일하다.
- 몬테칼로 시뮬레이션을 수행하고 그 결과를 해석하는 데에도 같은 확률과 통계법칙을 적용할 수 있다.
- 표본 개수가 유한하기 때문에 표본으로부터 얻은 결과는 정확해가 아닌 근사해이다.
- 근사해는 정확도가 같이 언급되지 않으면 그 의미가 크게 줄어든다

역사
- 1946년 폴란드 수학자 율램
- 몬테칼로는 카지노와 도박으로 유명한 모나코의 휴양도시 이름이다
- 계산 과정이 난수와 확률이 사용되어 이름지어짐

- 몬테칼로 계산을 수행하기 위해서는 통계적 표본추출 기법이 필요하다
- 통계적 표본이란 난수를 말한다.

2. 기본 몬테칼로 방법
- 적중법(hit-and-miss) : 연못에 돌 던지기
- 표본평균법(sample-mean)
- 0 ~ 1 사이에서 균등분포하는 난수를 이용해서 시뮬레이션에 필요한 확률변수를 만든다.


표본평균법
- 높이 E[ g(x) ]는 적분구간에서의 함수값 g(x)의 평균에 해당한다.
- 먼저 x1이 선택되었다면 이를 함수에 대입해서 g(x1)을 얻는다. x2 -> g(x2)…
- 이 g(xn)의 값들을 평균한 것이 E[g(x)] 이다.

3. 시뮬레이션 결과의 해석
- 분산 : 추정치와 참값의 차이를 제곱한 다음에 이들을 평균한 것이다.
- 시뮬레이션 추정치의 분산, 즉 오차는 모분산에 비례한다.
- 따라서 모분산의 크기에 영향을 주는 인자들에 대해 알아야 한다.
- 모분산의 크기는 다음 특성들에 따라서 달라진다.
1) 추정하려는 함수의 특성
2) 확률변수 자체의 분산 특성
3) 추정하려는 함수와 표본추출 함수의 유사성
4) 시뮬레이션 방법
- 추정하려는 함수와 비슷한 확률분포로부터 표본을 뽑아야만 시뮬레이션 추정치의 분산을 줄일 수 있다.
- 확률변수 자체의 분산 크기도 중요하지만, 확률변수의 모양이 추정하려는 함수와 비슷한지의 여부가 시뮬레이션 결과의 분산에 더욱 큰 영향을 미친다.



9 분산축소 기법

적은 계산으로도 정확도가 높은 추정치를 얻는 시뮬레이션 방법을 생각해조자.
몬테칼로 방법의 정확도는 분산이 작을수록 높아진다.

1. 분산축소기법 개요
- 시뮬레이션 결과인 추정치를 확정적으로 정의할 수 없고 확률변동을 감안해서 신뢰구간으로 정의해야 한다.
- 신뢰구간의 폭은 오차의 크기에 의존한다.
- 오차의 크기를 줄이려면, 반복 회수를 늘리던지, 표본의 분산을 줄여야 한다.
- 분산을 줄여 추정치의 정확도를 높이는 방법을 분산축소기법이라고 한다.

분산축소기법의 종류
- 가중표본추출 방법 (층별 표본추출법, 중요부 표본추출법)
- 상관관계를 도입하는 방법 (공통난수법, 대조변수법, 제어변수법)
- 변수들의 기대값을 이용하는 방법 (조건부 몬테칼로 방법)

2. 층별 표본추출법
- 분산이 작은 추정치를 얻기 위해서 전체 적분 영역을 잘게 나누는 방법이다.
- 잘게 나누어진 구간 하나 하나를 측(stratum)이라고 하기 때문에 이 방법을 층별(층화) 표본추출법이라고 한다. (층과 구간을 구분하지 않는다)
- 구간을 여러 개로 나누게 되면 개별구간에서의 함수값의 차이가 작아지게 된다. 따라서 전체 분산도 작아지게 된다.
- 구간을 나누는 전제조건은 각 구간들이 서로 겹치지 않아야 한다
- 일반적인 방법은 동일한 간격으로 나누는 것
- 가장 좋은 방법은 개별구간에서의 분산이 서로 비슷해지도록 나누는 것

구간별 표본할당
- 전체 표본수가 동일하더라도, 나누어진 개별구간마다 적절한 표본수를 할당한다면 분산을 효과적으로 줄일 수 있다.
- 개별구간에 표본수를 할당하는 방법으로는
1) 개별구간의 너비에 비례해서 표본수를 할당 (비례할당법)
2) 구간의 분산 크기에 비례하여 표본수를 할당 (최적할당법)

최적할당법 절차
1) 예비 시뮬레이션을 먼저 수행한다. 개별구간마다 수백 개 정도의 난수 표본을 뽑아서 함수값을 계산하고 그 표준편차를 구한다.
2) 구간별 최적의 표본수를 구한다.
3) 전체 표본수를 크게 늘린 뒤 본 시뮬레이션을 수행한다. 개별구간에 앞 단계에서 결정된 비율로 표본을 할당하고 추정치와 분산을 구한다.

3. 중요부 표본추출법
- 추정하려는 함수의 모양에 따라서 표본을 추출하는 분포를 다르게 선정한다.
- 추정하려는 함수의 ‘중요부'에 많은 표본이 할당되도록 한다
- 중요부란 ‘함수값이 크거나‘, ‘함수값의 변화가 심한‘ 부분을 말한다.
- 구간별 표본의 개수는 각 구간의 면적이 전체 면적에 기여하는 비율에 따라 할당한다

4. 공통난수법
- 입력변수들 간에 상관관계가 있다고 해서 출력변수들이 반드시 상관관계를 갖는다는 보장은 없다
- 상관관계는 출력변수를 어떻게 만드는지에 따라 달라진다.
- 역변환법을 사용하면 단조함수의 특성 때문에 두 변수 사이에는 상관관계가 만들어진다.
- 출력변수를 만들 때, 동일한 난수를 각각 역변환법에 적용하면, 두 변수 사이에는 양의 상관관계가 만들어진다.

- 두 모델 중의 어느 하나에 작은 변화를 주고 그로 인해서 결과가 달라지는지 알기를 원할 때 유용하다.
- 공통난수법은 시스템에 작은 변화가 주어졌을 때, 그 효과를 알아내는 데 유용하다.
- 하지만, 이를 효율적으로 시뮬레이션에 적용하기 위한 공식 같은 것은 없다.

5. 대조변수법
- 공통변수법과 비슷하게 시뮬레이션에 일부러 상관관계를 도입한다.
- 두 변수 사이에 ‘음'의 상관관계가 만들어지도록 한다. ‘음'의 공분산을 도입하면 분산을 줄일 수 있다.
- 간단한 방법 : 변수 X를 계산하는 데 사용했던 난수를 변수 X*를 계산하는 데에 다시 사용하는 것
- 재 사용시에는 처음 사용했을 때와는 반대가 되는 특성을 갖도록 약간의 변형을 가해진다. 이렇게 만들어진 한 싸의 변수들을 대조변수라고 한다.

6. 제어변수법
- 두 변수 간에 상관관계가 있다면(부호는 중요하지 않다), 한 변수에 대한 정보는 다른 변수에 대한 정보를 유추해 내는 데 사용될 수 있다.
- 시뮬레이션에서 두 변수 간에 상관관계를 도입하는 것은 간단하다. 각 변수를 만드는 데 동일한 난수를 사용하면 ‘양'이나 ‘음'의 상관관계를 갖게 된다.
- 'E(C) = 평균' 인, C 값을 찾는다. 이 C 값이 제어변수이다. 제어 변수에 의해 보정된 변수 Xcv는 기댓값에 가깝기 때문에 분산이 줄어들게 된다.

7. 조건부 몬테칼로법
- 분산을 줄이기 위해서 채택하는 개념으로, 해석적으로 계산할 수 있는 부분은 시뮬레이션을 수행하지 않는다는 것이다.



10 데이터로부터 분포의 모수 추정

1 데이터 분석 절차
- 어떤 확률 현상을 서술하거나 설명하려면 실험, 관찰, 또는 시뮬레이션으로부터 얻은 데이터를 확률분포로 나타내야 한다.
- 데이터가 어떤 분포를 보이는가를 결정하는 방법
1) 히스토그램을 그려보는 것
2) 확률지를 사용
3) 적합도 검정을 통해 후보가 될 만한 분포들 중에서 최적의 분포를 찾아낸다

2. 분포의 모수추정 방법
- 모수추정이란, 표본 데이터로부터 그것이 추출된 모집단의 정보를 알아내는 일이다
1) 모멘트 (적률) 방법
- 추정해야 될 모수의 개수만큼의 모멘트들이 필요하다

2) 최대우도 방법 : 우도함수를 최대로 만드는 모수의 값을 찾는 것
- 우도함수란 관찰된 데이터들이 얻어질 가능성을 극대화시키는 함수
- 모수는 관찰된 이 표본들이 얻어질 가능성이 가장 큰 값일 것이라는 관점으로부터 출발한다.
- 표본들이 많을 때는 최소분산 불편추정량을 구할 수 있는 최적의 방법이다.
- 단점은 수학적으로 복잡하다, 표본의 수가 작으면 추정치가 심한 편향을 보이는 경향이 있다.

3) 확률지에 의한 방법 : 후보 분포의 누적분포함수를 확률변수와 직선적 관계를 갖도록 변환시켜 만든다.
- 특정 분포마다 그것에 대응되는 특정한 확률지가 있어야 한다.
- 데이터를 후보 확률지에 타점하고, 그 데이터들이 직선으로 나열되는 정도로부터 후보 분포가 해당 데이터를 잘 대표하는 지 판단한다.
- 분포의 모수는 직선의 기울기나 절편 등의 정보로부터 추정된다.




11 적합도 검정

1 개요
- 적합도 검정 : 실험이나 시뮬레이션의 목적은 데이터를 얻기 위함이다. 얻어진 데이터들이 어떤 분포를 따르는지 알아야 그것을 근거로 정확한 최종 결론을 내릴 수 있다
- 적합도 검정은 비교 대상인 두 분포들이 통계적으로 같은 것인지 비교 판단하는 것이다.
- 여기서 비교 대상은 실험분포와 실험분포일 수도 있고, 아니면 실험분포와 이론분포일 수도 있다.
- 실험분포란 실험이나 관찰, 또는 시뮬레이션 등으로부터 얻어진 데이터들이 이루는 분포를 말한다
- 적합도 검정이란 실험 데이터들이 어떤 이론분포에 속하는 지를 판단하기 위한 통계적 도구로 받아들여진다.

- 어느 정도가지의 차이를 허용하고 같은 분포로 볼 것인가?
- 귀무가설 : 실험분포 = 이론분포, 대립가설 : 실험분포 ≠ 이론분포

적합도 검정 방법
- 카이제곱 검정 방법
- 실험누적분포 검정 방법 (Kolmogorov-Smirmov 검정, Anderson-Darling 검정, Cramer-von Mises 검정)

2. 카이제곱검정
- Pearson 고안
- 비교대상인 두 분포의 밀도함수를 비교
- 실험분포를 구간별로 나누어 그룹을 짓고, 각 그룹에서의 데이터 빈도를 이론분포에서의 빈도와 비교하는 것이다
- 비교 결과, 빈도 차이가 허용된 범위 이내이면 두 분포가 같은 것으로 보고, 그렇지 않으면 비교했던 두 분포가 다른 것으로 결론 내린다

1). n개의 데이터를 크기순으로 정렬하고 적당한 몇 개의 구간(k)으로 나눈다.
2). 각 구간 (i=1, 2, …, k)에 속하는 데이터들의 개수, 즉 표본빈도 ni를 구한다. 여기서 ∑ ni (i=1 ~ k) = n이다. 이는 각 구간에서의 데이터 개수를 모두 더하면 총 데이터 개수라는 의미
3). 실험분포와 잘 들어맞는다고 생각되는 이론분포를 고른다
4). 각 구간에서 이론분포의 빈도를 계산한다. 물론 이 구간들은 실험분포의 구간에 대응되는 것이어야 한다
5). 두 분포 간의 빈도 차이를 구한다.
6) 두 분포 간의 차이가 허용된 범위 안에 있는지 판단한다

3. 실험분포함수에 근거한 적합도 검정
- 실험분포함수 (edf: empirical distribution function)란 표본 데이터로부터 계산되는 계단함수이다.
- 이 실험분포함수가 이론분포함수와 보이는 차이를 검정통계치로 삼는다.
- 검정통계치가 주어진 유의수준에서 검정기준치 이내에 있으면 표본 데이터들이 이론분포를 따르는 것으로 결론 내린다.
- 검정기준치는 검정통계치 분포의 유의수준에 대한 분위수이다.
- 연속분포의 경우에만 적용가능하다. 그리고 검정하려는 이론분포의 모수를 알고 있을 때만 적용할 수 있다

Kolmogorov-Smirmov 검정 (K-S 검정), Anderson-Darling 검정 (A-D 검정) 과 Cramer-von Mises 검정 (CvM 검정)
- 검정통게치는 실험누적분포와 이론누적분포와의 수직거리 차이의 최대값이다. 최대값이 검정기준치보다 작으면 동일한 분포인 것으로 결론 내린다.
- 검정 통계치를 구하는 방법에 따라 검정 방법이 나뉜다.
- K-S 검정 : Dn
- A-D 검정 : An
- CvM 검정 : Wn