本文介绍了在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))
推荐答案
我不确定我是否正确理解了您想要的内容。如果您在运行stcurve
之前添加了必要的stset
和stcox
代码,这将非常有用。
如果Kaplan-Meier危险图与您的第一个stcurve, survival
相同,您可以尝试通过生成变量来进行错误修复,例如
sts gen s2=s
运行后stset
然后根据时间变量将其绘制为一条线。即将此内容添加到第二个图表的末尾:
addplot(line s2 your_timevar, sort c(J) title("Survival probabilities"))
仅当第一个图没有比stset
中的failvar
更多的预测器时,KM危险和Cox危险的等价性才成立。因此,如果您在stset timevar, failure(failvar) id(idvar)
之后运行stcox, estimate
,则它可以工作,但如果您在stcox
调用中有更多变量,这将不会给出正确的曲线图。编辑:由于上述快速解决方案不起作用,因此还有另一个棘手的解决办法:将stcurve
的结果保存在一个文件中(选项outfile
),然后将"新"数据绘制为twoway
图。大概是这样的:
stcurve, survival name("surv1") outfile(stcurve1.dta, replace)
stcurve, survival name("surv2") at1( def=0) at2( def=1) outfile(stcure2.dta, replace)
use stcurve1.dta, clear
rename surv1 surv1_A
rename _t _tA
append using stcurve2.dta
twoway line surv1 _t, sort || line surv1_A _tA, sort
我不知道这是否适用于您的数据:您可能需要以某种方式操作输出文件中的新变量以获得所需的结果,并且您需要向twoway
图表添加您想要的选项。当您将图表的数据放在单独的数据文件中时,当然有许多更好、更容易的方法来绘制它,但这是我脑海中涌现的第一个解决方案。 这篇关于在STATA中如何在一个图表中绘制不同的曲线图?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!