How to sample Multinomial Distribution
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Mike Nguyen
am 16 Dez. 2017
Kommentiert: Kaushik Lakshminarasimhan
am 17 Dez. 2017
Suppose I have the X data with dimension(VxN), and probability rho(vkj) with k is latent variable How could I sample Matrix (Av1j,...,AvKj)follows Multinomial (Xvj,rho(vkj))
0 Kommentare
Akzeptierte Antwort
Kaushik Lakshminarasimhan
am 17 Dez. 2017
It is difficult to read your question. Please use underscore to separate your variable names from subscripts. Here's a solution with nested loops. Perhaps you can find a way to vectorise it if the size of X is prohibitively large.
V = 50; N = 10; K = 5;
X = 100*ones(V,N); % assuming 100 trials (sample size)
rho = rand(V,N,K);
rho = rho./repmat(sum(rho,3),1,1,K);
for v = 1:V
for j = 1:N
A(v,:,j) = mnrnd(X(v,j),squeeze(rho(v,j,:))); % your A_vkj
end
end
2 Kommentare
Kaushik Lakshminarasimhan
am 17 Dez. 2017
Because mnrnd expects the second argument to be a 1xK or Kx1 vector whereas rho(v,j,:) is 1x1xK. squeeze converts the 1x1xK vector to Kx1 by removing the singleton dimension.
Weitere Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!