The Living Thing / Notebooks :

Survival analysis and reliability

Hazard rates, proportional hazard regression, life testing, mean time to failure

Estimating survival rates

Here’s the set-up: looking at a data set of individuals’ lifespans you would like to infer the distributions—Analysing when people die, or things break etc. The statistical problem of estimating how long people’s lives are is complicated somewhat by the particular structure of the data – loosely, “every person dies at most one time”, and there are certain characteristic difficulties that arise, such as right-censorship. (If you are looking at data from an experiment and not all your subjects have died yet, they presumably die later, but you don’t know when.)

Handily, the tools one invents to solve this kind of problem end up being useful to solve other problems, such as point process inference.

So let’s say you have a a random variable \(X\) of positive support according to which the lifetime of your people (components, machines, whatever) are distributed, which possesses a pdf \(f_X(t)\) and cdf \(F_X(T)\).

We define several useful functions:

The survival function (which is also the right tail CDF)


the hazard function


the cumulative hazard function

\(\Lambda(t) :=\int_0^t\lambda(s) \textrm{d} s.\)

Why? Because it happens to come out nicely if we do that, and these functions acquire intuitive interpretations once we squint at them a bit. The survival function is the probability of an individual surviving to time \(t\) etc. The hazard function will turn out to be the rate of deaths at time \(t\) given that one has not yet occurred.

Using the chain rule we can find the following useful relation:

\[S(t)=\exp[-\Lambda (t)]={\frac {f(t)}{\lambda (t)}}\]

The hazard function can be pretty much any non-negative function of non-negative support (or more generally, a Schwartz distribution, but let’s ignore that possibility for the moment.)

Life table method

Over intervals of time \([t,u]\) we define the cumulative hazard increment

\[H(t,u) :=\int_t^u h (s) \textrm{d} s = H(u)-H(t) \]

and the survival increment

\[\chi(t,u) :=\frac{\chi(u)}{\chi(t)}\]

The following relations are useful

\[\chi(t)=\exp[-H (t)]={\frac {f(t)}{h (t)}}.\]


\[ \chi(t,u)=\frac{\exp[-H (u)]}{\exp[-H (t)]}=\exp[H (t)-H (u)]=\exp[-H (t,u)] \]

and so

\[-\log\chi(t,u)=H (t,u).\]

We estimate hazard via the life table method. Given a time interval \([t_{i}, t_{i+1})\) and survival counts\(N(t_{i})\) and \(N(t_{i+1})\) at, respectively, the beginning and end of that interval, (assuming no immigration) the life table estimate of a survival increment is

\[\hat{\chi}(t_i, t_{i+1}):= \frac{N(t_{i+1})}{N(t_{i})}\]

Plugging this in, we obtain cumulative hazard increment estimates

\[\begin{aligned} \hat{H} (t_i, t_{i+1})&=-\log \hat{\chi}(t_i, t_{i+1})\\ &=\log \frac{ N(t_{i}) }{ N(t_{i+1}) } \end{aligned}\]

From this we construct further point estimates of \(H\) at (t) as

\[\hat{H} (t)=\sum_{t_i\leq t}\hat{H}(t_{i},t_{i+1})\] By introducing assumptions on the functional form, can estimate the entire hazard function. For example, we can take \(h (t)\) to be piecewise constant, so that

\[\begin{aligned} h (t)=\sum_i\mathbb{I}\{t_{i}<t<t_{i+1}\} h_i \end{aligned}\]

This corresponds to the assumption that \(H\) is piecewise linear and continuous; we are constructing a piecewise linear interpolant. Thus, for \(t\in(t_i,t_{i+1}],\) we such an interpolant \(\hat{H}\) for \(t\in[0,t_M]\) by a first order polynomial spline with knots \(0,t_1,t_2,\dots, t_M\) and values \(\hat{H}(0), \hat{H}(t_1), \hat{H}(t_2) \dots,\hat{H}(t_M).\)

Nelson-Aalen estimates

a.k.a. Empirical Cumulative Hazard Function estimator.

The original Aalen paper on this is notoriously beautiful because of clever construction of a life point process and associated martingale. Clear and worth reading. Spoiler, despite the elegant derivation, the actual estimator is something a high-school student could probably discover by guessing.


Other reliability stuff

Reliawiki has handy stuff, e.g. comprehensive docs on the Weibull law. It’s in support of some software package their are trying to sell, I think?