These describe repairable systems, which is a genuinely different problem
from the life distributions. A distribution asks how long until this item
fails? — one failure, then the item is gone or replaced. A recurrent-event
model asks how often does this system fail, and is that rate changing? — the
system is repaired and keeps running, accumulating failures over its life.
Using a Weibull where you need one of these is the most common serious mistake
in reliability analysis. The tell is in the data: if your records are
times between failures on the same unit, or a list of dates when a system was
repaired, you are here, not in life-data.
The central quantity is the mean cumulative function, M(t) — the expected
number of failures by time t. Its slope is the rate of occurrence of
failures, λ(t). Whether that slope rises, falls or holds flat is usually the
whole answer:
- falling — reliability growth. Fixes are working; the system is maturing.
- flat — a stable system at a steady failure rate.
- rising — deterioration. Repairs are not restoring the system, and you're
heading toward overhaul or replacement.
Reliafy fits any of the models below to the same event history, so the
comparison between them is direct.
How Reliafy reads the trend. A fit to data reports the growth parameter with
its 95% confidence interval, and the verdict comes from that interval, not from
the point estimate alone: deteriorating when the whole interval is above the
no-trend value (β = 1), improving when it is all below, and stable when it
includes it — the data don't show a trend either way. Two trend tests run
alongside, each testing every system over its own observation window: the
Laplace test and the MIL-HDBK-189C test (the chi-squared test of the
power-law shape). A Cramér-von Mises test, with a bootstrap p-value, checks
the fitted model against the event times; a small p-value means the model's
shape doesn't match the data.
The ROCOF and the instantaneous MTBF are reported at the end of observation
with 95% bounds, along with the demonstrated MTBF — its one-sided 90% lower
bound, "MTBF ≥ X at 90%". For a Crow-AMSAA fit to a time-terminated test (every
system from 0 to the same end) or one system run to its last failure these are
Crow's exact bounds, as tabulated in MIL-HDBK-189C; otherwise they are Wald
(delta-method) bounds.
In Python: these are SurPyval's
recurrent-event models. Its
recurrent event modelling docs
fit them in code.
Crow-AMSAA (NHPP)crow_amsaa
The standard reliability-growth model — a non-homogeneous Poisson process
with a power-law intensity, also known as the Crow-AMSAA or power-law process.
M(t) = λ · t^β
λ(t) = λ · β · t^(β−1)
β is the whole story, and it reads much like a Weibull shape — but means
something different, because it describes a rate of events rather than a
time to one failure:
β < 1 — failures are getting less frequent. Reliability growth.
β = 1 — constant rate; this reduces exactly to the HPP.
β > 1 — failures are getting more frequent. Deterioration.
Use it as the default for repairable-system event data, for tracking a
development programme, and for projecting how many failures a fleet will see
next year. Watch out: it assumes minimal repair — the system is returned
to the condition it was in just before the failure, not to new. It also assumes
one smooth trend, so a system that improved and then began wearing out will fit
a misleading average of the two; look at the MCF plot before trusting β.
Duaneduane
The original graphical reliability-growth method, and the ancestor of
Crow-AMSAA. Plots cumulative MTBF against cumulative time on log-log axes, where
growth appears as a straight line.
Cumulative MTBF = t / M(t), linear on log-log
Use it for the familiar Duane plot, and when reporting to an audience that
expects it — it remains the convention in defence and aerospace development
programmes. Watch out: it is the same power law as Crow-AMSAA, fitted by
regression on cumulative points rather than by maximum likelihood. Those
cumulative points are not independent, so the fit is less efficient and the
apparent tightness of the line overstates the confidence. Use it to communicate,
and Crow-AMSAA to decide.
Homogeneous Poisson (HPP)hpp
A constant failure rate over time — the homogeneous Poisson process, the
recurrent-event counterpart of the exponential distribution.
M(t) = λ · t
λ(t) = λ (constant)
Use it as the null model. Fit it alongside Crow-AMSAA: if β's interval
covers 1, the extra parameter isn't earning its place and you should report a
steady rate rather than a trend. It's also the right model for a mature system
in steady state, and the assumption behind most spares and availability
calculations.
Watch out: assuming an HPP when the rate is genuinely rising is how
deterioration gets missed until it's expensive. Always look at the trend before
settling on a constant rate.
Cox-Lewis (log-linear NHPP)cox_lewis
A log-linear trend in the failure rate — the Cox-Lewis non-homogeneous
Poisson process, where the rate changes by a fixed proportion per unit time
rather than following a power of time.
λ(t) = exp(α + β·t)
M(t) = exp(α) · (exp(β·t) − 1) / β
Here β is a slope, not a shape: β > 0 is deteriorating, β < 0 improving,
and β = 0 is the HPP. The verdict uses its 95% interval against 0.
Use it as the alternative to Crow-AMSAA when the trend doesn't look like a
power law — a rate that was already well above zero at the start and grows
steadily, as wear-out in an old system often does. Compare the two by AIC and
the goodness-of-fit test. Watch out: with β < 0 the expected total number
of failures levels off at exp(α) / −β, so long-range predictions from an
improving fit can be optimistic; and growth projection and the demonstrated-MTBF
exact bounds are Crow-AMSAA methods only.