作业帮 > 英语 > 作业

我有一份19000人的样本,其中患病人数为400人,我想进行按年龄配比后做logist回归,请问如何用SAS实现配比?

来源:学生作业帮 编辑:神马作文网作业帮 分类:英语作业 时间:2024/09/20 14:26:56
我有一份19000人的样本,其中患病人数为400人,我想进行按年龄配比后做logist回归,请问如何用SAS实现配比?
我有一份19000人的样本,其中患病人数为400人,我想进行按年龄配比后做logist回归,请问如何用SAS实现配比?
你这个配比的意思是?
关联的话用merge;
先用proc sort对数据集按年龄排序,然后
data formodel;
merge a b;
by age;
run;
再问: 我想用患病人400人做病例组,然后从人群中选择一部分人作为对照组,按年龄进行匹配。就是配对,比如一个病例是8岁,那我就从正常人中随机选择一个8岁人作为对照。。。然后进行logist回归分析危险因素
再答: %macro getsample(outdataset); data sick notsick;/*把总样本划分成病例数据集和正常数据集*/ set samples; if is_sick=1 then output sick; else output notsick; run; proc summary data=sick nway missing;/*统计病例数据集中的年龄分布*/ class age; output out=temp; run; data _null_; set temp; call symput("rtime",_n_);/*获取年龄数量作为循环次数*/ run; %do i=1 %to &rtime.; data _null_; set temp(firstobs=&i. obs=&i.); call symput("age",age);/*提取年龄*/ call symput("agenum",_freq_);/*提取年龄对应的人数*/ run; PROC SURVEYSELECT DATA=notsick(where=(age=&age.))/*提取年龄匹配的样本进行随机抽样*/ OUT=rs&i. METHOD=SRS/*简单无重复随机抽样*/ N=&agenum. ; ID 抽出的样本中拥有的变量们; RUN; %end; data &outdataset.; set rs1-rs&rtime.; run; %mend getsample; %getsample(ref);/*输出的数据集名为ref,为随机抽取出来的对照组*/ 也可以用RAND('UNIFORM') 生成0到1之间的随机数,然后用if语句在data步中进行数据保留或者提取。
再问: 你好,你有什么联系方式吗?我想以后有很多问题想请教你,谢谢啦,我刚开始学习SAS