Reliafy
← Model reference

Life distributions

These describe time to a single failure for an item that is run to failure or replaced. Parameterisations below are the ones Reliafy fits and reports, which are SurPyval's — worth checking against your textbook, because conventions differ (notably Gamma, whose second parameter here is a rate).

Throughout, R(t) is reliability (the survival function), F(t) = 1 − R(t) is unreliability, and h(t) is the hazard rate.

Any of these can be fitted as a mixture of 2–4 components — several copies of the same distribution with weights summing to 1 — for data holding more than one failure mode. That is what curves the probability plot: no single distribution can follow two modes at once. A mixture always fits better than a single distribution because it has more parameters, so judge it on the AIC, not on the plot. Mixture fits report no confidence bounds.

In Python: these are SurPyval's distributions. Its parametric modelling docs fit them in code, and Parametric Estimation explains the estimation methods.

Weibullweibull

Parameters
α> 0β> 0
Support
0 to ∞
Modifiers
Offset (3-parameter)

The workhorse of life-data analysis. Its shape parameter spans infant-mortality, random, and wear-out behaviour, which is why it fits so much real equipment — and why β is usually the most decision-relevant number on the page.

R(t) = exp(−(t/α)^β)
h(t) = (β/α)·(t/α)^(β−1)

α is the characteristic life (the 63.2% point); β is the shape.

Reading β: below 1, failures are decreasing — infant mortality, and scheduled replacement makes things worse. Around 1 the rate is constant and age tells you nothing. Above 1 it's wear-out, and preventive replacement can pay.

Use it when you have no strong reason to pick something else. Watch for data that curves on the probability plot — that usually means two failure modes mixed together, better split than forced into one Weibull.

Exponentialexponential

Parameters
λ> 0
Support
0 to ∞
Modifiers
Offset (3-parameter)

Constant failure rate — the memoryless case. A used unit is exactly as good as a new one.

R(t) = exp(−λt)
h(t) = λ          (constant)

λ is the failure rate; the mean life is 1/λ.

Use it for genuinely random, externally-driven failures, and as a null model to test wear-out against. Watch out: it's assumed far more often than it's true, usually because it's convenient. If the real β is 2, exponential will badly misprice a replacement policy. Fit Weibull and look at β before accepting it.

Normalnormal

Parameters
μany real valueσ> 0
Support
−∞ to ∞

Gaussian location–scale. Symmetric, with a hazard that always increases.

R(t) = 1 − Φ((t − μ)/σ)

Use it for wear-out that clusters tightly around a mean — tool wear, some mechanical fatigue. Watch out: its support is the whole real line, so it puts non-zero probability on negative life. That's harmless when μ ≫ σ and misleading when it isn't.

Lognormallognormal

Parameters
μany real valueσ> 0
Support
0 to ∞
Modifiers
Offset (3-parameter)

Normal on the log scale — right-skewed, with a hazard that rises then falls.

F(t) = Φ((ln t − μ)/σ)

μ and σ are the mean and standard deviation of ln t, not of t.

Use it for repair times (the standard choice for MTTR), fatigue crack growth, and degradation-driven failures — anything produced by many multiplicative effects. Watch out for the parameters being on the log scale; reading μ as a mean life is a common and large error.

Gammagamma

Parameters
α> 0β> 0
Support
0 to ∞
Modifiers
Offset (3-parameter)

A sum of exponential stages. Naturally models failure after a number of independent shocks or phases.

F(t) = P(α, β·t)      (regularised lower incomplete gamma)

α is the shape; β is a rate, not a scale — mean life is α/β. Many texts parameterise Gamma with a scale, so halve your attention here when comparing.

Use it when failure follows an accumulation of events. Watch out: it often fits similarly to Weibull; prefer whichever the physics supports rather than a marginal AIC difference.

LogLogisticloglogistic

Parameters
α> 0β> 0
Support
0 to ∞
Modifiers
Offset (3-parameter)

Log-scale logistic — like lognormal but with heavier tails, and a closed-form survival function.

R(t) = 1 / (1 + (t/α)^β)

Use it for the same skewed situations as lognormal, especially when you want a non-monotonic hazard in closed form. Watch out: the heavy tail implies a meaningful chance of very long lives, which can flatter long-horizon predictions.

Exponentiated Weibullexpo_weibull

Parameters
α> 0β> 0μ> 0
Support
0 to ∞
Modifiers
Offset (3-parameter)

Exponentiated Weibull — a third shape parameter that unlocks non-monotonic hazards, including genuine bathtub curves.

R(t) = 1 − [1 − exp(−(t/α)^β)]^μ

Use it when a two-parameter Weibull visibly can't follow the data and you have enough failures to justify a third parameter. Watch out for overfitting: with small samples the extra flexibility buys fit, not insight.

Gumbel (smallest EV)gumbel

Parameters
μany real valueσ> 0
Support
−∞ to ∞

Smallest-extreme-value distribution. The limiting distribution of the minimum of many independent lives — a weakest-link system.

R(t) = exp(−exp((t − μ)/σ))
h(t) = (1/σ)·exp((t − μ)/σ)

Use it for weakest-link failure, and note the close relation to Weibull: if t is Weibull, ln t is smallest-extreme-value. Watch out: support is the whole real line, so like Normal it admits negative times.

Gumbel (largest EV)gumbel_lev

Parameters
μany real valueσ> 0
Support
−∞ to ∞

Largest-extreme-value distribution — the limit of the maximum of many draws.

F(t) = exp(−exp(−(t − μ)/σ))

Use it for maxima rather than minima: peak loads, extreme temperatures, worst-case demand. Watch out: it's rarely the right model for time-to-failure itself, which is usually a minimum problem — reach for gumbel there.

Logisticlogistic

Parameters
μany real valueσ> 0
Support
−∞ to ∞

Symmetric location–scale with heavier tails than Normal.

R(t) = 1 / (1 + exp((t − μ)/σ))

Use it as a Normal alternative when the tails look too heavy for Gaussian. Watch out: same real-line support caveat as Normal, and it's uncommon as a primary life model — usually it appears as a regression baseline.

Rayleighrayleigh

Parameters
σ> 0
Support
0 to ∞
Modifiers
Offset (3-parameter)

A single-parameter model with a linearly rising hazard — exactly Weibull with β = 2.

R(t) = exp(−t²/(2σ²))
h(t) = t/σ²

Use it when you have good reason to believe hazard grows linearly with age and want to spend only one parameter — small samples benefit from the constraint. Watch out: if β isn't really 2, you've hard-coded a wrong assumption; fit Weibull first and check.

Beta (0 to 1)beta

Parameters
α> 0β> 0
Support
0 to 1

Life as a fraction between 0 and 1 — a proportion degraded, a fraction of rated life, a share of a mission.

f(x) = x^(α−1)·(1 − x)^(β−1) / B(α, β),   0 < x < 1

Both shapes α and β are positive; α = β = 1 is the uniform.

Use it when the quantity you recorded is bounded at 0 and 1 by its nature. Watch out: it can't fit times — anything at or past 1 is refused — so it never enters Best fit or a mixture. Rescale only when the bound is real, not to squeeze ordinary lifetimes into (0, 1).

Beta (four-parameter)beta4

Parameters
α> 0β> 0aany real valuebany real value
Support
−∞ to ∞

A Beta on an interval of your data's own scale — four parameters: the two shapes and the end points a and b.

f(x) = (x − a)^(α−1)·(b − x)^(β−1) / (B(α, β)·(b − a)^(α+β−1)),   a < x < b

Use it when life is known to sit between a floor and a ceiling, as with a part retired at a fixed limit. Watch out: the end points are estimated from the sample, so the fit says every unit fails by b — a strong claim past the largest observation. With shapes below 1 the likelihood has no maximum: fit by maximum product of spacings (MPS) then. Not a Best-fit candidate.

Uniformuniform

Parameters
aany real valuebany real value
Support
−∞ to ∞

Equally likely anywhere between a and b.

R(t) = (b − t)/(b − a),   a ≤ t ≤ b
h(t) = 1/(b − t)

Use it for a quick bound when all you know is a range, or as a check on a fitted shape. Watch out: the estimates are the smallest and largest observations, and they carry no confidence bounds. Not a Best-fit candidate.

Royston-Parmar (flexible spline)royston_parmar

Support
0 to ∞

A flexible spline for the survival curve (Royston and Parmar): the log cumulative hazard is a restricted cubic spline in log time, with three spline terms on the proportional-hazards scale.

log H(t) = s(log t; γ₀, γ₁, γ₂, γ₃)

With one term it is exactly the Weibull. The coefficients γ have no physical meaning on their own; read the curve instead, which Reliafy draws over the data's Kaplan-Meier estimate.

Use it when no single distribution follows the data — a hazard that rises and then falls, say — but you still want smooth curves, B-lives with bounds and an AIC to compare with the plain distributions on the same data. Watch out: like any spline, it follows the data closely inside their range and says little beyond it.