[Bayes] Hist & line: Reject Sampling and Importance Sampling

 吻合度蠻高,但不光滑。html

> L=10000
> K=135/64
> x=runif(L) > ind=(runif(L)<(20*x*(1-x)^3/K)) > hist(x[ind],probability=T, +      xlab="x",ylab="Density",main="")

/* 應用了平滑數據的核函數 */ > d=density(x[ind],from=0,to=1)  // 只對標記爲true的x作統計 --> 核密度估計 > lines(d,col=4)  // (BLUE)

 

> xx=seq(0,1,length=100) > lines(xx,20*xx*(1-xx)^3,lwd=2,col=2)  //lwd: line width, col: color number (Red)

 

API DOC: https://stat.ethz.ch/R-manual/R-devel/library/stats/html/density.html算法

參見:函數

http://blog.csdn.net/yuanxing14/article/details/41948485 基於核函數的目標跟蹤算法 (貌似淘汰的技術)spa

https://www.zhihu.com/question/27301358/answer/105267357?from=profile_answer_card.net

 

 

 Importance Sampling (Green line) 更爲光滑:code

> L=10000
> K=135/64
> x=runif(L) > ind=(runif(L)<(20*x*(1-x)^3/K)) > hist(x[ind],probability=T, xlab="x",ylab="Density",main="") > 
> d=density(x[ind],from=0,to=1) > lines(d,col=4) > 
> y=runif(L) > w=20*y*(1-y)^3               // 可見,權重大小與實際分佈吻合。
> W=w/sum(w)                 // 每一個x軸的sample point的權重值W。 > d=density(y,weights=W,from=0,to=1) > lines(d,col=3) > 
> xx=seq(0,1,length=100) > lines(xx,20*xx*(1-xx)^3,lwd=2,col=2)

 

不管是拒絕抽樣仍是重要性採樣,都是屬於獨立採樣,即樣本與樣本之間是獨立無關的,這樣的採樣效率比較低,htm

如拒絕採樣,所抽取的樣本中有很大部分是無效的,這樣效率就比較低,MCMC方法是關聯採樣,即下一個樣本與這個樣本有關係,從而使得采樣效率高。blog

[Bayes] dchisq: Metropolis-Hastings Algorithmget

[Bayes] Metroplis Algorithm --> Gibbs Samplingit

相關文章
相關標籤/搜索