Sampling

從狄利克雷多項式採樣

  • April 9, 2015

如何從 Dirichlet 多項式分佈中採樣。一個有這個pmf的:

http://en.wikipedia.org/wiki/Dirichlet-multinomial_distribution#For_a_multinomial_distribution_over_category_counts

自從

積分錶示意味著是的邊際. 生成因此產生於然後生成有條件的. 這意味著生成機制是

  1. 產生, 這分佈
  2. 產生, 這分佈

希望這兩個步驟都很簡單。

例如,這裡是對應於上述的 R 命令:

k=5  # dimension of the problem
n=75 # sample size
alpha=runif(k) # value of alpha, here chosen at random
p=rgamma(k,alpha) # pre-simulation of the Dirichlet
y=sample(1:k,n,prob=p/sum(p),rep=TRUE) # Multinomial
x=sum(y==1)
for (i in 2:k) x=c(x,sum(y==i))

或者,當使用 rmultinom 時:

x=rmultinom(1,n,p)

舉個例子

> alpha
[1] 0.2216704 0.6642411 0.2528082 0.6309828 0.6942128
> p/sum(p)
[1] 0.02193043 0.07335277 0.23146885 0.00250276 0.67074519
> x
[1]  1  6 15  0 53

引用自:https://stats.stackexchange.com/questions/145530

comments powered by Disqus