从SAS中的正态分布中采样

时间:2014-07-11 18:03:28

标签: sas

假设我知道镇上男性的平均年龄是50岁。标准差是10.我如何使用SAS从这个分布中抽取年龄?

2 个答案:

答案 0 :(得分:1)

在数据步骤中,您可以使用x = rand('NORMAL',50,10)。 SAS / IML具有不同的语法。您可能希望使用call streaminit设置随机种子。

答案 1 :(得分:0)

您可以使用rand函数生成具有该均值/标准的随机数据:

%let numsampled=10;
data ages;
 call streaminit(7);  *initialize the seed;
 do id = 1 to &numsampled;
     age = rand('Normal',50,10);    
     output;
 end;
run;
proc print data=ages;
run;

如果您想进行更复杂的抽样,例如生成集合,然后使用替换进行抽样,则可以先生成N大小的填充,然后使用proc surveyselect从该填充中抽取。