各种常见随机化的SAS实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

各种常见随机化的SAS实现

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

已知编号为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

病人编号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过程。该过程可用来实现各种随机抽样,包括:单纯随机抽样、系统随机抽样、分层抽样、无限随机抽样(有替换)、序贯随机抽样、以及按规模大小成比例概率抽样(PPS)等。

1.1 简单随机抽样的实现

简单随机抽样,就是从总体中不加任何分组、划类、排队等,完全随机地抽取受试对象。特点是每个个体(样品)被抽中的概率相等,各样品之间完全独立,彼此间无一定的关联性和排斥性。简单随机抽样是其他各种抽样形式的基础。通常只是在总体样品之间差异程度较小和数目较少时,采用这种方法。

例1:从编号为1到20的人中用简单随机化的方法抽取10名作为受试者。

用SAS9.1.3实现简单随机抽样的程序如下:

data a;

input id sex$ age; cards;

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=”

用于指定随机抽样的方法,srs表示单纯随机抽样;“n=”用于指定抽样大小(此处可以用“rate=”来替换,用于指定抽样率);“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 Probability 0.5

Sampling Weight 2

Output Data Set B

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

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 分层随机抽样的实现

分层抽样,先依据一种或几种特征将总体分为若干个子总体,每个子总体称作一个层,然后从每层中随机抽取一个子样本,这些子样本合起来就是总体的样本。分层抽样所得的样本具有较好的代表性,抽样误差较小。

程序说明:数据步与例1相同,此处省略。过程步,SORT过程用于将数据集a排序,by语句指明按性别进行排序,此处排序方式为先F后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 1

5 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

10 M 18 40 0.5 2

1.3 系统随机抽样的实现

系统抽样,先按照某种顺序将总体中的个体(样品)从1~N相继编号,并计算抽样距离K=N/n。式中N为总体样品总数,n为样本容量。然后在1~K中抽一随机数i,作为样本的第一个被抽样品,接着取i+K,i+2K,…,i+(n-1)K,直至抽够n个样品为止。值得注意的是,当总体的被观察样品按顺序有周期趋势或增加(减少)趋势时,容易产生偏倚。

语句用于指定排序的变量。

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

相关文档
最新文档