我正在使用Stata来绘制多个函数。在这种情况下,我正在绘制不同的Gompertz生存函数;一个年龄30
和一个年龄70
。
首先,考虑一下30
岁:
twoway function Age_30=exp(-exp(-3.520509+0.0762475*-34.13089)* ///
0.0378969^(-1)*(exp(0.0378969*x)-1)), range (0 50) xtitl(Years) title(Gompertz)
正如你所知,scale参数有一个常数(-3.520509
)和age(0.0762475
),而形状有一个常数(0.0378969
)。
年龄以均值为中心,这就是协变量为-34
(64 - 34 = 30
)的原因。
其次,考虑一下70
岁:
twoway function Age_70=exp(-exp(-3.520509+0.0762475*5.86911)* ///
0.0378969^(-1)*(exp(0.0378969*x)-1)), range(0 50) xtitle(Years) title(Gompertz)
两个函数都可以自己绘制。
但是,当我同时绘制两个图形时,一条曲线不会完成到最后:
twoway function Age_30=exp(-exp(-3.520509+0.0762475*-34.13089)* ///
0.0378969^(-1)*(exp(0.0378969*x)-1)) || function ///
Age_70=exp(-exp(-3.520509+0.0762475*5.86911)*0.0378969^(-1)* ///
(exp(0.0378969*x)-1)), range(0 50) xtitle(Years) title(Gompertz)
你能帮助我吗?
这是一个非常常见的问题,因为Stata只为一个图形而不是另一个图形设置range()
。必须在所有图中明确指定相同的range()
:
twoway function Age_30 = exp(-exp(-3.520509+0.0762475 * -34.13089) * ///
0.0378969^(-1) * (exp(0.0378969 * x)-1)), ///
range(0 50) || ///
function Age_70 = exp(-exp(-3.520509+0.0762475*5.86911) * ///
0.0378969^(-1) * (exp(0.0378969 * x)-1)), ///
range(0 50) ///
xtitle(Years) title(Gompertz)