作者liton (歐吉桑留學生)
看板Statistics
標題Re: [問題] SAS排列組合
時間Mon Nov 7 15:41:10 2011
測試幾個方法
以surveyselect而言,會漏一些
例如 C(6,3),應該會有20組排列組合
i=1 to 6
proc surveyselect noprint data=a out=b n=3 rep=20 method=srs;
run;
我其實把我的問題簡化很多
我真正要求出的排列組合是 C(M1,N1)X C(M2,N2)X C(M3,N3)X....
因此比較沒辦法以大量抽樣然後排除重複的方法產出
※ 引述《tew (咖啡王子)》之銘言:
: ※ 引述《liton (歐吉桑留學生)》之銘言:
: 我會這麼做
: data a;
: do i=1 to 100;
: output;
: end;
: run;
: proc surveyselect noprint data=a out=b n=50 rep=1000000 method=srs;
: run;
: proc transpose data=b out=b(drop=replicate _name_);by replicate;
: run;
: proc sort data=b nodup;by col1-col3;
: run;
: 基本上100取50 做出來大概花一分半
: 記憶體 3.68G
: CPU I5 M430
: 既然不確定有幾組 就多抽樣幾次 再將重複值刪掉 應該就OK了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.71.218.254
推 west1996:說真的,如果總組合數沒有大到SAS吃不下的話,我覺得用 11/07 16:56
→ west1996:data step+do loop把每一個C(M,N)的那個M生出來,然後跟 11/07 16:57
→ west1996:自己用sql的cartesian product連乘N次去掉不合的,然後再 11/07 17:00
→ west1996:跟別的C(M',N')去做cartesian product,這個方法搞不好 11/07 17:01
→ west1996:比較簡單XD 11/07 17:01
→ liton:唉..那會有包不完的迴圈....這是最後一招 11/07 17:06
推 tew:規劃求解看看 col1-colM 值都設0與1 加總為N的所有解 11/07 17:35
→ ASD332:好奇一問最後要的結果是? 不是有把所有組合的pdf找到了? 11/07 19:07