*!version 1.1.1 2000 Joseph Hilbe /Thomas Steichen added noncentrality feature 17May00 * version 1.0.0 1993 Joseph Hilbe (sg44: STB-28) * Chi-square distribution random number generator (optional noncentral) * Example: rndchi 1000 4 3 [set obs 1000; 4 is the degrees of freedom; * 3 is the noncentrality ] program define rndchi version 3.1 set type double cap drop xc qui { local cases `1' set obs `cases' mac shift local df `1' mac shift local lambda `1' if "`lambda'" != "" { if `lambda' < 0 { di in re "noncentrality must be non-negative" exit 125 } local labl = "noncentral " local delta = sqrt(2 * `lambda' / `df') } else { local delta = 0 } tempvar ran1 noi di in gr "( Generating " _c local i=1 gen `ran1'=0 while `i'<=`df' { replace `ran1' = `ran1'+ (invnorm(uniform()) + `delta')^2 local i=`i'+1 noi di in gr "." _c } gen xc = `ran1' noi di in gr " )" noi di in bl "Variable " in ye "xc " in bl "created." lab var xc "`labl'Chi-square random variable" set type float } end