studies

3.2 The Inverse Transform Method.

Abokadoh 2023. 10. 17. 22:56

1. Continuous case 


Continuous case
에서 역변환 방법에 대해서 공부해보자.

 

이번에 공부할 부분은 inverse transform method(역변환 방법)를 사용하여

으로부터 random sample을 simulate하는 것이다.

 

과정을 먼저 읊자면,

1. pdf의 cdf를 구한다.

2. cdf를 inverse transform(역변환)한다.

3. [0,1] ~ U의 샘플을 역변환함수에 인수로 넣는다.

4. 반환된 값이 pdf에 나온 값이 맞는지 확인한다.

 

pmf를 적분하여 cdf를 구하면 cdf는 다음과 같고, cdf를 역변환하면 u^1/3이 나온다는 것을 확인할 수 있다.

다음 균등분포에서 추출한 1000개의 샘플을 인수로하여 cdf의 역변환 함수에 넣는다.

 

반환된 값으로 histogram을 그리면 

우리가 구하고자 했던 pdf의 그래프와 히스토그램의 flow가 중첩된 것으로 보인다.

 

다음은 지수분포를 따르는 난수를 구해보자. 

 

X가 모수 lambda를 갖는 지수분포를 따른다 하자.

 

수리통계에서 배운 내용이지만, 지수분포의 cdf는 

위와 같다. 

 

이를 역변환 하면 

하지만 우리는 1-u와 u가 같은 분포에서 온 값이라는 사실을 알 수 있다. 왜냐면 u는 [0.1]~U에서 나온 값이기 때문이다.

이 사실로 x = log(u)/lambda 이라 할 수 있다.

 

2. Discrete Case

inverse transform method(역변환 방법)은 이산형 분포에서도 적용될 수 있다.

 

우선

1. [0,1]~U에서 u를 무작위로 선택한다. 

2. Fx(x)에서 u를 찾는다. 즉, Fx(x_i-1)<u<Fx(x_i)를 만족하는 구간을 찾는 것이다.

 

Bernoulli(p=0.4)분포에서 랜덤샘플을 생성해보자. 

Fx(0)= fx(0) = 1 - p 라하고 , Fx(1) = fx(1) = 1이라 하자.

 

P(0) = 0.4 P(1) =0.6이므로, Fx(0)= 0.6, Fx(1) = 1이 될 것이다. 즉 Fx(x) >=0.6 이면 x는 1이다. 반대로 Fx(x) <0.6이면 x는 항상 0이다. 이 말은 

F^-1(u>=0.6) = 1, F^-1(u<0.6) =0 과 같다.

 

따라서 균등분포 U에서 추출한 u를 F의 역변환함수에 넣으면  Ber(p=2)의 분포에서 샘플링이 된다는 것을 알 수 있다.