我在Stata中使用 stcurve
绘制生存概率 . 我需要为所有数据绘制图表,然后绘制特定变量 . 我可以在两个不同的图表中生成图形,但我需要在一个图表中将所有三条线组合在一起 .
我已经尝试了 addplot()
选项但是我得到的错误是 stcurve
不是 twoway
图 . 你知道怎么做吗?
这是我使用的代码,它分别在两个不同的图表中生成图形:
stcurve, survival graphregion(lcolor(white) ilcolor(white) ifcolor(white) ) plotregion( lcolor(black)) title("Survival Function", size(vlarge)) ytitle("Survival probabilities", size(large)) xtitle("Time", size(large)) xlabel(,labsize(medium)) ylabel(,labsize(medium))
stcurve, survival at1( def=0) at2( def=1) graphregion(lcolor(white) ilcolor(white) ifcolor(white) ) plotregion( lcolor(black)) legend(label(1 "X Firms") label(2 "Y Firms")) legend(size(large)) lwidth(thin thick) title("Survival Function", size(vlarge)) ytitle("Survival probabilities", size(large)) xtitle("Time", size(large)) xlabel(,labsize(medium)) ylabel(,labsize(medium))
1 回答
我不确定我是否理解你想要的东西 . 如果在运行
stcurve
之前添加了必要的stset
和stcox
代码,那将非常有用 .如果Kaplan-Meier危险图与您的第一个
stcurve, survival
相同,您可以通过生成一个变量来尝试修复 .sts gen s2=s
运行stset
后然后将其绘制为与时间变量对齐的线 . 即将其添加到第二个图的末尾:
如果第一个图表没有比
failvar
中的failvar
更多的预测因子,那么KM风险和Cox风险的平等性就成立了 . 所以如果你在stset timevar, failure(failvar) id(idvar)
之后运行stcox, estimate
它可以工作,但如果你在stcox
调用中有更多变量,这将无法给你正确的情节 .编辑:由于上面的快速解决方案不起作用,还有另一个脏的解决方法:将
stcurve
的结果保存在文件中(选项outfile
),然后将"new"数据绘制为twoway
图形 . 像这样的东西:我不知道这是否适用于您的数据:可能需要以某种方式操作outfiles中的新变量以获得所需的结果,并且您需要将所需的选项添加到
twoway
图形中 . 当你在单独的数据文件中获得图表的数据时,肯定会有更好更简单的方法来绘制这个,但这是第一个想到的解决方案 .