生存分析是临床试验中经常用到的一种方法,生存曲线的绘制当然也是非常常见的,常见于肿瘤、绝症相关的研究中...今天小编打算分享一段小编画生存曲线的一段代码...
生存分析
嗯,既然分析就需要有数据,下面数据是小编很久以前百度生存分析的时候,在网上找的用作测试的数据集。
上面数据group表示组别,t表示存活的时间(月),censor表示删失。
在proc lifetest过程中一般是可以直接输出生存分析的图,自带输出的图是有点难看的,而且不能很自由的控制...所以呀,往往我们不直接采用proc lifetest过程步输出图,而是自己来画图...下面来看看proc lifetest自带图的效果...
代码语言:javascript复制proc lifetest data=have method=km plots=survival;
time t * censor(0);
strata group ;
run;
上面过程输出的图如下
虽然不可否认内容都在
但是也不得不承认还是比较丑的
为了画出看着顺眼的图,就得稍微变通一下
1.先采用ods output语句,将生存分析的数据集输出。
代码语言:javascript复制ods listing;
ods exclude all;
ods output Survivalplot=want ;
proc lifetest data=have method=km plots=survival;
time t * censor(0);
strata group ;
run;
ods listing close;
ods listing;
ods exclude none;
ods output Survivalplot=want会生成一个数据集want。(ods output相关介绍可见小编历史文章点击跳转
:SAS-那些统计过程步的统计量的输出...)
2.将数据集中率转换成百分比,也就是乘以100,这样会好看一些。
3.在做完以上操作后就可以用proc sgplot来画图了,当然也能通过gtl画,今天这里就仅使用proc sgplot语句画图.
代码语言:javascript复制ods rtf file="C:UsersAdministrator.BF-20180423ODYZDesktop日常练习Macro_Testtest.rtf";
ods graphics / width=600px height=450px border=off;
proc sgplot data=want noborder ;
styleattrs datacontrastcolors=( blue red) datalinepatterns=(solid shortdash) datasymbols=(circle triangle);
step x=time y=Survival / group=stratum name='L1' ;
scatter x=time y=censored / group=stratum name='L2' ;
keylegend 'L1' / location=outside border ACROSS=2 ;
keylegend 'L2' / location=inside position=topright border title="删失" ACROSS=2 ;
xaxis label="生存时间(月)" values=(0 20 40 60 80 100 120) ;
yaxis label="生存率(%)";
run;
run;
ods rtf close;
输出结果如下
显然是比系统自带输出的要好看很多。