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灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP