2022年各种常见随机化的SAS实现 .pdf

上传人:C****o 文档编号:40225599 上传时间:2022-09-08 格式:PDF 页数:7 大小:115.94KB
返回 下载 相关 举报
2022年各种常见随机化的SAS实现 .pdf_第1页
第1页 / 共7页
2022年各种常见随机化的SAS实现 .pdf_第2页
第2页 / 共7页
点击查看更多>>
资源描述

《2022年各种常见随机化的SAS实现 .pdf》由会员分享,可在线阅读,更多相关《2022年各种常见随机化的SAS实现 .pdf(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、各种常见随机化的SAS实现在前两期的讲座中我们介绍了实验设计的三要素与四原则1,本期将结合实例重点阐述实验设计中如何实现各种常见的随机化。随机化体现在如下三个方面2:抽样随机:每一个符合条件的实验对象参加实验的机会相同,即总体中每个个体有相同的机会被抽到进入样本之中。它保证所得到的样本具有代表性,使实验结论具有普遍意义;分组随机:每个实验对象分配到不同组(通常为对照组、不同处理组)的机会相同。它保证大量难以控制的非处理因素在对比组间尽可能均衡一致,以提高各组间的可比性;实验顺序随机:每个受试对象先后接受处理的机会相等,它使实验顺序的影响也达到均衡。本期主要就如何用SAS实现随机抽样和随机分组进

2、行阐述。已知编号为1-20 的 20 例病人的基本信息见表1。本文将以表1 数据为例,阐述随机化的 SAS实现。表 1 20 例病人的基本信息病人编号1 2 3 4 5 6 7 8 9 10 性别F F M F F F M M M M 年龄60 64 37 57 41 31 60 64 58 16 病人编号11 12 13 14 15 16 17 18 19 20 性别M M F F F F F M F F 年龄58 63 23 37 20 33 39 40 49 42 1.随机抽样目前在 SAS/STAT 模块中,有一个与调查设计有关的SURVEYSELECT过程。该过程可用来实现各种随机抽

3、样,包括:单纯随机抽样、系统随机抽样、分层抽样、无限随机抽样(有替换)、序贯随机抽样、以及按规模大小成比例概率抽样(PPS)等。1.1 简单随机抽样的实现简单随机抽样,就是从总体中不加任何分组、划类、排队等,完全随机地抽取受试对象。特点是每个个体(样品)被抽中的概率相等,各样品之间完全独立,彼此间无一定的关联性和排斥性。简单随机抽样是其他各种抽样形式的基础。通常只是在总体样品之间差异程度较小和数目较少时,采用这种方法。例 1:从编号为1 到 20 的人中用简单随机化的方法抽取10 名作为受试者。用 SAS9.1.3 实现简单随机抽样的程序如下:data a;input id sex$age;c

4、ards;1 F 60 2 F 64,20 F 42;run;ods html;proc surveyselect data=a method=srs n=10 out=b;run;proc print data=b;run;ods html close;程序说明:首先,创建SAS 数据集名为a。然后,调用SURVEYSELECT过程进行随机抽样,并指定一些抽样选项,其中“data=”指定输入数据集,用于指定抽样框;“method=”名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 7 页 -用于指定随机抽样的方法,srs 表示单纯随机抽样;“n=”用于指定抽样大小(此处可以用“r

5、ate=”来替换,用于指定抽样率);“out=”用于指定输出数据集,它包含所有被抽到的样本(可以添加选项“rep=number”来规定重复抽样的次数,如“rep=2”命令系统同时抽取 2 份样本)。最后用 PROC PRINT 把输出数据集b 在输出窗口中显示出来。命令 ods html和 ods html close 用于把程序运行结果以网页格式保存下来。输出结果如下:Selection Method Simple Random Sampling Input Data Set A Random Number Seed 937359000 Sample Size 10 Selection Pr

6、obability 0.5 Sampling Weight 2 Output Data Set B 以上是本次单纯随机抽样的基本信息,抽样方法是简单随机抽样(Simple Random Sampling)。由于未指定SEED=选项来规定初始种子,来产生随机数字流。系统使用默认种子作为初始种子(SEED=937359000),如果将来想重新抽取与本次完全相同的样本,可以在抽样时指定同一种子。抽取的样本大小是10。抽样概率(Selection Probability)是指样本被抽中的概率,此处为0.5。对于无分层的单纯随机抽样,样本的抽样概率是一致的。抽样权重(Sampling Weight)是抽

7、样概率的倒数,反映样本信息量的大小。Obs id sex age 1 5 F 41 2 6 F 31 3 10 M 16 4 11 M 58 5 12 M 63 6 13 F 23 7 15 F 20 8 16 F 33 9 19 F 49 10 20 F 42 以上是 PROC PRINT 命令显示的输出数据集,包括所有被抽中的样本。第二列id 显示了被抽中的病人的编号。1.2 分层随机抽样的实现分层抽样,先依据一种或几种特征将总体分为若干个子总体,每个子总体称作一个层,然后从每层中随机抽取一个子样本,这些子样本合起来就是总体的样本。分层抽样所得的样本具有较好的代表性,抽样误差较小。例 2:

8、将表 1 中的 20 例病人以性别为分层因素,抽取10 名受试者。用 SAS9.1.3 实现分层随机抽样的程序如下:ods html;proc sort data=a;strata sex;run;名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 7 页 -by sex;run;proc surveyselect data=a method=srs n=(6 4)out=b;proc print data=b;run;ods html close;程序说明:数据步与例1 相同,此处省略。过程步,SORT 过程用于将数据集a 排序,by 语句指明按性别进行排序,此处排序方式为先F 后

9、 M。SURVEYSELECT过程与例 1 的不同之处在于选项n=(6 4),规定每层中得抽样大小,若每层抽样大小相同,可写为n=n1的形式。此外,还多了一个STRATA 语句,该语句用于指定分层变量。主要 SAS 输出结果如下:Obs sex id age SelectionProb SamplingWeight 1 F 4 57 0.5 2 2 F 6 31 0.5 2 3 F 13 23 0.5 2 4 F 15 20 0.5 2 5 F 19 49 0.5 2 6 F 20 42 0.5 2 7 M 3 37 0.5 2 8 M 8 64 0.5 2 9 M 11 58 0.5 2 1

10、0 M 18 40 0.5 2 1.3 系统随机抽样的实现系统抽样,先按照某种顺序将总体中的个体(样品)从1N 相继编号,并计算抽样距离 K=N/n。式中 N 为总体样品总数,n 为样本容量。然后在1K 中抽一随机数i,作为样本的第一个被抽样品,接着取i+K,i+2K,,,i+(n-1)K,直至抽够n 个样品为止。值得注意的是,当总体的被观察样品按顺序有周期趋势或增加(减少)趋势时,容易产生偏倚。例 3:将表 1 中的 20 例病人按系统随机抽样的方法抽取5 名受试者。用 SAS9.1.3 实现系统随机抽样的程序如下:ods html;proc surveyselect data=a meth

11、od=sys n=5 out=b;control id;run;proc print data=b;run;ods html close;程序说明:数据步与例1 相同,此处省略。SURVEYSELECT过程与例1 的不同之处在于选项 method=sys,规定抽样方法为系统随机抽样法。此外,还多了一个control 语句,该语句用于指定排序的变量。SAS 输出结果如下:Obs sex age id 1 F 57 4 2 M 64 8 3 M 63 12 4 F 33 16 5 F 42 20 名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 7 页 -1.4 整群抽样的实现整群抽样

12、是先将总体分成若干群,从中随机抽取几个群;抽中群内的全部个体(样品)组成样本。可将整群抽样转化为简单随机抽样。例如,从10 班随机抽取5 个班作为受试对象,可看做从10 个个体中随机抽取5 个,即为简单随机抽样。2.随机分组利用 SAS 软件实现随机分组的途径有很多,目前比较常用的是SAS/STAT 模块的 PLAN过程,它可用于构建各种常见的试验设计并对设计方案进行随机化,也可用于产生数字的排列组合表。笔者将介绍如何利用PLAN过程来实现两组和多组的随机分组。2.1 完全随机化的实现完全随机化,直接对受试对象进行随机化分组,常通过掷硬币或随机数字表,或用计算机产生随机数来进行随机化,在事先或

13、者实施过程中不作任何限制和干预或调整。分组后各组受试对象的例数不一定相等。例 4:将表 1 中的 20 例病人随机分为2 组。用 SAS9.1.3 实现简单随机分组的程序如下:proc plan seed=20101216;/*第一步*/factors a=20;output out=sheji;run;data b c;/*第二步*/set sheji;patient=_n_;if a=10 then do;group=A;output b;end;else do;group=B;output c;end;run;data d;/*第三步*/set b;group1=group;patien

14、t1=patient;keep group1 patient1;run;data e;/*第四步*/set c;group2=group;patient2=patient;keep group2 patient2;run;data f;/*第五步*/merge d e;run;ods html;proc print noobs;/*第六步*/run;ods html close;程序说明:第一步,调用 PLAN 过程产生 20 个随机排列数,并把结果输出至数据集sheji中,选项 seed=,规定产生随机数的种子。第二步,对数据集sheji 进行操作,把病人按随机排列数进行分组,随机数小于等于

15、10 的进入 A 组,其余进入B组,并将结果分别保存至数据集 b 和 c 中。第三步和第四步,分别将数据集b、c 中的 group 改为 group1、group2,将patient 改为 patient1 和 patient2,生成新的数据集d 和 e。最后把数据集d 和 e 合并为新的数据集 f,并通过 PRINT 过程将随机分组的结果展现出来。SAS输出结果如下:group1 patient1 group2 patient2 A 4 B 1 A 5 B 2 A 7 B 3 A 8 B 6 名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 7 页 -group1 patient

16、1 group2 patient2 A 10 B 9 A 11 B 14 A 12 B 15 A 13 B 16 A 17 B 18 A 19 B 20 例 5 将这 20 例病人随机分为4 组。用 SAS9.1.3 实现简单随机分组的程序如下3:proc plan seed=20101216;factors a=20;output out=sheji;run;data b1 b2 b3 b4;set sheji;patient=_n_;if a=5 then do;group=A;output b1;end;if 6=a=10 then do;group=B;output b2;end;if

17、 11=a=15 then do;group=C;output b3;end;if 16=a then do;group=D;output b4;end;run;data d1;set b1;group1=group;patient1=patient;keep group1 patient1;run;data d3;set b3;group3=group;patient3=patient;keep group3 patient3;run;data d4;set b4;group4=group;patient4=patient;keep group4 patient4;run;data f;me

18、rge d1 d2 d3 d4;run;ods html;proc print noobs;run;ods html close;SAS输出结果如下:group1 patient1 group2 patient2 group3 patient3 group4 patient4 A 5 B 4 C 1 D 2 A 7 B 8 C 6 D 3 A 10 B 11 C 9 D 14 A 13 B 12 C 15 D 18 A 19 B 17 C 16 D 20 2.2 分层随机化的实现分层随机化,首先对可能影响实验过程和结果的主要混杂因素(如年龄、性别、病情、名师资料总结-精品资料欢迎下载-名师精心

19、整理-第 5 页,共 7 页 -疾病分期等)进行分层,然后在每一层内进行完全随机化分组,最后分别合并为实验组和对照组。配对随机化和区组随机化可看成是分层随机化的实际应用。例 6 将表 1 中的 20 例病人以性别为区组因素,随机分为2 组。将 20 例病人中的12 名女性,编号为1-12,按例 4 中的程序分为2 组;8 名为男性,编号为 1-8,按例 4 中的程序分为2 组,可以实现对这20 例病人的区组随机化。例 7 现有来自 3 个窝别的 24 只大鼠,以窝别为区组因素,随机为4 组,每组6 只。对大鼠进行编号,第一窝编号为18,第二窝编号为916,第三窝编号为1724。用 SAS9.1

20、.3 实现区组随机化的程序如下3,4:proc plan seed=201200505;factors block=3 length=8;output out=sheji;run;data a b c d;set sheji;mouse=_n_;if length=2 then do;group=A;output a;end;else if 3=length=4 then do;group=B;output b;end;else if 5=length=6 then do;group=C;output c;end;else do;group=D;output d;end;run;data aa

21、;set a;group1=group;mouse1=mouse;keep group1 mouse1;run;data bb;set b;group2=group;mouse2=mouse;keep group2 mouse2;run;data cc;set c;group3=group;mouse3=mouse;keep group3 mouse3;run;data dd;set d;group4=group;mouse4=mouse;keep group4 mouse4;run;data e;merge aa bb cc dd;run;ods html;proc print noobs;

22、run;ods html close;SAS 输出结果:group1 mouse1 group2 mouse2 group3 mouse3 group4 mouse4 A 2 B 1 C 3 D 6 A 4 B 8 C 5 D 7 A 9 B 11 C 10 D 12 A 15 B 16 C 13 D 14 A 17 B 23 C 18 D 21 A 19 B 24 C 20 D 22 2.3 分层区组随机化名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 7 页 -在多中心试验中,区组随机化可以按中心分层进行,又称为分层的区组随机化。例 8 若有来自2 个种系的大鼠,分别 24

23、只,每个种系分为各3 个窝别,随机分为4 组,每组 12 只。只需在例 7的程序中,将“factors block=3 length=8”改为“factors center=2 block=3 length=8”即可4。2.4 动态随机化在临床实验研究中,研究者常习惯将患者分为实验组与对照组,患者来医院就诊,若将先来就诊的分入实验组,后来就诊的分入对照组,是不正确的。因为患者来医院就诊,在患病严重程度、患病时间等重要非实验因素方面不一定是均衡的,可能带有某种程度上的“聚集性”,即某一段时间上来的患者多数为重病患者,另一段时间上来的多数为轻病患者;若规定第一个来就诊者分入实验组,第二个来就诊者分入对照组,这样交叉进行分组,最后也可能两组患者在某些重要非实验因素方面相差悬殊,组间缺乏均衡性。有一种简便易行的随机化分组方法叫“按不平衡指数最小的分配原则”分组5。此法也称为动态随机化法。前面的讲座中已经介绍了动态随机化的方法1。此处不再赘述。名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 7 页 -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁