2016-04-28 73 views
0

有沒有辦法在隨機抽樣中更改和操縱SAS中某個變量的比例?SAS更改隨機樣本的比例

可以說我有1000人組成的桌子。 (500名男性和500名女性)

如果我想隨機抽取100名性別分層的樣本 - 我的輸出中將有50名男性和50名女性。

我想知道是否有辦法達到所需比例的性別價值?

我們可以隨機抽樣100人,男性70人,女性30人?

回答

0

通常這就是proc surveyselect的用途。

但對於一個快速和骯髒datastep解決方案:

data in_data; 
    do i= 1 to 500; 
     sex = 'M'; output; 
     sex = 'F'; output; 
    end; 
run; 
data in_data; 
    set in_data; 
    rannum = ranuni(12345); 
run; 
proc sort data= in_data; by rannum; run; 
data sample_data; 
    set in_data; 
    retain count_m count_f 0; 
    if  sex = 'M' and count_m lt 70 then do; count_m + 1; output; end; 
    else if sex = 'F' and count_f lt 30 then do; count_f + 1; output; end; 
run;  
proc freq data= sample_data; 
    table sex; 
run; 
2

PROC SURVEYSELECT是做到這一點的方式,使用數據集nsamprate,而不是數量。

data strata_to_Sample; 
    length sex $1; 
    input sex $ _NSIZE_; 
datalines; 
M 70 
F 30 
;;;; 
run; 
proc sort data=strata_To_sample; 
    by sex; 
run; 

data to_sample; 
    set sashelp.class; 
    do _i = 1 to 1e5; 
    output; 
    end; 
run; 
proc sort data=to_Sample; 
    by sex; 
run; 

proc surveyselect data=to_sample n=strata_to_sample out=sample; 
    strata sex; 
run;