Statistics 板


LINE

[軟體程式類別]: SAS [程式問題]: 利用SAS配對實驗組與控制組時, 如何只配到指定變數最相近的1筆控制資料? [軟體熟悉度]: 低,只會用簡單的指令,例如OLS,常常程式碼寫一堆。 [問題敘述]: 有在板上搜尋配對,知道可以用SQL進行配對, 並且可以設定配對的變數及其上下限。 例如:若控制組的年齡在實驗組的加減1範圍內則進行配對。 但是這樣可能會配對到很多筆資料, 而網路搜尋到的一些方法是隨機選取1筆。 想請問可以設定配對到最相近的1筆資料嗎? 例如說:指定用A變數作為配對變數, 配對的上下限是正負10%內, 但是只配對到最相近的那1筆資料。 目的:計算調整控制組銷售(Sales)後的異常Sales。 控制組的篩選條件:公司規模(TA) 配對邏輯:TA-10% ~ TA+10% (例如:A公司的規模是100,符合配對的控制組公司的TA應介於90~110) 每一個公司會有當年度的Sales與TA,假設實驗組A公司的Sales是200,TA是100。 另有控制組B公司與C公司,B公司的Sales是150,TA是95; C公司的Sales是130,TA是101。 若設定配對上下限是TA-10% ~ TA+10%,B公司與C公司皆符合配對條件。 然而,這裡只想要配對"TA介於上下限內"且"最相近的公司", 在此邏輯下,A公司應該與C公司配對,因為C公司的TA=101,與A公司的TA=100最相近。 因此,A公司當年度的異常Sales應為200-130=70。 目前只會設定上下限,可是不會設定"只配對最相近的公司"。 實例: data study control; infile cards; rand_num=uniform(0); input id study TA Sales @@; if study=1 then output study; else output control; cards; 1 1 100 200 2 1 200 400 3 0 95 150 4 0 101 130 5 0 190 230 ; Run; proc sql; create table controls_id as select one.ID as study_id, two.ID as control_id, one.TA as study_TA, two.TA as control_TA, one.Sales as study_sales, two.Sales as control_sales, one.rand_num as rand_num from study one, control two where (two.TA between one.TA*1.1 and one.TA*0.9); Run; 在此例中,id 1的觀測值是實驗組,依據TA*0.9~TA*1.1的篩選條件, 他會與id 3與id 4配對,但是我想請問能否指定只配對到TA最相近的對照組, 也就是id 4呢? 例外有兩個小問題想請教一下: 1. rand_num是甚麼意思呢? 2. sas log回覆說 The execution of this query involves performing one or more Cartesian product joins that can not be optimized.是甚麼意思呢? 我Match完後的資料如下: study_id control_id study_TA control_TA study_Sales control_sales rand_num 1 3 100 95 200 150 0.2469 1 4 100 101 200 130 0.2469 2 5 200 190 400 230 0.0509 謝謝大家的指教!!! --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.186.244
1F:推 west1996:只要是「可以清楚寫下配對邏輯」的規則,就一定有辦法跑 07/06 17:44
2F:→ west1996:出來,只有快慢和系統loading的問題而已,建議把實際的問 07/06 17:45
3F:→ west1996:題和變數還有比對邏輯放上來,大家比較好給建議 07/06 17:45
4F:→ JoJoHuang:已修改,將問題更清楚地描述了,不知道這樣ok嗎>"<? 07/06 18:17
5F:推 liton:給個資料實例吧... 07/06 18:29
6F:→ JoJoHuang:有放上sas code了,希望有更清楚地說明我的問題了>"< 07/06 19:34
※ 編輯: JoJoHuang 來自: 140.116.186.244 (07/06 21:09)
7F:→ ASD332:1.查 uniform function 2. 查 Cartesian product 07/06 23:48
8F:→ liton:where (two.TA between one.TA*1.1 and one.TA*0.9);哪有這 07/07 00:14
9F:→ liton:樣寫的啦~~ 只能用 EQ 07/07 00:14
10F:→ liton:難怪會有Cartesian product joins的問題 07/07 00:15
11F:→ JoJoHuang:不能這樣寫啊...>"< 謝謝! 我再研究一下>"< 07/07 08:45
12F:→ JoJoHuang:我看了一下,是不是一對多配對就會有這句話呢>_<? 07/07 10:12
13F:→ JoJoHuang:還在研究怎麼樣指定符合這段區間,但又只配對到最近值@@ 07/07 10:13
14F:→ JoJoHuang:之所以不用= 是因為很難找到1個TA完全一模一樣的觀測值 07/07 11:20
15F:→ ASD332:這樣寫沒錯 一般資料庫的確很少用到 cross join 07/07 14:14
16F:→ ASD332:但在配對的做法上 這是很常見的 07/07 14:14
17F:→ ASD332:另外 你要最接近的值 = 兩者的差相距最小 要記得有正負號 07/07 14:19







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Soft_Job站內搜尋

TOP