Прогнозирование вероятности выживания у прошедших цензуру субъектов в настоящее время - PullRequest
0 голосов
/ 18 июня 2020

Я пытаюсь создать функцию прогнозирования выживания для подвергнутых цензуре субъектов в их текущее время, используя это:

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)

Как мне добавить conditional_after для censored_subjects в их текущее время без создания вывода NxN?

1 Ответ

0 голосов
/ 19 июня 2020

Если я правильно понимаю, вы хотите, чтобы каждая функция выживания оценивалась в каждый время цензуры субъекта? Нет векторизованного способа сделать это, вам нужно будет сделать for-l oop:

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]
                     )

(выполнение приведенного выше не гарантируется, это просто пример)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...