如何在Stata的一个图表中通过stcurve绘制不同的图形?

时间:2015-01-20 10:40:16

标签: stata

我在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 个答案:

答案 0 :(得分:3)

我不确定我是否理解你想要的东西。如果您在运行stset之前添加了必需的stcoxstcurve代码,那将非常有用。

如果Kaplan-Meier危险图与您的第一个stcurve, survival相同,您可以通过生成变量来尝试修复。

运行sts gen s2=s

stset

然后将其绘制为与时间变量对齐的线。即将其添加到第二个图的末尾:

addplot(line s2 your_timevar, sort c(J) title("Survival probabilities"))

如果第一个图表在[{1}}中没有failvar的预测变量,那么KM风险和Cox危险的等同性就成立了。因此,如果您在stset之后运行stcox, estimate它可以正常运行,但如果stset timevar, failure(failvar) id(idvar)调用中有更多变量,则无法为您提供正确的情节。

编辑: 由于上述快速解决方案不起作用,还有另一个肮脏的解决方法:将stcox的结果保存在文件中(选项stcurve),然后绘制" new"数据为outfile图表。像这样:

twoway

我不知道这是否适用于您的数据:可能需要以某种方式操作outfiles中的新变量以获得所需的结果,并且您需要将所需的选项添加到{ {1}}图表。当你在单独的数据文件中获得图表的数据时,肯定会有更好更简单的方法来绘制这个,但这是第一个想到的解决方案。