【问题标题】:Predicting survival probability at current time censored subjects预测当前时间审查对象的生存概率
【发布时间】:2020-06-18 20:33:33
【问题描述】:

我正在尝试使用以下方法为审查对象在当前时间生成预测生存函数:

def predict_cumulative_hazard_at_single_time(self, X, times, ancillary_X=None):
        lambda_, rho_ = self._prep_inputs_for_prediction_and_return_scores(X, ancillary_X)
        return (times / lambda_) ** rho_


def predict_survival_function_at_single_time(self, X, times, ancillary_X=None):
        return np.exp(-self.predict_cumulative_hazard_at_single_time(X, times=times, ancillary_X=ancillary_X))


aft.predict_survival_function_at_single_time = predict_survival_function_at_single_time.__get__(aft)
aft.predict_cumulative_hazard_at_single_time = predict_cumulative_hazard_at_single_time.__get__(aft)

p_surv2 = aft.predict_survival_function_at_single_time(censored_subjects,
                                                  times=censored_subjects['CSI'])

但结果与我添加conditional_after时的结果不同:

survival = aft.predict_survival_function(censored_subjects,
                                    times=censored_subjects['CSI'],
                                    conditional_after=censored_subjects_last_obs)

如何在当前时间为 censored_subjects 添加 conditional_after 而不创建 NxN 输出?

【问题讨论】:

    标签: python survival-analysis lifelines


    【解决方案1】:

    如果我理解正确,您希望在 每个 主题的审查时评估每个生存函数吗?没有矢量化的方法可以做到这一点,你是否必须做一个 for 循环:

    survival = pd.Series(index=censored_subjects.index)
    for id in censored_subjects.index:
        survival.loc[id] = aft.predict_survival_function(
                          censored_subjects.loc[id],
                          times=censored_subjects.loc[id, 'CSI'],                               
                          conditional_after=censored_subjects_last_obs.loc[id]
                         )
    
    

    (以上不保证能运行,只是一个例子)

    【讨论】:

      猜你喜欢
      • 2019-10-01
      • 1970-01-01
      • 2015-02-09
      • 1970-01-01
      • 1970-01-01
      • 2016-05-23
      • 2019-09-16
      • 1970-01-01
      相关资源
      最近更新 更多