我在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))
答案 0 :(得分:3)
我不确定我是否理解你想要的东西。如果您在运行stset
之前添加了必需的stcox
和stcurve
代码,那将非常有用。
如果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}}图表。当你在单独的数据文件中获得图表的数据时,肯定会有更好更简单的方法来绘制这个,但这是第一个想到的解决方案。