1. 기각 샘플링(Rejection-Sampling)

(1) 개념

(2) 알고리즘

Untitled

(3) 이봉정규분포 시뮬레이션

$$ P(x) = \frac{0.3}{1.5*\sqrt{2\pi}}e^{-\frac{1}{2}(\frac{x+3}{1.5})^2} + \frac{0.7}{1.5*\sqrt{2\pi}}e^{-\frac{1}{2}(\frac{x-5}{1.5})^2} $$

import math
import numpy as np
import scipy as sp
import matplotlib.pyplot as plt

def p(x_star):
    return 0.3/(1.5*math.sqrt(2*math.pi))*math.exp(-(1/2)*(x_star+3)**2) + 0.7/(1.5*math.sqrt(2*math.pi))*math.exp(-(1/2)*(x_star-5)**2)

sample_size = 5000
accepted_u = []
accepted_x = []
a, b, C = -8, 12, 4

while len(accepted_u) < sample_size:
    x_star = np.random.uniform(a, b, 1)[0]
    u = np.random.uniform(0, 1, 1)[0]
    if u <= p(x_star)/(C*sp.stats.uniform.pdf(x_star, a, b-a)):
        accepted_u.append(u)
        accepted_x.append(x_star)

plt.scatter(accepted_x, accepted_u)
plt.show()

Untitled

2. 중요도 샘플링(Importance Sampling)

(1) 개념

(2) 예시