Rick, I reviewed your documentation and still have some confusion. I have pasted my codeing below. I am trying to create a model that is based off of literature regarding the US population's mean on height and weight. However, still after my codeing, my distribution on the weight, is one sided. libname save "libname location here"; %let numsims=10000; data sim1; input x; datalines; . ; run; data sim1; set sim1; do i=1 to &numsims; *change this to desired number of simulations (e.g. 10,000); output; end; drop x; run; data sim1; set sim1; id=i; race_ethnicity_rand=rand('UNIFORM'); if race_ethnicity_rand le 0.8 then race_ethnicity="A"; else if race_ethnicity_rand le 5.3 then race_ethnicity="B"; else if race_ethnicity_rand le 17.6 then race_ethnicity="C"; else if race_ethnicity_rand le 82.7 then race_ethnicity="D"; else if race_ethnicity_rand le 98.5 then race_ethnicity="E"; else race_ethnicity="X"; systolic_rand=rand('UNIFORM'); if systolic_rand le .286 then systolic=round(140+39*rand('UNIFORM')); else systolic=round(90+39*rand('UNIFORM')); gender_rand=rand('BERNOULLI',0.5); if gender_rand=0 then gender="M"; else gender="F"; **need to check the gender distribution; age10_rand=rand('UNIFORM'); **check distribution of age ranges below; if age10_rand le .05 then age10=0; *5%; else if age10_rand le .15 then age10=1; *10%; else if age10_rand le .35 then age10=2; *20%; else if age10_rand le .55 then age10=3; *20%; else if age10_rand le .74 then age10=4; *19%; else if age10_rand le .84 then age10=5; *10%; else if age10_rand le .93 then age10=6; *9%; else if age10_rand le .97 then age10=7; *4%; else age10=8; *3%; age=10*age10 + floor(10*rand('UNIFORM')); if age ge 20 then do; *if gender="M" then weight_lbs=round(rand('NORMAL',189.8,59.1),1); *else if gender="F" then weight_lbs=round(rand('NORMAL',162.9,65.6),1); if gender="M" then height_inches=round(rand('NORMAL',69.2,6.6),1); else if gender="F" then height_inches=round(rand('NORMAL',63.8,6.6),1); end; if age ge 20 then do; if gender="M" then do; weight_lbs=max(100,round(rand('NORMAL',189.8+5*(height_inches-69.2),59.1),1)); end; else if gender="F" then do; weight_lbs=max(90,round(rand('NORMAL',162.9+5*(height_inches-63.8),65.6),1)); end; end; proc print data=sim1; run;
... View more