我有一个后续调查to this question。
初始情况: 我想用基准风险的指数分布来估计Cox-比例风险模型。解决方案的第1.)部分是仔细研究显示的危害函数,
h(t|x) = lambda_0 * exp(beta * x)
可以使用加速故障时间(AFT)模型进行估算,其中危害为:
h(t|x) = lambda_0 * exp(-beta * x)
解决方案的第2部分)是定义具有所需属性的唯一类。
当前情况:现在,我想扩展我的模型,以纳入时变协变量。 Lifelines has a documentation for this。此类模型的危害是
h(t|x(t)) = lambda_0(t) * exp(beta * x(t))
。
试图解决我从第1部分开始的问题。),危害(imo)是
h(t|x(t)) = lambda_0 * exp(beta * x(t))
,
因此是前面提到的危险的特殊情况(所有lambda_0(t) = lambda_0
的{{1}})。
我的奋斗来自第二部分。在cox_time_varying_fitter.py中,函数t
中的(时变)基线危害是由_compute_cumulative_baseline_hazard
非参数建模的,我希望可以使用类似的函数在参数上重新定义此函数。
death_counts / hazards_at_t.sum()
但后来我不知道,从何处获得def _cumulative_hazard(self, params, T, Xs):
# params is a dictionary that maps unknown parameters to a numpy vector.
# Xs is a dictionary that maps unknown parameters to a numpy 2d array
lambda_ = np.exp(np.dot(Xs['lambda_'], params['lambda_']))
return T / lambda_
,以及与非时变AFT模型有什么不同的解决方案。
示例数据:
lambda_
目标不是要了解哪个协变量会影响观察事件的机会;相反,目标更多是为变量from lifelines import CoxPHFitter
import pandas as pd
df = pd.DataFrame({
'id': [1, 1, 1, 2, 2, 2, 3, 3, 3],
'start': [0, 1, 2, 0, 1, 2, 0, 1, 2],
'stop' : [1, 2, 3, 1, 2, 3, 1, 2, 3],
'timevarying': [-1, 0, 1, 2, 0, -2, -3, 0, 3],
'event': [0, 0, 1, 0, 0, 0, 0, 0, 1]
})
ctv = CoxTimeVaryingFitter()
ctv.fit(df, id_col="id", event_col="event", start_col="start", stop_col="stop")
的不同时变值预测危险。目前,我仅设法获得部分危害,但我也需要基准危害。当然,在文档中指出,在这种情况下的预测并非微不足道,但可以将timevarying
视为某个区域的温度以及是否发生过明火-在这种情况下,我认为使用Wheather预测的预测数据是可行的。
问题:如何在timevarying
中运行具有基线风险指数分布的时间变化-Cox-比例-危险模型?