[SAS Syntax] 랜덤샘플링 층화추출 (stratified sampling) PROC SURVEYSELECT


SAS 층화추출(stratified sampling) 방법

SAS에서는 PROC SURVEYSELECT를 사용하여 층화추출을 간단하게 수행할 수 있습니다. 층화추출은 모집단을 여러 개의 층(strata)으로 나눈 후, 각 층에서 랜덤 샘플을 추출하는 방식입니다. 이를 통해 표본의 대표성을 높일 수 있습니다.


📌 기본 문법

proc surveyselect data=원본데이터         out=샘플데이터         method=srs         sampsize=샘플크기         seed=12345;  strata 층화변수; run;


🔹 예제 1: 성별 층화추출 (각 성별 50명씩)

proc surveyselect data=mydata         out=sample_data         method=srs         sampsize=50         seed=12345;  strata gender; run;


🔸 예제 2: 층마다 다른 샘플 수 설정

data sampsizes;   input gender $ sampsize;   datalines; Male 40 Female 60 ; run; proc surveyselect data=mydata         out=sample_data         method=srs         sampsize=sampsizes         seed=12345;  strata gender; run;


🔸 예제 3: 각 층에서 10%씩 비율 기반 추출

proc surveyselect data=mydata         out=sample_data         method=srs         proportion=0.1         seed=12345;  strata gender; run;


💡 참고: strata 문에 여러 개의 변수를 지정하여 다층화도 가능하며, 결측값이 있는 층은 자동으로 제외됩니다.


SAS - 샘플사이즈와 시드의 차이

SAS에서 샘플사이즈(sampsize)와 시드(seed)의 차이



✅ 샘플사이즈 (sampsize)

샘플사이즈는 몇 개의 데이터를 추출할지를 결정합니다. 표본의 크기를 설정하는 옵션입니다.

proc surveyselect data=mydata     out=sample     method=srs     sampsize=50; run;

→ 총 50개의 데이터를 무작위로 추출합니다.


✅ 시드 (seed)

시드는 랜덤 숫자 생성기의 초기값으로, 동일한 샘플을 재현(reproduce)하는 데 사용됩니다.

proc surveyselect data=mydata     out=sample     method=srs     sampsize=50     seed=12345; run;

→ 같은 데이터를 같은 시드로 실행하면 항상 같은 샘플이 추출됩니다.


📌 샘플사이즈와 시드의 차이 비교

항목 샘플사이즈 (sampsize) 시드 (seed)
역할 샘플의 수량 결정 무작위 순서 결정
결과 반복성 X (수만 같고 내용은 달라짐) O (같은 결과 반복 가능)
기본값 생략 시 기본 수가 적용되거나 오류 매번 결과 달라질 수 있음
사용 목적 표본 크기 통제 결과 재현성 확보

💡 TIP:
분석을 반복하거나 다른 사람과 동일한 샘플을 공유해야 할 때는 반드시 seed를 고정하세요!

0 댓글