Home > . > beta_rnd.m

beta_rnd

PURPOSE ^

PURPOSE: random draws from the beta(a,b) distribution

SYNOPSIS ^

function rnd = beta_rnd (n, a, b)

DESCRIPTION ^

 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
--------------------------------------------------------------

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

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

Generated on Fri 16-Jun-2006 09:09:06 by m2html © 2003