1、matlab自帶抽取隨機數的函數
注:只列舉各個函數名字,具體各個函數的用法可用help查看。
(1)正態分佈隨機數:randn(),normrnd(), mvnrnd(); 其中最後一個用於抽取聯合正態分佈的隨機數。
(2)均勻分佈隨機數:rand()
(3)beta分佈隨機數: betarnd() - Beta random numbers.
(4)二項分佈隨機數:binornd() -Binomial random numbers.
(5)卡方分佈隨機數:chi2rnd() -Chi square random numbers.
(6)指數分佈隨機數:exprnd() -Exponential random numbers.
(7)極值分佈隨機數:evrnd() - Extreme value random numbers
frnd - F random numbers.
gamrnd - Gamma random numbers.
geornd - Geometric random numbers.
gevrnd - Generalized extreme value random numbers.
gprnd - Generalized Pareto inverse random numbers.
hygernd - Hypergeometric random numbers.
iwishrnd - Inverse Wishart random matrix.
johnsrnd - Random numbers from the Johnson system of distributions.
lognrnd - Lognormal random numbers.
mhsample - Metropolis-Hastings algorithm. 可用mhsample()抽取馬爾科夫鏈,即MCMC抽樣可採用這個函數。
mnrnd - Multinomial random vectors.
mvnrnd - Multivariate normal random vectors.
mvtrnd - Multivariate t random vectors.
nbinrnd - Negative binomial random numbers.
ncfrnd - Noncentral F random numbers.
nctrnd - Noncentral t random numbers.
ncx2rnd - Noncentral Chi-square random numbers.
normrnd - Normal (Gaussian) random numbers.
pearsrnd - Random numbers from the Pearson system of distributions.
poissrnd - Poisson random numbers.
randg - Gamma random numbers (unit scale).
random - Random numbers from specified distribution.
randsample - Random sample from finite population.
raylrnd - Rayleigh random numbers.
slicesample - Slice sampling method. (MCMC中的切片抽樣方法)
trnd - T random numbers.
unidrnd - Discrete uniform random numbers.
unifrnd - Uniform random numbers.
wblrnd - Weibull random numbers.
wishrnd - Wishart random matrix.
參考文獻:[MATLAB中統計分析函數]http://wenku.baidu.com/link?url=fxtUOBzUiRwhPl0JD1H8gt_1Gce_YqTxAYWct-G_pehbkRIZYKTVo508rCKHi1OGvqq3M6QYSyRx43hZ5QCG3zSofx80o2wxLxzcfWsJcq7
2、MCMC原理
主要討論兩種形式的MCMC:Metropolis-Hastings 和Gibbs抽樣。
先理解MCMC中的兩種思想:Monte Carlo 積分和Markov chains。
一、Monte Carlo Integration
概率統計推斷中許多問題需要計算複雜的積分或者在大的結果空間內求和。如計算函數
若
The general idea of Monte Carlo integration is to use samples to approximate the expectation of a complex distribution.(蒙特卡洛積分的一般思想是用抽樣的樣本矩近似複雜分佈的期望)
一般來說,隨着增加抽樣量
二、Markov chains
A markov chain is a stochastic process where we transition from one state to another state using a simple sequential procedure.設起始狀態爲
產生T個狀態的Markov鏈的步驟如下:
1. Set
2. Generate a initial value
3. Repeat
t=t+1
sample a new value
set
4. Until
下面重點介紹MCMC,討論三種方法Metropolis,Metropolis-Hasting,Gibbs sampling。
MCMC關鍵的兩個分佈是target distribution和proposal distribution。MCMC的目的就是抽target distribution的樣本。
Metropolis算法
Metropolis是MCMC所有方法中最簡單的,是Metropolis-Hastings的一種特殊情形,proposal分佈需要對稱(
算法步驟:
1. Set
2. Generate a initial value
3. Repeat
Generate a proposal
Evaluate the acceptance probability
Generate a
If
4.Until
注意給定的proposal distribution 實際上是個條件分佈。從接受率公式可看出,target distribution可以是unnormalized。
Metropolis-Hastings算法
Metropolis-Hastings算法(MH)是Metropolis算法的generalized version。 算法步驟一樣,但是接受率需改爲
proposal distribution的選取原則
可以看出,在Metropolis算法和MH算法中,proposal distribution起到和很重要的作用。proposal distribution原則上可以任意選擇,常見有兩種簡單方式,一種是隨機遊動鏈,新值
MH 用於多元抽樣
兩種策略,blockwise updating和componentwise updating. 本文重點介紹後一種。因爲對第一種尋找合適的高維proposal 分佈比較難。另一個是拒絕率往往會很高。
下面是兩維componentwise MH sampler steps:
1. set
2. Generate an initial value
3 Repeat
Generate a proposal
Evaluate the acceptance probability
Generate a
If
Generate a proposal
Evaluate the acceptance probability
Generate a
If
4. Until
Gibbs sampling
在Gibbs抽樣中,沒有rejecttion,因此提高了計算效率。另一個優勢是沒必要去尋找合適的proposal distribution。但是我們需要知道多元分佈的條件分佈,即the Gibbs sampler can only be applied in situations where we know the full conditional distributions of each component in the multivariate distribution conditioned on all other components.
二元情況的Gibbs sampling步驟:
1. set
2.Generate an initial value
3. Repeat
Sample
Sample
4. Until
參考文獻:[Computational statistics with matlab]http://psiexp.ss.uci.edu/research/teachingP205C/205C.pdf