楼主: crazygoing
28540 39

[程序分享] 病例对照、匹配(配对)抽样 SAS 程序(原创) [推广有奖]

11
zhusd 发表于 2014-4-29 14:13:28
我有一个数据库,暂且也命名为js,含有唯一变量ID,需要匹配的变量 是gender和age,case是定义变量,1是病例,0是对照。抽样要求gender相同,age相差不超过2岁,求楼主帮忙,不甚感谢

12
crazygoing 发表于 2014-4-29 14:37:11
代码第四行 pp=compress(school||grade||class);  更改为pp=gender; 即可

13
zhusd 发表于 2014-4-29 14:50:47
crazygoing 发表于 2014-4-29 14:37
代码第四行 pp=compress(school||grade||class);  更改为pp=gender; 即可
试过了,跑出来的结果不对,不是1:1,楼主这个程序跑你自己的数据好像也不太对呢

14
crazygoing 发表于 2014-4-29 15:56:27
zhusd 发表于 2014-4-29 14:50
试过了,跑出来的结果不对,不是1:1,楼主这个程序跑你自己的数据好像也不太对呢
不知道你的sas版本,我的是sas9.2。 程序运行我的模拟数据没有问题啊;
日志:
QQ截图20140429155334.png
生产的抽样文件:
QQ截图20140xxxxx.png

15
jeozu 发表于 2014-4-29 16:27:46
zhusd 发表于 2014-4-29 13:54
楼主的意思是把这一段程序加进去吗?
添加
  1.   proc surveyselect data=final out=matched method=srs n=1;
  2.     STRATA treated;
  3.     run;
复制代码
就可以了。。

16
crazygoing 发表于 2014-4-29 16:51:12
jeozu 发表于 2014-4-29 16:27
添加就可以了。。
这样不行。

17
zhusd 发表于 2014-4-29 17:03:52
crazygoing 发表于 2014-4-29 15:56
不知道你的sas版本,我的是sas9.2。 程序运行我的模拟数据没有问题啊;
日志:
NOTE: 有 970 个从数据集 WORK.A_CASE 读取的观测。
NOTE: 有 745 个从数据集 WORK.SAMPLE 读取的观测。
NOTE: 数据集 WORK.HB 有 1715 个观测和 5 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.01 秒
      CPU 时间          0.01 秒

18
zhusd 发表于 2014-4-29 17:04:43
crazygoing 发表于 2014-4-29 15:56
不知道你的sas版本,我的是sas9.2。 程序运行我的模拟数据没有问题啊;
日志:
NOTE: 有 970 个从数据集 WORK.A_CASE 读取的观测。
NOTE: 有 745 个从数据集 WORK.SAMPLE 读取的观测。
NOTE: 数据集 WORK.HB 有 1715 个观测和 5 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.01 秒
      CPU 时间          0.01 秒



病例和对照不是1:1

19
crazygoing 发表于 2014-4-29 17:06:04
zhusd 发表于 2014-4-29 17:04
NOTE: 有 970 个从数据集 WORK.A_CASE 读取的观测。
NOTE: 有 745 个从数据集 WORK.SAMPLE 读取的观测。 ...
那就是有的没有匹配上。  我说了我的这个程序是有缺陷的,没有考虑未匹配的情况。

20
zhusd 发表于 2014-4-29 18:08:43
crazygoing 发表于 2014-4-29 17:06
那就是有的没有匹配上。  我说了我的这个程序是有缺陷的,没有考虑未匹配的情况。
那能不能加个语句把匹配不上的删了呢?

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-27 12:48