Re: [程式] SAS 抽樣

看板Statistics作者 (阿奶)時間12年前 (2013/09/04 17:05), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《mickey1231 (國父)》之銘言: : 請問大家 : 我要做Case control study : 現在我有兩群人,兩群人的變數有的顯著不同,有的沒有顯著不同 : 我想從這兩群人中抽人出,讓抽出來的兩群人的某些變數都沒有顯著不同 : 請問有什麼程式可以幫我辦到嗎? : 之前我要控制住性別、與年齡,我是先用proc freq看人數,再用proc surveyselect分層 : 抽樣,但是要是要控制的變數一多,我就不知道該怎麼下手,才想詢問看看有沒有其他比 : 較快的方法? : 謝謝大家!! 想借個標題問一下,小弟是統計新手,以前都把配對想得太簡單。 我想如果只是要配對的話,用SAS的proc sql就可以解決,但是在該作法下,與case配對 的control會有"重複"的問題,據小弟目前的了解,勢必要運用巨集,循環夠多的次數, 直到將所有可能的control都配對完,才會使每一組配對好的control都不重複。搜尋網路 上的資訊,多半是使用巨集,無奈小弟是巨集苦手,太多不明的符號,所以想上來求救, 不知道能不能幫助我解決,以下是我寫的簡單配對語法,但是小弟的case有9000個, control有150萬,需要1:10配對,原本想用複製貼上這個語法100次,但是100次也沒辦法 全部配對完成呀,非常地傷腦筋。希望版上的大家能提供意見,助小弟脫離苦海,萬分感 謝。 SAS語法如下: libname still 'F:/stillbirth'; data still.case2; set still.case; rand_num=uniform(0); run; data still.control2; set still.control; rand_num=uniform(0); run; PROC SQL; CREATE table still.match as select one.no as case_no, two.no as control_no, one.gest as case_gest, two.gest as control_gest, one.still as case_still, two.still as control_still, one.rand_num as rand_num from still.case2 one, still.control2 two where one.gest=two.gest; proc sort data=still.match; by control_no rand_num; run; * Remove duplicate control subjects; proc sort data=still.match out=still.match2 nodupkey; by control_no; run; proc sort data=still.match2; by case_no; run; proc sort data=still.match2; by case_no rand_num; run; data still.match3 still.not_enough; set still.match2; by case_no ; retain num; if first.case_no then num=1; if num le 10 then do; output still.match3; num=num+1; end; if last.case_no then do; if num le 10 then output still.not_enough; end; run; proc sort data=still.match; by case_no; run; proc sort data=still.match3; by case_no; run; data still.match5; merge still.match (in=t1) still.match3 (in=t2); by case_no; if t2 then delete; run; proc sort data=still.match5; by control_no; run; proc sort data=still.match3; by control_no; run; data still.match6; merge still.match5 (in=t1) still.match3 (in=t2); by control_no; if t2 then delete; run; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.128.67.245

09/04 17:10, , 1F
直接使用寫好的macro 放入你資料的條件
09/04 17:10, 1F
文章代碼(AID): #1I9lVMzI (Statistics)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1I9lVMzI (Statistics)