I'm looking into median survival using Kaplan-Meier in different states for a type of cancer. There are quite big differences between the states. How can i compare the median survival between all the states and determine which ones are significantly different from the mean median survival all across the country?

  • $\begingroup$ Could you pls give some indication about sample sizes, time frame, % survival, etc. so that we get a better idea of the design of your study? $\endgroup$
    – chl
    Commented Dec 23, 2010 at 21:40
  • $\begingroup$ are there censored values in the data - other than for the largest values? $\endgroup$
    – ronaf
    Commented Dec 25, 2010 at 4:31
  • $\begingroup$ There are indeed censored values in the data and the total population is approx 1500, median overall survival is 18 months (range 300-600 days)... the time frame is the period 2000-2007. $\endgroup$
    – Misha
    Commented Dec 26, 2010 at 17:10

3 Answers 3


One thing to keep in mind with the Kaplan-Meier survival curve is that it is basically descriptive and not inferential. It is just a function of the data, with an incredibly flexible model that lies behind it. This is a strength because this means there is virtually no assumptions that might be broken, but a weakness because it is hard to generalise it, and that it fits "noise" as well as "signal". If you want to make an inference, then you basically have to introduce something that is unknown that you wish to know.

Now one way to compare the median survival times is to make the following assumptions:

  1. I have an estimate of the median survival time $t_{i}$ for each of the $i$ states, given by the kaplan meier curve.
  2. I expect the true median survival time, $T_{i}$ to be equal to this estimate. $E(T_{i}|t_{i})=t_{i}$
  3. I am 100% certain that the true median survival time is positive. $Pr(T_{i}>0)=1$

Now the "most conservative" way to use these assumptions is the principle of maximum entropy, so you get:

$$p(T_{i}|t_{i})= K exp(-\lambda T_{i})$$

Where $K$ and $\lambda$ are chosen such that the PDF is normalised, and the expected value is $t_{i}$. Now we have:

$$1=\int_{0}^{\infty}p(T_{i}|t_{i})dT_{i} =K \int_{0}^{\infty}exp(-\lambda T_{i})dT_{i} $$ $$=K \left[-\frac{exp(-\lambda T_{i})}{\lambda}\right]_{T_{i}=0}^{T_{i}=\infty}=\frac{K}{\lambda}\implies K=\lambda $$ and now we have $E(T_{i})=\frac{1}{\lambda}\implies \lambda=t_{i}^{-1}$

And so you have a set of probability distributions for each state.

$$p(T_{i}|t_{i})= \frac{1}{t_{i}} exp\left(-\frac{T_{i}}{t_{i}}\right)\;\;\;\;\;(i=1,\dots,N)$$

Which give a joint probability distribution of:

$$p(T_{1},T_{2},\dots,T_{N}|t_{1},t_{2},\dots,t_{N})= \prod_{i=1}^{N}\frac{1}{t_{i}} exp\left(-\frac{T_{i}}{t_{i}}\right)$$

Now it sounds like you want to test the hypothesis $H_{0}:T_{1}=T_{2}=\dots=T_{N}=\overline{t}$, where $\overline{t}=\frac{1}{N}\sum_{i=1}^{N}t_{i}$ is the mean median survivial time. The severe alternative hypothesis to test against is the "every state is a unique and beautiful snowflake" hypothesis $H_{A}:T_{1}=t_{1},\dots,T_{N}=t_{N}$ because this is the most likely alternative, and thus represents the information lost in moving to the simpler hypothesis (a "minimax" test). The measure of the evidence against the simpler hypothesis is given by the odds ratio:

$$O(H_{A}|H_{0})=\frac{p(T_{1}=t_{1},T_{2}=t_{2},\dots,T_{N}=t_{N}|t_{1},t_{2},\dots,t_{N})}{ p(T_{1}=\overline{t},T_{2}=\overline{t},\dots,T_{N}=\overline{t}|t_{1},t_{2},\dots,t_{N})}$$ $$=\frac{ \left[\prod_{i=1}^{N}\frac{1}{t_{i}}\right] exp\left(-\sum_{i=1}^{N}\frac{t_{i}}{t_{i}}\right) }{ \left[\prod_{i=1}^{N}\frac{1}{t_{i}}\right] exp\left(-\sum_{i=1}^{N}\frac{\overline{t}}{t_{i}}\right) } =exp\left(N\left[\frac{\overline{t}}{t_{harm}}-1\right]\right)$$


$$t_{harm}=\left[\frac{1}{N}\sum_{i=1}^{N}t_{i}^{-1}\right]^{-1}\leq \overline{t}$$

is the harmonic mean. Note that the odds will always favour the perfect fit, but not by much if the median survival times are reasonably close. Further, this gives you a direct way to state the evidence of this particular hypothesis test:

assumptions 1-3 give maximum odds of $O(H_{A}|H_{0}):1$ against equal median survival times across all states

Combine this with a decision rule, loss function, utility function, etc. which says how advantageous it is to accept the simpler hypothesis, and you've got your conclusion!

There is no limit to the amount of hypothesis you can test for, and give similar odds for. Just change $H_{0}$ to specify a different set of possible "true values". You could do "significance testing" by choosing the hypothesis as:

$$H_{S,i}:T_{i}=t_{i},T_{j}=T=\overline{t}_{(i)}=\frac{1}{N-1}\sum_{j\neq i}t_{j}$$

So this hypothesis is verbally "state $i$ has different median survival rate, but all other states are the same". And then re-do the odds ratio calculation I did above. Although you should be careful about what the alternative hypothesis is. For any one of these below is "reasonable" in the sense that they might be questions you are interested in answering (and they will generally have different answers)

  • my $H_{A}$ defined above - how much worse is $H_{S,i}$ compared to the perfect fit?
  • my $H_{0}$ defined above - how much better is $H_{S,i}$ compared to the average fit?
  • a different $H_{S,k}$ - how much is state $k$ "more different" compared to state $i$?

Now one thing which has been over-looked here is correlations between states - this structure assumes that knowing the median survival rate in one state tells you nothing about the median survival rate in another state. While this may seem "bad" it is not to difficult to improve on, and the above calculations are good initial results which are easy to calculate.

Adding connections between states will change the probability models, and you will effectively see some "pooling" of the median survival times. One way to incorporate correlations into the analysis is to separate the true survival times into two components, a "common part" or "trend" and an "individual part":


And then constrain the individual part $U_{i}$ to have average zero over all units and unknown variance $\sigma$ to be integrated out using a prior describing what knowledge you have of the individual variability, prior to observing the data (or jeffreys prior if you know nothing, and half cauchy if jeffreys causes problems).

  • $\begingroup$ (+1) Very interesting. Your post also made me insert a comment in my answer. $\endgroup$
    – GaBorgulya
    Commented Apr 2, 2011 at 18:08
  • $\begingroup$ Perhaps I have missed it, but where is $M_1$ defined? $\endgroup$
    – cardinal
    Commented Apr 2, 2011 at 21:06
  • $\begingroup$ @cardinal, my apologies - its a typo. will be removed $\endgroup$ Commented Apr 2, 2011 at 23:44
  • $\begingroup$ no apology necessary. Just wasn't sure if I had skipped over it while reading or was simply missing something obvious. $\endgroup$
    – cardinal
    Commented Apr 3, 2011 at 0:43

Thought I just add to this topic that you might be interested in quantile regression with censoring. Bottai & Zhang 2010 proposed a "Laplace Regression" that can do just this task, you can find a PDF on this here. There is a package for Stata for this, it has yet not been translated to R although the quantreg package in R has a function for censored quantile regression, crq, that could be an option.

I think the approach is very interesting and might be much more intuitive to patients that hazards ratios. Knowing for instance that 50 % on the drug survive 2 more months than ones that don't take the drug and the side effects force you to stay 1-2 months at the hospital might make the choice of treatment much easier.

  • $\begingroup$ I don't know "Laplace Regression", but regarding your 2nd paragraph I wonder if I'm understanding it correctly. Usually in survival analysis (thinking in terms of accelerated failure time), we would say something like 'the 50th percentile for the drug group comes 2 months later than the 50th % for the control group'. Is that what you mean, or does the output of LR afford a different interpretation? $\endgroup$ Commented Apr 29, 2012 at 17:53
  • $\begingroup$ @gung: I think you're right in your interpretation - changed the text, better? I haven't used the regression models myself although I've encountered them recently in a course. Tt's an interesting alternative to regular Cox-models that I've used a lot. Although I probably need to spend more time digesting the idea I feel that it's probably easier for me to explain to my patients since I frequently use KM curves when explaining to my patients. HR demands that you really understand the difference between relative and absolute risks - a concept that can take some time to explain... $\endgroup$
    – Max Gordon
    Commented Apr 29, 2012 at 18:14
  • $\begingroup$ econ.uiuc.edu/~roger/research/crq/note.pdf $\endgroup$
    – Misha
    Commented May 3, 2012 at 19:42
  • $\begingroup$ Thank you @Misha for the link. The author has a reply here: onlinelibrary.wiley.com/doi/10.1002/bimj.201100103/abstract $\endgroup$
    – Max Gordon
    Commented May 4, 2012 at 8:52

First I would visualize the data: calculate confidence intervals and standard errors for the median survivals in each state and show CIs on a forest plot, medians and their SEs using a funnel plot.

The “mean median survival all across the country” is a quantity that is estimated from the data and thus has uncertainty so you can not take it as a sharp reference value during significance testing. An other difficulty with the mean-of-all approach is that when you compare a state median to it you are comparing the median to a quantity that already includes that quantity as a component. So it is easier to compare each state to all other states combined. This can be done by performing a log rank test (or its alternatives) for each state.
(Edit after reading the answer of probabilityislogic: the log rank test does compare survival in two (or more) groups, but it is not strictly the median that it is comparing. If you are sure it is the median that you want to compare, you may rely on his equations or use resampling here, too)

You labelled your question [multiple comparisons], so I assume you also want to adjust (increase) your p values in a way that if you see at least one adjusted p value less than 5% you could conclude that “median survival across states is not equal” at the 5% significance level. You may use generic and overly conservative methods like Bonferroni, but the optimal correction scheme will take the correlations of the p values into consideration. I assume that you don't want to build any a priori knowledge into the correction scheme, so I will discuss a scheme where the adjustment is multiplying each p value by the same C constant.

As I don't know how to derive the formula to obtain the optimal C multiplyer, I would use resampling. Under the null hypothesis that the survival characteristics are the same across all states, so you can permutate the state labels of the cancer cases and recalculate medians. After obtaining many resampled vectors of state p values I would numerically find the C multiplyer below which less than 95% of the vectors include no significant p values and above which more then 95%. While the range looks wide I would repeatedly increase the number of resamples by an order of magnitude.

  • $\begingroup$ Good advice about visualising the data. (+1) $\endgroup$ Commented Apr 3, 2011 at 0:56
  • $\begingroup$ @probabilityislogic Thanks! I also welcome criticism, particularly if constructive. $\endgroup$
    – GaBorgulya
    Commented Apr 3, 2011 at 1:16
  • $\begingroup$ the only criticism I have is the use of p-values, but this is more a "chip on my shoulder" than anything in your answer - seems like if you are going to use p-values, then what you recommend is good. I just don't think using p-values is good. see here for my exchange with @eduardo in the comments about p-values. $\endgroup$ Commented Apr 3, 2011 at 1:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.