在SAS中是否可以用另一个数据集的分层随机抽样?

问题描述 投票:0回答:1

我想比较两个数据集,其中一个属性的分层不同。是否可以在一个数据集中做分层随机抽样,但使用另一个数据集的分层?说明一下,举个例子。

数据集A有1M条记录,属性为颜色。整个数据集有50%的蓝色50%的红色。

现在我有另一个数据集Dataset B,有10万条记录,属性相同,颜色相同,但蓝色80%红色分布。

我是否可以对Dataset A进行分层随机抽样,从而得到10万条蓝色为20%,红色为80%的记录?

我还没有写出任何代码,简单是因为我不知道从哪里开始。我看了一下文档中的 proc surveyselect 并且似乎这样做是不可能的。

现在,我想手动完成,我会按颜色切割Dataset A,从蓝色中得到20k随机样本,从红色中得到80k随机样本。

但考虑到在我的真实数据集中,我想按2个以上的属性进行分层,我很想知道有什么更有效的方法可以做到这一点。

sas sampling
1个回答
0
投票

自从你提了这个问题之后,你就一直很接近你的答案了。proc survey select. 有一个例子给你。

proc sort data = sashelp.class out = class;
    by sex;
run;

proc surveyselect data = class out = sample sampsize=(5 6) seed=0;
    strata sex;
run;

有5个性别为M的 obs和6个性别为F的 obs。

© www.soinside.com 2019 - 2024. All rights reserved.