Sampling
從狄利克雷多項式採樣
如何從 Dirichlet 多項式分佈中採樣。一個有這個pmf的:
自從
積分錶示意味著是的邊際. 生成因此產生於然後生成有條件的. 這意味著生成機制是
希望這兩個步驟都很簡單。
例如,這裡是對應於上述的 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