|
分层随机抽样也是一种常用的抽样方法,可以分为等比例分层随机抽样和不等比例分层随机抽样,以下是这两种抽样方法的SAS编程简单实现过程!
先生成一个用于抽样的数据集(如果已经有数据集,就不需要生成数据集了,直接跳到下一步):
- data all;
- input name$ sex$ age$ height weight;
- cards;
- a F 13-14 56.5 84
- b F 13-14 65.3 98
- c F 13-14 56.5 84
- d F 13-14 65.3 98
- e F <12 59.8 84.5
- f F <12 51.3 50.5
- g F <12 56.3 77
- h F <12 59.8 84.5
- i F <12 51.3 50.5
- j F <12 56.3 77
- k F >15 62.8 102.5
- l F >15 62.5 112.5
- m F >15 64.3 90
- n F >15 66.5 112
- o F >15 62.8 102.5
- p F >15 62.5 112.5
- q F >15 64.3 90
- r F >15 66.5 112
- s M 13-14 62.5 84
- t M 13-14 62.5 84
- u M <12 57.3 83
- v M <12 59 99.5
- w M <12 64.8 128
- x M <12 57.5 85
- y M <12 57.3 83
- z M <12 59 99.5
- aa M <12 64.8 128
- bb M <12 57.5 85
- cc M >15 69 112.5
- dd M >15 63.5 102.5
- ee M >15 72 150
- ff M >15 67 133
- gg M >15 66.5 112
- hh M >15 69 112.5
- ii M >15 63.5 102.5
- jj M >15 72 150
- kk M >15 67 133
- ll M >15 66.5 112
- ;
- run;
复制代码
按照分层变量,对数据集进行排序:
- proc sort data=all out=new1;
- by sex age; /*这里选择先按性别分层之后,再按照年龄进行分层*/
- run;
复制代码
等比例分层随机抽样:
- proc surveyselect
- data=new1 noprint method=srs rate=0.5 out=new2;
- strata sex age;
- run;
复制代码
不等比例分层随机抽样:
- proc surveyselect
- data=new1 noprint method=srs rate=(0.5,0.8,0.3,0.5,0.7,0.1) out=new3;
- strata sex age;
- run;
复制代码 |
|