Пример #1
0
def KM_median(array,
              upper_lim_flags,
              left_censor=True,
              return_type='percentile'):
    kmf = KaplanMeierFitter()

    if upper_lim_flags is not None:
        if left_censor == True:
            kmf.fit_left_censoring(array, upper_lim_flags)
        else:
            kmf.fit(array, event_observed=upper_lim_flags)  #right censoring
    else:
        kmf.fit(array, upper_lim_flags)

    median = median_survival_times(kmf.survival_function_)

    if return_type == 'percentile':
        upper_perc = kmf.percentile(0.25)
        lower_perc = kmf.percentile(0.75)

        print(
            f'median and 1st/3rd quartiles: {median}, {lower_perc}, {upper_perc}'
        )
        return median, upper_perc, lower_perc

    elif return_type == 'ci':
        median_ci = median_survival_times(kmf.confidence_interval_).values
        print(f'median and CI: {median}, {median_ci}')
        return median, median_ci[0][0], median_ci[0][1]

    elif return_type == 'median':
        return median