我正在使用Python中的Lifelines的AalenAdditiveFitter构建预测模型,以预测事件是否发生以及何时发生。
T(时间)=几个月 C(事件)= 1是,0不是
此外,我正在使用8个属性。
aaf = AalenAdditiveFitter(coef_penalizer=1., fit_intercept=True)
cx1 = aaf.fit(trainX.drop(['index'], axis=1), duration_col='T', event_col='C',show_progress=True)
我能够建立一个相对稳定的模型,并使用以下方法获得累积的危险概率:
stestXsurvived = cx1.predict_cumulative_hazard(stestX.drop(['T','C'], axis=1))
有没有办法直接从AalenAdditiveFitter程序获得条件/边际概率?
因此,在进行一些挖掘后,我可以假设以下内容吗?
这是基于https://quant.stackexchange.com/questions/21816/cumulative-vs-marginal-probability-of-default
上发布的答案不确定此解决方案是否如此简单,请帮助。
答案 0 :(得分:0)
如果您以建议的方式区分累积危险,则会得到h(t),即危险。 h(t)确实等于离散持续时间的条件概率。但请注意:对于连续持续时间,h(t)是速率(例如,它可以大于1)。
顺便说一句:我不记得Aalen的附加模型是否是半参数的。但是,如果是这样,累积危险只会在我们看到失败的月份内发生变化。它不会影响你的(月 - 上个月)计算 - 差异将变为0,当我们观察到没有失败时,半参数持续时间模型总是如此。
如果你想节省计算能力,你可以在一个失败时间(称为t_k)中累积危险,并在此之前的最后一次失败时间从累积危险中减去它(称之为t_k-1)。一旦你围绕新数量告诉你的内容,如果累积危险在t_k-1和t之间变化很大,以及半参数危害(因此,累积危险也只在我们看到失败时更新,然后在t_k-1和t之间的任何时间点都必须有0的危险。