JANGUN


시뮬레이션


지음 : 김강현



목차

개요
1장. 시뮬레이션
2장. 모델링과 시뮬레이션
3장. 대기행렬 문제
4장. 모델링 월드뷰
5장. 이산사건 시뮬레이션
6장. 시뮬레이션 언어
7장. 난수의 발생 및 검정
8장. 확률변수의 발생 및 입력확률분포 선택


개요

시뮬레이션이란? 실 시스템에서 실 시스템의 성질을 나타내는 모델을 만들고 그 모델로 실험을 하는 것 (모의 실험)
- 특징 : 미래를 예측 / 시간 변수의 사용 / 다양한 실험이 가능
- 결정적 시뮬레이션 vs. 확률적(probabilistic / stochastic) 시뮬레이션 (- 확률변수, 난수)


확률 변수 발생 공식 : 일양분포, 지수분포, 정규분포, 이산형 일양분포, 포아송분포
시스템 : 어떤 목적을 위하여 하나 이상 서로 관련된 구성요소들이 결합된 집합
- 시스템의 범위문제 / 외적 요인(환경)들을 포함/무시/입력으로 처리


모델 (시스템을 서술(묘사)한 것) 과 모델링 (모델 설계 과정)
시뮬레이션 모델
- 결정적 모델과 확률적 모델 : 확률변수 유무
- 정적 모델과 동적 모델 : 시간의 변화에 따른 상태변화
- 이산 모델과 연속 모델 : 상태변수의 연속 혹은 불연속
- 물리적 모델과 수학적 모델 : 물리적 구성 혹은 수학적 수식 사용 여부
시뮬레이션의 특징
- 장점 : 구축없이 예측/평가, 해석적 방법이 불가능 한 경우, 비용이 높고 위험한 경우, 환경조절(반복실험)이 가능, 시간에 구애 없는 연구
- 단점 : 많은 비용과 시간, 프로그래밍 연습??, 과잉 신뢰, 확률적 시뮬레이션은 추정량을 산출할 뿐!!
시뮬레이션 과정 : 문제 정의 - 모델 설계 - 자료 수집 - 모델 변환 - 검증 - 타당성 검토 - 실험계획 수립 - 실험 - 결과 분석 - 구현과 문서화

모델링 월드뷰 : 시스템을 모델링하는 관점 :
- 이산형(프로세스, 액티비티, 사건 중심) : 주요 종속 변수가 시뮬레이션 시간 구간에서 이산적으로 변함 (대기행렬 고객 수)
- 연속형 : 주요 종속변수가 시뮬레이션 시간 구간에서 연속적으로 변한다. (미분방정식, 공의 탄성 문제)
- 혼합형 : 종속변수가 시뮬레이션 시간 구간에서 이산적으로도 연속적으로도 변함. (발전소 완공, 호수의 물고기 수 (약품 살포) – 임계값 획득)
모델의 구성 요소 : 사건 발생 시 상태 변화 / 액티비티 / 프로세스
월드 뷰
- 사건 중심 진행 방법 : 사건 발생 때 마다 진행, 시스템의 상태변화 : 사건 발생 시간 (고정시간 진행법, 가변시간 진행법)
- 액티비티 중심 방법 : 액티비티 시작, 종료 조건 규정, 비효율적 (매 시간 관찰, 기간 무한정)
- 프로세스 중심 진행 방법 : 프로세스를 통한 엔티티의 흐름을 기술, 이해는 쉽지만 모델링 융통성 떨어짐


애니메이션
- 장점 : 설명 용이, 에러 수정 용이, 모델 검증 용이, 개선점 착안, 교육용, 커뮤니케이션 향상
- 단점 : 애니메이션이 모델 정확도를 보장해주지 못함, 통계적 분석을 대신할 수는 없다

난수의 성질 : 일양분포, 임의성, 상관관계가 없다. U[0, 1), 기억용량 작아야, 빠르게 생성, 반복 가능
난수 발생
- 중앙 이승법 : 대수적 방법으로 예측 가능
- 합동법 : Lehmer의 공식, Xi = (aXi-1+ c) (mod m) ... m은 보통 2b을 채택(32bit 머신, b=31), overflow 이용
- 최대 주기 정리 : m과 c가 서로 소, m과 (a-1)이 소수인 공약수를 갖고 4로 나누어 떨어진다.
- Xi는 결정적이다 (대수적 방법이므로), 유리수 값만을 취한다.

난수의 검점
- 카이제곱 검정 : 난수의 일양분포 성격을 검사
- 연속형 검정 : d-tuple들이 [0, 1]d 에서 일양분포?
- Runs(Run Up) 검정 : Ui들 사이의 독립 검정, Ui들이 연속적으로 증가하는 길이를 측정
- 검정 순서 : Runs 검정 - 카이제곱 검정 - 연속형 검정


확률 변수 X : 확률변수란 표본공간에서 실수로 가는 함수로 정의
- 함수 X : S - R : S-표본공간, R-실수, X-연속, 이산
- 이산형 확률변수 X, 확률질량함수 P(X=xi) = p(xi), 누적분포함수 F(x) = ΣP(xi) {i, xi ≤ x } = P{X ≤ xi }
- 연속형 확률변수, 확률 밀도함수, 누적분포함수
확률변수의 발생원리 : 정확성과 효율성(저장능력, 실행시간)
- 역변환 : 역함수 이용, U[0, 1)의 난수를 발생하고, X = F-1(U)로 놓고 되돌려 준다
- 합성 : 분포함수 F가 다른 분포함수들의 조합으로 이루어진다. F(x) = ΣPjFj(x), f(x) = ΣPjfj(x)
- 결합 : 합으로..
- 채택·기각 : U[1/4, 1) 발생 (구간에 들어오면 사용, 아니면 다시), 여러 번 난수 발생이 필요
참고) 정규분포에서 중심극한 정리


확률분포의 형태 : 위치모수(왼쪽/오른쪽), 규모모수(확대/축소), 형태모수(곡선형태)
확률분포의 선택 :
- 통계적인 기법을 사용하여 주어진 데이터에 대하여 어떤 이론적 확률분포가 적합한지 선정한 후 선정된 분포의 모수들을 결정하고
주어진 데이터를 이용하여 이론적인 분포의 형태를 구하지 않고, 그 데이터의 경험적 분포를 이용하여 직접적으로 필요한 표본을 발생시킨다.
- 점통계량 : 분산계수 이용, 쉽고 빠르나 통계적 평가 등이 없어 신뢰성 문제
- 히스토그램 : 밀도함수의 형태를 추정, 구간 선정과 넓이 선정이 어렵다. Cf) 이산형 : 막대그래프
- 확률도 : 예측한 분포를 가정해서 확률도를 그리면 직선 형태, 미리 적합한 분포를 정하고, 형태 모수를 예측해야 함, 이산형은 적용 불가
- 통계적 기법에 의한 육안 평가 : 도수분포표, 막대그래프, 평균과 분산

확률변수 적합도 검정 : 관측치들이 가정한 분포 F에 적합한가를 검정
- 귀무가설 H0 : 주어진 확률변수들은 F를 가진 확률변수이다.
- 검정밥법 : 카이제곱 검정 (이산형 및 연속형 가능, n이 무한대이면 적용 곤란), Kolmogorov-Smirnov 검정 (연속형 분포만 적용 가능)
- 주문건수 : 정규분포
- 전화문의 : Poisson 분포
(연속된 시간 구간에서 발생된 이산 사건, 한 사건의 출현이 다른 사건의 발생에 전혀 영향을 미치지 못함, 0의 발생확률이 매우 높다, 구간별 평균 발생이 매우 작다)
- 카이제곱 검정 : 귀무가설은 분포와 이론분포와 유의한 차이 유의 수준 (: 0.05)
: 실제 빈도수나 숫자만 사용, 각 구간 기대빈도는 5이상, 자유도 v=k-1-m (k:구간의 수, m:매개변수 숫자)


Kolmogorov-Smirnov 검정 :
- 이론적 확률분포로부터 얻은 누적값
- 확률분포와 관측자료로부터 얻은 누적값 확률분포를 비교
- 각 구간에서 이론치와 관측치의 절대값 차이가 가장 큰 값을 찾음,
- K-S 주요점 표에서 구한 값과 비교

- 카이제곱 검정 (표본의 크기가 100 이상),
- Kolmogorov-Smirnov 검정 (표본크기가 10이상 99이하)
- 표본크기가 10이하인 경우 Cramer-Von Mises 검정



1장. 시뮬레이션

♠ 결정적 시뮬레이션
- 관찰하고자 하는 실제 시스템에서 실제시스템의 성질을 나타내는 모델을 만들고 그 모델로써 실험을 하는 것을 시뮬레이션 이라고 한다.
- 시뮬레이션의 목적은 실험을 통해서 실제 시스템이 갖게 되는 앞으로의 행위를 예측하거나 평가, 또는 보다 더 정확히 분석할 수 있으며 훈련에 응용할 수 있는 것이다.
- 시뮬레이션의 3가지 기본요소는 실시스템, 모델 , 시뮬레이터 이다.
- 실시스템을 표현하는 모델은 크게 두 가지로 나누어 볼 수가 있다.
- 대수학이나, 미분, 적분 또는 확률론 등의 수학적 공식으로 표현하는 해석적 방법과 수학적인 식으로 정의하기에는 너무 복잡하여 시뮬레이션을 위한 실험모델을 구성하는 방법이 있다.

♠ 확률적 시뮬레이션
- 확률변수는 난수와 확률분포를 이용하여 다음과 같이 생성할 수 있다.
- 먼저, [0, 1) 사이의 범위를 갖는 난수 U[0,1) 를 발생시킨 후, 이 난수 U[0,1) 에 적당한 변형식을 적용하여 일양분포, 정규분포, 지수분포 등 원하는 확률변수를 생성한다.
- 난수를 발생시키는 프로그램을 난수발생기(random number generator) 라고 한다.
- 난수의 성질은 동일한 출현 확률과 예측이 불가능한 임의성이다.
- 난수(random number)의 예로 주사위를 생각할 수 있는데, 주사위 문제의 시뮬레이션 결과를 보면 각 면의 출현횟수가 비슷하다는 것을 알 수 있다. 이것은 난수 프로그램의 일양분포의 성격을 의미한다.
- 또한 주사위를 던지면 어떤 숫자가 나올지 예측할 수 없는데 이것은 임의성을 나타낸다.
- 확률적 시뮬레이션이란 확률 변수를 사용하는 시뮬레이션이다.

♠ 확률변수의 발생
- 시뮬레이션은 확률변수를 사용하지 않는 결정적 시뮬레이션과 확률변수를 사용하는 확률적 시뮬레이션으로 구분할 수 있다.
- 공의 탄성문제와 저축문제1은 결정적 시뮬레이션이고 여기에 연봉의 인상률을 확률변수를 사용하여 확률적 상황으로 표현한 저축문제2가 확률적 시뮬레이션이다.
- 각각의 확률분포에서 확률변수 발생식을 유도하여 사용하는데 자주 사용하는 확률변수 공식들은 다음과 같다.
- 난수는 일양확률분포의 성격을 갖고 있으므로 주사위문제에 응용될 수 있다.


♠ 시뮬레이션 응용문제
- 대기행렬(queuing)시스템이란 봉사자가 있고 도착한 손님은 줄을 서서 자기 차례를 기다리다 봉사를 받으면 떠나는 시스템이다.
- 예를 들면 주유소에서 급유를 받기 위해 기다리는 자동차들, 기차역에서 기차표를 사려고 기다리는 손님들이 있다.
- 그밖에 은행, 우체국, 고속터미널 매표소, 고속도로 톨게이트 등이 대표적인 예이다.
- 여기서 봉사창구가 하나만 있는 대기행렬시스템을 단일창구 대기행렬 시스템이라고 한다.
- 대기행렬이란 대기행렬 시스템에서 기다리는 고객의 수를 의미하고 봉사시간이란 도착한 고객의 봉사시간으로 고객이 봉사대에서 머무는 시간이다.
- 도착고객의 수는 시간당 평균15명의 일양 확률변수로 표현하였고 봉사시간은 평균 4분의 포아송 확률변수로 표현했다.
- 대기행렬 시스템에서 중요한 두 가지 요소로 도착상황과 출발상황이 있다.
- 도착상황은 고객이 어떤 조건으로 도착하는지에 대한 표현이고 출발상황이란 어떤 조건으로 출발하는지에 대한 표현으로 모델 구성에 필수적인 요소이다.



2장. 모델링과 시뮬레이션

시스템이란 어느 목적을 위하여  하나 이상 서로 관련 있는 구성요소 가 결합된 것이다.
- 모델이란 시스템을 서술한 것으로 축소된  물리적 대상 이거나  수학적인 식 이나  관계 ,  도형적 표현 일 수 있다.
- 시스템의 모델링

- 시뮬레이션 모델의 종류

- π를 구하는 몬테칼로 시뮬레이션

- 시뮬레이션 모델의 예

- 시뮬레이션의 특징

- 시뮬레이션의 과정



3장. 대기행렬 문제

- 봉사창구란 대기행렬 시스템에서 서비스하는 창구로서, 예를 들면, 주유소의 주유대에 해당한다.
- 도착형태란 대기행렬 시스템에 도착하는 고객의 형태로, 예를 들면, 주유소에 도착하는 고객의 형태가 시간당 평균 15명의 일양 분포였다.
- 봉사형태란 대기행렬 시스템의 봉사창구에서 봉사자의 서비스시간의 형태로, 예를 들면, 봉사자가 주유하는 시간은 평균 4분의 포아송 분포였다.
- 복수창구를 고려한 알고리즘은 다음과 같이 창구숫자 만큼 while 문과 tpump(i)를 수정해 주면 된다.

- 봉사시간을 포아송 확률변수로 하는 것은 실제 상황을 표현하지 못한다. 주유시간은 탱크크기에 비례하므로 이를 반영하게 위하여 정규확률변수를 사용하였다.
- 변형된 봉사시간 조건 : 연료탱크 : 평균 = 20ℓ, 표준편차 = 3인 정규분포, 급유시간 계산 : 1ℓ당 1/8분
- 일양 확률변수 random(seed,U) 에 의하여 도착차량이 결정되고, 정규 확률분포
- normal(nseed, mean, stdev, liters) 에 의하여 각 차량의 연료탱크 크기가 결정된다.
- 봉사시간 계산공식은 tpump = 1.0 + 1.0/8.0 * liters 이다.
- 대기행렬 시스템에서 줄에 서서 기다리는 고객의 길이를 대기행렬(queue) 의 길이라 하고, 줄에 서서 기다리는 고객의 시간을 대기시간이라 한다.
- 고객이 도착하여 서비스를 받고 돌아갈 때까지의 소요시간을 체재시간이라 한다.
- 시뮬레이션 도중 창구가 붐비는 비율은 봉사창구의 가동율이고, 창구가 한가한 비율을 휴지시간 비율이라 한다.
- 평균대기시간( avgwt ), 평균 대기행렬 길이 ( aveque )



4장. 모델링 월드뷰

- 같은 시스템이라도 분석가가 시스템을 이해하는 관점(world view)에 따라서 여러 가지 형태의 다른 모델로 될 수 있다. 이러한 관점을 월드뷰라 하고, 월드뷰에 의하여 이산형, 연속형, 혼합형 모델링으로 나누어진다.
- 이산형 시뮬레이션은 시뮬레이션 시간에서 종속변수가 사건발생 시간이라고 불리는 특정한 시간 (독립변수)에 이산적으로 변화할 경우이다. 종속변수의 이산적 변화가 어떤 시간에도 일어날 수 있으면 연속형이 되고, 명시된 순간에만 일어날 수 있으면 이산형이 된다.
- 연속형 시뮬레이션 모델에서 시스템 상태는 시간에 따라 연속적으로 변하는 종속변수 에 의해 표현된다.
- 혼합형 시뮬레이션에서 모델의 종속변수는 이산적으로 변할 수도 있고, 연속적으로 변할 수도 있고, 이산적인 점프가 겹쳐지는 형태로 연속적으로 변할 수도 있다.
- 사람, 장비, 주문, 원자재 등과 같은 이산형 시스템 영역내의 대상을 엔티티 라고 한다. 엔티티 에는 많은 종류가 있으며, 각 종류는 많은 특성이나 속성을 갖는다.
- 이산형 시뮬레이션에서 시스템 상태는 사건발생 시간에만 변할 수 있다.
- 사건발생간에는 시스템의 상태가 변하지 않기 때문에 사건의 발생에 따라 시뮬레이션 시간을 증가시켜 감으로써 시스템 상태에 대한 동적인 묘사를 할 수 있다.
- 이와 같은 시간증가방법을 다음사건 진행방법이라고 한다.
- 이산형 시뮬레이션 모델은 각 사건 발생시 상태의 변화, 엔티티가 사용되는 액티비티, 엔티티가 흐르는 프로세스에 의하여 공식화될 수 있다.
- 이산형 시뮬레이션 모델링에 대한 월드뷰 3가지는 사건중심방법 , 액티비티 관찰방법 , 프로세스 중심방법 이 있다.
- 사건중심의 월드뷰에서는 사건발생시간에 일어나는 변화를 정의함으로써 시스템을 모델화한다. 모델 작성자는 시스템의 상태를 변화시키는 사건을 결정하고, 각 사건과 관련된 논리를 실행시킴으로써 시스템에 대한 시뮬레이션이 된다.
- 액티비티 관찰중심방법에서는 시스템의 엔티티들과 관계되는 액티비티들을 서술하고, 액티비티의 시작과 종료를 유발하는 조건들을 규정한다. 액티비티를 시작시키거나 종료시키는 사건들은 액티비티에 의해서 명시되는 조건들로부터 유발된다.
- 프로세스 중심방법에서는 프로세스를 통한 엔티티들의 흐름에 대한 서술을 제공한다. 따라서 흐름의 표현이 단순하여 이해는 쉽지만 모델링의 융통성은 사건중심 진행방법 보다 떨어진다.
- 혼합형 모델링에서 이산형 변수와 연속형 변수간에 발생할 수 있는 기본적인 상호작용은 이산적인 값의 변화가 연속형 변수에 일어나는 경우, 임계값을 획득한 연속형 상태변수를 포함한 사건이 다른 사건의 발생을 유발하는 경우, 연속형 변수의 기능적 서술이 이산적 시간의 순간에 변화하는 경우 등이다.
- 혼합형 시뮬레이션에서 발생할 수 있는 사건은 시간사건(time-event)과 상태사건(state-event)이 있다.



5장. 이산사건 시뮬레이션

- 이산사건중심 방법에서 시스템 모델링 요소는 사건시각과 사건이다. 시스템의 상태가 변할 수 있는 시각을 사건시각(event time)  이라고 하며 상태의 변화를 가져오는 것을  사건(event)  이라 한다.
- 이산사건 시뮬레이션에서 시스템 상태는 어떤 것이 시작하는 액티비티의 시작이나 또는 어떤 것이 완료되는 액티비티 종료 때에만 변한다.
- 사건이 발생할 때, 모델의 상태는 다음의 4가지 방법으로 변할 수 있다.
① 하나나 그 이상의 변수의 값이 바뀌는 것
② 현재의 엔티티 개수가 바뀌는 것
③ 엔티티의 속성에 부여된 값이 1개 이상 바뀌는 것
④ 사건 목록을 통하여 엔티티 간에 존재하는 관계를 변화시키는 것.
- 시뮬레이션 시계를 진행시키기 위한 2가지 방식은  다음사건 시간 진행법과 고정시간 진행법이 있다.
- 고정시간 진행법은 시간단위를 1분으로 하는 고정된 시간만큼씩 시계를 진행시키므로 휴지 기간의 생략이 불가능하며 상당한 양의 처리시간을 소모한다.
- 다음사건 시간 진행법의 시뮬레이션 시계는 0으로 초기화되고 다음사건들 중 최초로 사건이 발생한 시간이 결정된다. 시뮬레이션 증가 시간이 일정하지 않으므로 가변시간 진행법이라고도 한다.
- 다음사건시간 진행법과 고정시간 진행법 비교



6장. 시뮬레이션 언어

- 크고 다양한 종류의  모델 시스템 에 대해 시뮬레이션 프로그램을 작성하는 일을 단순화시키기 위한 시뮬레이션 언어로는 GASP, DYNAMO, SLAM, SIMSCRIPT, GPSS 등이 있다.
- 최근에는 AweSim, ProModel, AIM, AUTOMOD 등의 언어가  애니메이션  등을 지원하며 더욱 강력해진 형태로 개발되어 나오고 있다.
- AweSim  은 시뮬레이션 언어인 SLAM II 의 최신 버전으로 A.Alan B. Pritsker, Jean J. O'Reily, David K. LaVal 등에 의하여 개발되었다.
- ProModel  은 Charley Harrell 박사에 의하여 1980년대 나온 시뮬레이션 전용언어이다. 사용하기가 쉽고 특히 그래픽 애니메이션이 뛰어나다. 이 언어는 제조공업, 물류, Business Reengineering, 제약분야 등에 활용된다.
- 시뮬레이션 언어로 프로그래밍 할 때의 장점은 프로그래밍 시간이 감소되고 모델링을 위한 자연스런 구조를 제공하며 수정과 오류검출이 쉽고 동적 기억장소 할당이 가능하다.
- 범용 고급언어의 장점은 대부분의 사용자들이 언어를 알고 있으며 모든 컴퓨터에서 이용이 가능하고, 효율적으로 작성된 프로그램인 경우 수행시간이 적게 들고 많은 융통성이 있다.
- 시뮬레이션 언어의 선택에 있어 고려해야 점은 컴퓨터시스템 상에서  언어의 이용가능성 ,  설치와 유지비용 , 수행할 시뮬레이션 연구 횟수 , 시뮬레이션 될 시스템의 형태, 언어의 문서화와 배우기 쉬운 정도, 컴퓨터 기억장소 요구량과 수행시간의 효율성, 언어의 유연성 및 능력(power) 사항이다.
- Automod 는 1982년 미국 오토 시뮬레이션社에서 개발된 3차원 전용 시뮬레이션 소프트웨어이다. 자동 창구, 컨베이어시스템(conveyer System), 무인 운반차 등의 각종 Movement 시스템이 기본적으로 제공이 되기 때문에 쉽게 시뮬레이션 모델을 만들고 이 모델을 통해서 시뮬레이션을 해볼 수 있다.



7장. 난수의 발생 및 검정

- 중앙이승법의 문제점은 난수가 0으로 수렴하고, 1개의 난수를 안다면 이후의 발생될 난수들이 결정되기 때문에 임의적이지 못하다.
- 대수적 방법을 이용하여 발생시키는 난수들은 모두가 이론적인 측면에서 보면 어느 정도 예측가능하고 완전하게 임의적이지 못하다는 공통적인 결점을 갖고 있다.
- 이론적으로 완전하지는 못하지만 몇 가지 통계적인 검정을 통과하면 시뮬레이션에 사용하여도 무방한 난수를 얻을 수가 있다. 이런 이유로 인해 우리가 컴퓨터에서 사용하는 난수를 의사난수 라고도 한다.

- 컴퓨터를 이용한 난수발생 시 바람직한 난수발생식의 성질은 다음과 같다.
① 발생된 숫자들은 [0,1) 범위에서 일양분포를 해야 한다.
② 상관관계가 없어야 한다.
③ 예측할 수 없어야 한다.
④ 난수의 발생속도가 빨라야 하고 많은 기억용량을 필요로 하지 않아야 한다.
⑤ 같은 난수들을 언제든지 발생시킬 수 있어야 한다.

- 합동법 Xi= aXi-1 + C (mod m) 여기서 c>0 이면 혼합식 합동법, c=0 이면 승산식 합동법이라고 한다.
- 합동법의 문제점은
① 모든 Xi는 m, a, c와 X0로 완전히 결정될 수 있어 구해진 Xi은 임의적이 아니다.
② 구해진 Ui가 유리수인 0, 1/m, 2/m,․․․, (m-1)/m 값만을 취할 수 있기 때문에 그 사이의 값들은 표현할 수 없다.
- 합동법에서 Xi 는 앞의 Xi -1에 의해서 만 좌우되기 때문에 0 ≤ Xi ≤ m-1값을 가지며 p≤m이다. p=m일 경우에 최대주기를 가진다.
- 혼합식 합동법은 c > 0 인 경우로 Xi=aXi-1 + C (mod m) 이 된다. c>0 이면 최대주기, 즉 p=m을 가질 수 있다.

[0,1)의 범위를 갖는 Ui들이 긴 주기와 높은 밀도를 가지기 위해서는 m의 값이 매우 클 필요가 있다. 또한 나눗셈을 하지 않는 게 좋으므로, m=2b 이 되도록 m값을 정하는 것이 좋다.
- 승산식 합동법은 c = 0 인 경우로 Xi = a•Xi-1 (mod m) 이다. c 가 없으므로 계산이 더 빠르다는 장점이 있지만 c = 0 이므로 최대주기는 가질 수 없으며, m=2b을 취하면 계산상 나눗셈을 피할 수 있으나 p ≤ 2b-2 임이 증명되었다.

- 카이제곱 검정 : 난수의 일양분포 성격을 검정하는 것이다. k의 값이 적어도 100이며 n/k값이 5이상이 되도록 구간 [0,1)을 k구간으로 나눈 뒤, n개의 난수 U1 , U2 , ․․․,Un 을 발생시킨다. Oj 를 j번째 구간에 있는 난수 Ui 들이 개수라고 하면 검정 통계량이다.


- 연속형 검정은 검정을 이차원 이상으로 확대한 것이다. 따라서 검정 통계량 (d)는 다음과 같이 주어진다.


- runs검정은 단지 독립성에 관한 검정을 다루므로 카이제곱 검정이나 연속형 검정을 하기 전에 runs 검정을 행하는 게 현명하다. 왜냐하면 카이제곱 검정이나 연속형 검정은 모두 주어진 데이터가 독립성을 보유하고 있다는 가정을 하기 때문이다.



8장. 확률변수의 발생 및 입력확률분포 선택

- 확률변수란 표본공간에서 실수로 가는 함수로 X로 표시하는데, 표본공간을 S, 실수를 R로 하여 X: S → R  로 표시할 수도 있다.
- 확률변수를 나타내기 위해 대문자를 사용하며, 그 확률변수의 값을 나타내기 위해서는 소문자를 사용한다. 만약 확률변수 X가 단지 셀 수 있는 값들만을 가질 때, 확률변수 X를 이산형 확률 변수라고 한다.
- 확률변수 X가 어떤 범위의 실수 B에 대해서도 값을 취할 수 있을 때, X를 연속형 확률 변수라고 한다.
- 확률분포로부터 확률변수를 발생시키는 알고리즘들 중 특정한 시뮬레이션 연구를 위하여 알고리즘을 선택할 때는 ① 요구되는 분포의 확률변수를 정확하게 발생시킬 수 있나
② 요구되는 저장능력과 실행시간이 효율적인가를 고려하여야 한다.

- 역변환은 역함수를 이용하는 것으로 다음의 알고리즘은 분포함수 F를 가지는 확률변수 X를 발생하게 된다.
① U[0,1)의 난수를 발생한다.
② X=F-1(U)로 놓고 되돌려 준다.

- 합성기법은 분포함수 F가 다른 분포함수들 F1, F2… 의 조합으로 표시될 수 있는 경우에 사용된다.
- 결합기법은 발생될 X가 < X=Y1 + Y2 +… + Ym > 와 같이 몇 개의 확률변수 Y1, Y2, … Ym 의 합으로 나타나는 경우에 사용된다. 이렇게 m개의 확률변수의 합으로 표시되는 X를 Yj의 m-겹 결합이라고 한다.
- 채택-기각방법이란 일정한 조건을 정해서 만족하면 채택하고 아니면 기각하는 방식으로   확률변수 를 발생시킨다. 필요한 확률변수의 수 보다 더 많은   난수 를 발생시켜야 한다는 문제점이 있다.
- 경험적인 분포는 주어진 데이터들로부터 이론적인 확률분포를 가정하기 어려운 경우에 사용하는 방법이다.


- 주어진 데이터를 이용해 입력 확률분포를 결정하는 방법은 다음과 같다.
[통계적인 기법을 사용하여 주어진 데이터에 대하여 어떤 이론적 확률분포가 적합한가를 선정한 후 선정된 분포의 모수들을 계산하고 적합도 방법을 통하여 검정한다.]

- 분포를 정의하는데 필요한 모수는 다음과 같다.
① 위치 모수는 분포가 가질 수 있는 값의 범위에 대한 x축의 위치를 나타내며 그 범위의 중간점 또는 하한 끝점 등이 있다.
② 규모 모수는 분포의 범위에 대한 측정규모(scale or unit)를 결정한다.
③ 형태 모수는 위치 및 규모 모수와는 달리 분포의 기본형태를 나타낸다.

- 연속형 분포를 선택하는 데 도움을 주는 3가지 발견적 기법은 다음과 같다.
① 점 통계량 : 확률분포의 가정을 위한 방법으로 어떤 연속형 또는 이산형 분포들은 그들의 모수의 함수 값으로 결정지어진다. 그 함수들 중의 하나인 분포의 분산계수(coefficient of variation)를 이용하는 방법이다. 이 방법은 쉽고 빠르게 분포에 대하여 정보를 얻을 수 있으나 통계적인 평가수단 등이 결여되어 그 신뢰성이 높지 못하다.
② 히스토그램은 주어진 데이터가 해당하는 분포의 확률밀도함수의 모양을 예측 하는 방법이다. 어떠한 분포에도 이용이 가능하고 작성이 간단하지만 구간의 선택과 그 넓이의 선정에 어려움이 있다.
③ 확률도는 비교하고자 하는 분포와의 분포함수를 예측.비교 하는 것이다. 그러나 확률도를 작성하기 전에 미리 어느 분포가 적합한가를 짐작하거나 형태 모수를 예측해야 하고, 또한 어떤 분포함수에 대해서는 역함수를 구하기가 어려운 점등의 단점도 있다.

- 이산형 분포의 선택하는 데 도움을 주는 2가지 발견적 기법은 다음과 같다. 이산형 분포의 경우에는 역함수가 잘 정의되지 않는 경우가 많기 때문에 확률도가 이용될 수 없다.
① 점 통계량 : 이산형 분포를 위해서는 여러 가능한 분포들을 비교하기 위하여 τ=Var(X)/E(X)가 사용된다.
② 막대그래프 : 주어진 데이터를 이용하여 가능한 이산값에 대하여 막대그래프를 그리고, 고려중인 분포의 이론적인 질량함수와 형태가 비슷한가를 비교한다. 히스토그램에서 필요한 주관적인 구간의 선정이 불필요하므로 히스토그램보다 더 유용하다.

- 관측자료들의 집합이 어느 이론적 분포로부터 구해진 기대치들과 크게 다르지 않다는 가정을 통계적으로 실험하는 것을 적합도 검정 이라고 한다.
- 카이제곱 검정 통계량의 식


- 카이제곱 검정의 적합도 검정을 위해서는 다음 사항들을 유의해야 한다.
① 상대 빈도수나 비율은 사용되지 않으며 실제 빈도수나 숫자만 사용된다.
② 각 구간에 대한 기대빈도는 5 이상이 되어야 한다. 만일 그보다 작으면 주위의 구간들을 합하여서 계산한다.
③ 자유도v = k - 1 - m

- Kolmogorov-Smirnov 검정은
① 이론적 확률분포로부터 얻은 누적확률분포와 관측자료로부터 얻은 누적 확률 분포를 비교 후
② 각 구간에서 이론치와 관측치의 절대값 차이가 가장 큰 값D를 찾고
③ 부록의 K-S 분포표에서 구한 기각점과 비교하여 검정한다.

- 표본의 수를 n이라 할 때 n ≥ 100인 경우 χ2 검정이 좋고 99 ≥ n ≥ 10인 경우는 K-S검정을 사용하는 것이 좋다.
카이제곱 검정검정에서는 각 구간의 빈도수가 5이상이 되도록 조정을 해 주어야 하지만, K-S 검정에서는 원래의 빈도수를 그대로 사용할 수 있으므로 표본의 크기가 작은 경우 보다 강력하다.
표본의 크기가 10 이하인 경우는 Cramer-Von Mises검정 방법이 적당하다.