楼主: 汪政元
3425 2

[SAS] SAS几种常见抽样方法的简单实现 [推广有奖]

  • 3关注
  • 7粉丝

已卖:352份资源

硕士生

74%

还不是VIP/贵宾

-

威望
0
论坛币
122 个
通用积分
5.1500
学术水平
12 点
热心指数
16 点
信用等级
8 点
经验
755 点
帖子
77
精华
0
在线时间
259 小时
注册时间
2012-10-14
最后登录
2024-2-3

楼主
汪政元 在职认证  发表于 2015-2-13 17:36:33 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

PROC SURVEYSELECT一般形式+分层等比例随机抽样+分层不等比例



      在医学研究中大多数情况无法对所有整体进行全面研究,往往从中抽取一个具有代表性的样本进行分析,而随机抽样是是确定样本时一个应用最为普遍也是最为简单的方法。


包括:单纯随机抽样(simple random sampling)、系统抽样(systematic sampling)、分层抽样(stratified sampling)、整群抽样(clustering sampling),相关概念见有关书籍,在这里利用SAS学习proc  surveyselect 过程的用法。




1、PROC SURVEYSELECT一般形式:




   

  1. Proc surveyselect data=<原数据集>
  2.             Method=<srs|sys|urs|  /*抽样方法选择*/
  3.             out=<抽取样本存放的数据集>
  4. n=<抽取数量>(or samprate=抽样比例)
  5. seed=n;
  6.            strata <指定分层变量>;
  7.            id <指定抽取的样本所保留的源数据集变量>;
  8. run;
复制代码

举例:建立数据集a1000个数据:data a ;do i = 1 to 1000 ;output ;end ;run ;


1简单无重复随机抽样,从中抽取100个数据

proc surveyselect data = a method = srs n = 100 out= b seed = 25070419 ;run ;

2、简单随机抽样,按10%的比例抽取:

proc surveyselect data =a method=srs samprate=0.1  out=b seed=25070419;run ;

3、系统抽样:在 1000 个数据中每隔 10 个抽取 1 个:

proc surveyselect  data = a  method = sys  sampsize =100 out = b seed = 25070416 ;run ;



2分层等比例随机抽样举例



  1. proc sort data=test2;
  2. by 分层变量;
  3. run; /**先用分层变量对总体样本进行排序/
  4. proc surveyselect  data=test2 out=results2 method=srs samprate=0.1;
  5. strata 分层变量;
  6. run;  /*根据分层变量等比例从总体中抽取样本*/
复制代码


3、分层不等比例抽样举例;





1)手工设置抽样比例或者抽样数

  1. proc sort data=test3;
  2. by 分层变量;
  3. run;                                                                   /**先用分层变量对总体样本进行排序/
  4. proc surveyselect  data=test3 out=results3 method=srs
  5. samprate=(0.1,0.3,0.5,0.2);                           /*根据分层情况设置每一层要抽取的比例*/
  6. strata 分层变量;
  7. run;                                                                /*根据分层变量不等比例从总体中抽取样本*/
  8. proc surveyselect  data=test3 out=results3 method=srs
  9. n=(30,20,50,40);                           /*根据分层情况设置每一层要抽取的样本数*/
  10. strata 分层变量;
  11. run;            
复制代码


2)根据抽样表进行不等比例抽样

  1. proc sort data=test3;
  2. by 分层变量;
  3. run;                                                                   /**先用分层变量对总体样本进行排序/
  4. proc surveyselect  data=test3 out=results3 method=SRS
  5. samprate=samp_table;                           /*通过抽样比例数据集进行抽样,samp_table数据集中要包括分层变量 以及每一分层对应的抽样比例或者数量,如果按比例抽样变量必须用_rate_来命名抽样比例,如果是按数量抽样必须用_nsize_来命名抽样数量*/
  6. strata 分层变量;
  7. run;            
复制代码



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:抽样方法 surveyselect stratified Systematic Clustering 样本 simple 代表性 医学 样本 simple 代表性 医学

已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
niuniuyiwan + 60 + 60 + 5 + 5 + 1 精彩帖子

总评分: 经验 + 60  论坛币 + 60  学术水平 + 5  热心指数 + 5  信用等级 + 1   查看全部评分

本帖被以下文库推荐

沙发
fantuanxiaot 发表于 2015-2-13 19:39:43

藤椅
niuniuyiwan 在职认证  发表于 2015-8-12 19:08:46
好帖,感谢分享

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-28 15:43