Можно ли выполнить стратифицированную случайную выборку со стратами из другого набора данных в SAS? - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь сравнить два набора данных, в которых атрибут стратифицирован по-разному. Можно ли сделать стратифицированную случайную выборку в одном наборе данных, но с использованием стратификации другого? Для пояснения, пример:

Набор данных A содержит 1M записей с цветом атрибута. Во всем наборе данных 50% синего 50% красного.

Теперь у меня есть другой набор данных, набор данных B, из 100 тыс. Записей с тем же атрибутом, цветом, но с распределением 20% синего и 80% красного.

Могу ли я провести стратифицированную случайную выборку для набора данных A, чтобы получить 100 тыс. Записей с 20% синим и 80% красным?

У меня еще нет написанного кода, просто потому что я не знаю, с чего начать. Я просмотрел документацию для proc surveyselect, и мне кажется, что это невозможно.

Прямо сейчас я хочу сделать это вручную, где я разрежу набор данных A по цвету и получу случайную выборку 20k из синего и 80k случайную выборку из красного.

Но, учитывая, что в моем реальном наборе данных я хочу стратифицировать по 2 атрибутам с более чем 2 уровнями, мне бы хотелось думать, что есть более эффективный способ сделать это.

1 Ответ

0 голосов
/ 29 мая 2020

Вы были так близки к своему ответу с тех пор, как упомянули 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 наблюдений с Sex = 'M' и 6 наблюдений с Sex = 'F'.

...