假设我有一组original数据,有10个患者,每个患者项下各有四个不同周期的数据,如下所示:
subject period data
1 1 55
1 2 63
1 3 48
1 4 59
2 1 39
2 2 46
2 3 43
2 4 35
3 1 56
3 2 44
3 3 53
3 4 39
......
我想实现的是对这10个患者(作为整体)进行有放回的重复抽样(也就是实现cluster的bootstrap),抽取的每个患者项下的四个period和data数据保持不变。 用传统的bootstrap抽样只能做到一行一行的随机抽取,程序如下:
data bootsamp;
do sampnum = 1 to 100; /* To create 100 bootstrap replications */
do i = 1 to nobs;
x = round(ranuni(0) * nobs);
set original
nobs = nobs
point = x;
output;
end;
end;
stop;
run;