Arte SheetsLearn. Try. Understand.

Statistical

Kaplan-Meier Survival Estimator & Exponential Median Survival formulas

Calculate validated Kaplan–Meier steps with a small censored follow-up table, and distinguish them from a separate constant-hazard exponential median.

Separate the empirical survival steps from a parametric model

Kaplan–Meier multiplies conditional survival fractions at ordered event times. The risk set includes only records still under observation just before that time. Censoring removes records from later risk sets without itself causing a survival drop. Valid interpretation requires appropriate non-informative censoring assumptions.

This is a fictional teaching worksheet, not a clinical prognosis. The B-column inputs illustrate a single step. The independent G:J table starts with ten units and demonstrates successive steps, assuming censorings listed on a row occur after that row’s events and before the next event time; there are no new entrants.

The exponential calculation is a different model with a constant, positive hazard. Its median LN(2)/lambda is not an estimate of the Kaplan–Meier median. The latter is the first observed time where the KM curve reaches or falls below 0.5 and may not be reached during follow-up. No hazard fitting or uncertainty interval is performed here.

Survival Analysis MetricFormulaS_prev = 0.85, n_i = 40, d_i = 4 (lambda = 0.15/yr)Censored-Only Interval (d_i = 0)
Interval Survival Prob p_i(B3 - B4) / B336 / 40 = 90.00% (0.9000)40 / 40 = 100.00% (1.0000)
Updated Kaplan-Meier S(t_i)B2 * ((B3 - B4) / B3)0.85 * 0.90 = 76.50% (0.7650)0.8500 (Curve stays flat!)
Exponential Median SurvivalLN(2) / B50.6931 / 0.15 = 4.62 years4.62 years

Kaplan-Meier Product-Limit Survival Update S(t_i) = S_prev * ((n_i - d_i) / n_i)

Multiply the previous probability by the fraction remaining event-free in the current risk set. Keep full precision when chaining steps; format percentages for display.

=IF(COUNT(B2:B4)<>3,"Invalid inputs",IF(OR(B2<0,B2>1,B3<0,B4<0,B3<>INT(B3),B4<>INT(B4),B4>B3),"Invalid inputs",IF(B3=0,"Not estimable",B2*((B3-B4)/B3))))

Exponential Constant-Hazard Median Survival Time = LN(2) / lambda

The rate unit determines the time unit: a rate per year gives a median in years. This positive-rate exponential-model result is rounded to two decimals for display. Zero hazard has no finite median in this model.

=IF(NOT(ISNUMBER(B5)),"Invalid inputs",IF(B5<=0,"Invalid inputs",ROUND(LN(2)/B5,2)))

Conditional survival for one step

Divide the remaining event-free count by the number at risk before the event.

=IF(COUNT(B3:B4)<>2,"Invalid inputs",IF(OR(B3<0,B4<0,B3<>INT(B3),B4<>INT(B4),B4>B3),"Invalid inputs",IF(B3=0,"Not estimable",(B3-B4)/B3)))

A three-step example with censoring

Columns G:I contain risk sets, events and censorings. G3 = G2-H2-I2 and G4 = G3-H3-I3. J2 starts at probability 1; J3 and J4 multiply the previous cumulative estimate. Initial risk sets are 10, 7 and 5, producing final survival about 0.548571.

Change I2 from 1 to 2: the first survival step stays 0.8, but later risk sets shrink and final survival becomes 0.5. Censoring is not counted as failure. The formula below is the final step; the earlier helpers are already in the workbook.

=IF(NOT(ISNUMBER(J3)),"Invalid prior step",IF(COUNT(G4:I4)<>3,"Invalid inputs",IF(OR(G4<0,H4<0,I4<0,G4<>INT(G4),H4<>INT(H4),I4<>INT(I4),H4+I4>G4),"Invalid inputs",IF(G4=0,"Not estimable",J3*(G4-H4)/G4))))

Try the example

Use the original values or change them to test your understanding.

Further reading