I'm sampling a DirichletDistribution
like so:
n = 5000;
par1 = Table[1./n,n];
data1 = RandomVariate[DirichletDistribution[par1],50];
(* This takes about 1.5 seconds *)
par2 = Table[1.,n];
data2 = RandomVariate[DirichletDistribution[par2],50];
(* This takes about 0.10 seconds *)
If I play with the value of the parameters, I find that giving values > 1 radically improves the performance. Any clues on how to circumvent this?
EDIT : The reason why I'm comparing par1 and par2 is that I was hoping for a shortcut following this kind of reasoning (although I know that this is false):
DirichletDistribution[n*par] / n
AbsoluteTiming[]
? $\endgroup$par1
andpar2
have the same means, they have different variances and are therefore different distributions. Why would you choose one over the other based on timing? (If they were the same distribution, then I would understand the concern about timing.) $\endgroup$