PURPOSE: random draws from the beta(a,b) distribution -------------------------------------------------------------- USAGE: rnd = beta_rnd(n,a,b) where: n = size of the vector of draws a = beta distribution parameter, a = scalar b = beta distribution parameter b = scalar NOTE: mean = a/(a+b), variance = ab/((a+b)*(a+b)*(a+b+1)) -------------------------------------------------------------- RETURNS: n-vector of random draws from the beta(a,b) distribution -------------------------------------------------------------- SEE ALSO: beta_d, beta_pdf, beta_inv, beta_rnd --------------------------------------------------------------
0001 function rnd = beta_rnd (n, a, b) 0002 % PURPOSE: random draws from the beta(a,b) distribution 0003 %-------------------------------------------------------------- 0004 % USAGE: rnd = beta_rnd(n,a,b) 0005 % where: n = size of the vector of draws 0006 % a = beta distribution parameter, a = scalar 0007 % b = beta distribution parameter b = scalar 0008 % NOTE: mean = a/(a+b), variance = ab/((a+b)*(a+b)*(a+b+1)) 0009 %-------------------------------------------------------------- 0010 % RETURNS: n-vector of random draws from the beta(a,b) distribution 0011 %-------------------------------------------------------------- 0012 % SEE ALSO: beta_d, beta_pdf, beta_inv, beta_rnd 0013 %-------------------------------------------------------------- 0014 0015 % written by: 0016 % James P. LeSage, Dept of Economics 0017 % University of Toledo 0018 % 2801 W. Bancroft St, 0019 % Toledo, OH 43606 0020 % jlesage@spatial-econometrics.com 0021 0022 0023 if (nargin ~= 3) 0024 error('Wrong # of arguments to beta_rnd'); 0025 end; 0026 0027 if any(any((a<=0)|(b<=0))) 0028 error('Parameter a or b is nonpositive') 0029 end 0030 0031 a1n = gamm_rnd(n,a,1); 0032 a1d = gamm_rnd(n,b,1); 0033 rnd = a1n./(a1n+a1d); 0034