MATLAB: Draw observations from Dagum distribution

dagum

Any one can help with the code for drawing observations from Dagum distribution with parameters (a,b,p). Note that dagum is known also as Inverse Burr distribution and has the following relation to singh-maddala. if X is distributed as Dagum (a,b,p), then 1/x is distributed as Singh-Maddala (a,1/b,p), Also note that Singh-Maddala is another name for Burr 12 distribution.
What I know is that we draw from Singh-Maddala in Matlab as:
x=random('burr', a, b, p,n,1); where n is the number of observations.
Appreciate your help!!

Best Answer

According to the Wikipedia site
https://en.wikipedia.org/wiki/Dagum_distribution
the cumulative distribution function of the Dagum distribution is:
F(x;a,b,p) = (1+(x/b)^(-a))^(-p)
Accordingly, taking the inverse of this and substituting rand(n,1) for F(x;a,b,p) gives:
x = b./((1./rand(n,1).^(1/p))-1).^(1/a);
This should produce samples with the Dagum distribution with parameters a, b, and p.