高斯分布的PDF:
$f(x)= \frac{1}{\sigma\sqrt{2\pi}} e^{-\frac{(x-\mu)^{2}}{2\sigma^{2}}}$
其中$\mu$是期望,$\sigma^2$為標准方差,記為$X \sim \mathcal{N}(0,0.5)$
*****樣本容量無限增大,分組的組距無限縮小,那么頻率分布直方圖,就會無限接近於一條光滑曲線,即總體密度曲線PDF*************
如:
給定一個分布$p(z)$,對該分布進行拒絕采樣,首先定義個proposal distribution,定義為q(z), 這個分布是比較容易實現的,如高斯分布、均勻分布.
首先從這個簡單的分布采樣一些點出來,我們這里假設從一個高斯分布中采樣點,$\textit{X} \sim \mathcal{N}(1.4,1.2)$, 代碼實現:
1 z = np.random.normal(loc = 1.4,scale = 1.2, size = size) // size = 1e7
做頻率直方圖:
之后將采樣的點,帶入到q(z)中,得到一些采樣點對應的density,即$q(X_{i})$,相當於通過采樣的點,再反過來刻畫出PDF,做頻率直方圖:
qz = 1/(np.sqrt(2*np.pi)*sigma)*np.exp(-0.5*(z-1.4)**2/sigma**2)
之后以x軸對每個采樣點畫一條線,從0到這個采樣點對應的q(x)的值這個線進行均勻采樣,$a \sim Uniform(0,q(X_{i}))$,很明顯如果采樣點對應的p(x)越小,通過這樣得到的均勻分布的采樣點就越不可能
落在p(x)的下方,反之亦然:
k = 2.5 //k表示把整個分布抬高,使得整個proposal 分布能夠cover掉這個p(x) u = np.random.uniform(low = 0, high = k*qz, size = size) pz = 0.3*np.exp(-(z-0.3)**2) + 0.7* np.exp(-(z-2.)**2/0.3)
上面的M就是代碼中的k,結果就是如果得到的u小於對應的p(x)的值,則被接收,否則被拒絕。
****需要主要的是*******
1. 接受率=p(x)/Mq(x) M是來控制均勻分布的高度
2.簡單的分布q(x)總是覆蓋想要得到的分布嗎?我們可以將M設置為非常大的number,Mq(x)可以接收的點,就會很少,大多數的點都被拒絕了,接受率非常小,不夠高效, 所以q(x)的選擇非常重要.
3.p(x)一定要cover掉q(x)