def test_brier_coxph(): X, y = load_gbsg2() X.loc[:, "tgrade"] = X.loc[:, "tgrade"].map(len).astype(int) Xt = OneHotEncoder().fit_transform(X) est = CoxPHSurvivalAnalysis(ties="efron").fit(Xt, y) survs = est.predict_survival_function(Xt) preds = [fn(1825) for fn in survs] _, score = brier_score(y, y, preds, 1825) assert round(abs(score[0] - 0.208817407492645), 5) == 0
estimator = CoxPHSurvivalAnalysis() estimator.fit(data_x_numeric, data_y) pd.Series(estimator.coef_, index=data_x_numeric.columns) x_new = pd.DataFrame.from_dict({ 1: [65, 0, 0, 1, 60, 1, 0, 1], 2: [65, 0, 0, 1, 60, 1, 0, 0], 3: [65, 0, 1, 0, 60, 1, 0, 0], 4: [65, 0, 1, 0, 60, 1, 0, 1]}, columns=data_x_numeric.columns, orient='index') x_new import numpy as np pred_surv = estimator.predict_survival_function(x_new) time_points = np.arange(1, 1000) for i, surv_func in enumerate(pred_surv): plt.step(time_points, surv_func(time_points), where="post", label="Sample %d" % (i + 1)) plt.ylabel("est. probability of survival $\hat{S}(t)$") plt.xlabel("time $t$") plt.legend(loc="best") from sksurv.metrics import concordance_index_censored prediction = estimator.predict(data_x_numeric) result = concordance_index_censored(data_y["Status"], data_y["Survival_in_days"], prediction) result[0]