def test_coxph_plot_partial_effects_on_outcome_with_single_strata(self, block): df = load_rossi() cp = CoxPHFitter() cp.fit(df, "week", "arrest", strata="paro") cp.plot_partial_effects_on_outcome("age", [10, 50, 80]) self.plt.title("test_coxph_plot_partial_effects_on_outcome_with_strata") self.plt.show(block=block)
def test_coxph_plot_partial_effects_on_outcome_with_multiple_variables(self, block): df = load_rossi() cp = CoxPHFitter() cp.fit(df, "week", "arrest") cp.plot_partial_effects_on_outcome(["age", "prio"], [[10, 0], [50, 10], [80, 90]]) self.plt.title("test_coxph_plot_partial_effects_on_outcome_with_multiple_variables") self.plt.show(block=block)
def test_spline_coxph_plot_partial_effects_on_outcome_with_strata(self, block): df = load_rossi() cp = CoxPHFitter(baseline_estimation_method="spline", n_baseline_knots=2) cp.fit(df, "week", "arrest", strata=["wexp"]) cp.plot_partial_effects_on_outcome("age", [10, 50, 80]) self.plt.title("test_spline_coxph_plot_partial_effects_on_outcome_with_strata") self.plt.show(block=block)
def test_coxph_plot_partial_effects_on_outcome_with_cumulative_hazard(self, block): df = load_rossi() cp = CoxPHFitter() cp.fit(df, "week", "arrest") cp.plot_partial_effects_on_outcome("age", [10, 50, 80], y="cumulative_hazard") self.plt.title("test_coxph_plot_partial_effects_on_outcome") self.plt.show(block=block)
def test_coxph_plot_partial_effects_on_outcome_with_strata_and_complicated_dtypes( self, block): # from https://github.com/CamDavidsonPilon/lifelines/blob/master/examples/Customer%20Churn.ipynb churn_data = pd.read_csv("https://raw.githubusercontent.com/" "treselle-systems/customer_churn_analysis/" "master/WA_Fn-UseC_-Telco-Customer-Churn.csv") churn_data = churn_data.set_index("customerID") churn_data = churn_data.drop(["TotalCharges"], axis=1) churn_data = churn_data.applymap(lambda x: "No" if str(x).startswith("No ") else x) churn_data["Churn"] = churn_data["Churn"] == "Yes" strata_cols = ["InternetService"] cph = CoxPHFitter().fit( churn_data, "tenure", "Churn", formula= "gender + SeniorCitizen + Partner + Dependents + MultipleLines + OnlineSecurity + OnlineBackup + DeviceProtection + TechSupport + Contract + PaperlessBilling + PaymentMethod + MonthlyCharges", strata=strata_cols, ) cph.plot_partial_effects_on_outcome( "Contract", values=["Month-to-month", "One year", "Two year"], plot_baseline=False) self.plt.title( "test_coxph_plot_partial_effects_on_outcome_with_strata_and_complicated_dtypes" ) self.plt.show(block=block)
def test_coxph_plot_partial_effects_on_outcome_with_multiple_variables_and_strata(self, block): df = load_rossi() df["strata"] = np.random.choice(["A", "B"], size=df.shape[0]) cp = CoxPHFitter() cp.fit(df, "week", "arrest", strata="strata") cp.plot_partial_effects_on_outcome(["age", "prio"], [[10, 0], [50, 10], [80, 90]]) self.plt.title("test_coxph_plot_partial_effects_on_outcome_with_multiple_variables_and_strata") self.plt.show(block=block)
def test_coxph_plot_partial_effects_on_outcome_with_nonnumeric_strata(self, block): df = load_rossi() df["strata"] = np.random.choice(["A", "B"], size=df.shape[0]) cp = CoxPHFitter() cp.fit(df, "week", "arrest", strata="strata") cp.plot_partial_effects_on_outcome("age", [10, 50, 80]) self.plt.title("test_coxph_plot_partial_effects_on_outcome_with_single_strata") self.plt.show(block=block)
def CoxRegressionModel(stimes, N, ap_s, ap_s2, ap_s3, ap_s5, ebb_, eap_, ebs, aps_0, mu, stime, Np): #ebs = singular value = 0, 0.175, 0.35, 0.525, 0.7 #stimes = 1050 values ( 5 eb values x 7 ap values x 30 survival times) #stime = 30 values for each aps_) value #N = 1050 #Np = 30 #ap_s, ap_s2, ap_s3 = array of 1050 values used for the data frame #*************************************EVENT OBSERVATION**************************************************# E = np.zeros(N).astype(int) for i, time in enumerate(stimes): if (time > 62831): E[i] = 0 else: E[i] = 1 #**************************************MAKING A DATA FRAME************************************************# data1 = { 'T': stimes, 'E': E, 'aps': ap_s, 'aps2': ap_s2, 'aps3': ap_s3, 'aps5': ap_s5, 'eap': eap_, 'eb': ebb_ } df = pd.DataFrame(data=data1) T = df['T'] E = df['E'] aps = df['aps'] aps2 = df['aps2'] aps3 = df['aps3'] aps5 = df['aps5'] eap = df['eap'] eb = df['eb'] #print(df) #************************************COX PH FITTER*************************************# fig, axes = plt.subplots() axes.set_xscale('log') axes.set_ylabel("S(t)") KT, KE, Kdf = PlottingLL.PlottingLL(ebs, aps_0, mu, stime, Np) kmf = KaplanMeierFitter().fit(KT, KE, label='KaplanMeierFitter') kmf.plot_survival_function(ax=axes) cph = CoxPHFitter() #cph.fit(df,duration_col = 'T', event_col = 'E', formula = "eap") #cph.fit(df,duration_col = 'T', event_col = 'E') cph.fit(df, duration_col='T', event_col='E', formula="aps + I(aps**3)") #cph.print_summary() cph.plot_partial_effects_on_outcome(plot_baseline=False, ax=axes, cmap="coolwarm") #cph.plot_partial_effects_on_outcome(covariates = ['aps'], values = [round(aps_0,3)], plot_baseline = False, ax = axes, cmap = "coolwarm") cph.baseline_survival_.plot(ax=axes, ls=":", color=f"C{i}") #cph.fit(df,duration_col = 'T', event_col = 'E', formula = "eb + aps + I(aps**3)") #cph.print_summary() #cph.plot_partial_effects_on_outcome(covariates = ['aps'], values = [round(aps_0,3)], ax = axes) plt.title('Formula(aps vs. aps3 (1050 values)): (eb,ap,mu)={}'.format( (round(ebs, 3), round(aps_0, 3), mu)), fontsize=12)