RELIABILITY / 016OFFLINE
Weibull reliability
Fit a Weibull distribution to failure times with suspended units: shape and scale with confidence intervals, B10 and other B-lives, MTTF, reliability at any time, probability plot and hazard function.
Input
Example dataReplace with your own life data
Paste, open a CSV, TSV, TXT or XLSX file (up to 20 MB), or drop it on the field. Files are read in this browser only.
Hours Status 369 C 506 F 517 C 519 F
1 row = 1 unit (or group of units)
Columns: tab, ; or ,
Decimals: 12,5 or 12.5
Paste measurements to start.
One row per unit: the time it failed or was removed (censored, suspended) and its status. A Frequency column counts identical rows. Times must be above 0.
Runs in this browser. Data is not uploaded or stored.
Results
—
Method
- Data: one row per unit (or per group of identical units with a Frequency column): the time to failure or to removal, in any unit (hours, cycles, kilometres). A unit that was still working when the test stopped or was removed for another reason is right-censored (suspended): it is known to have lived at least that long. Type I (time-terminated), Type II (failure-terminated) and multiple censoring are all handled the same way. Interval and left censoring and the 3-parameter Weibull (threshold) are not supported. Times must be above 0; frequencies are whole numbers (0 leaves the row out).
- Censoring column: the failure value (typed, case ignored) marks failures; every other value is censored. Left empty, F, Failed, Failure or 1 mean failed and C, Cens, Censored, S, Susp, Suspended, Suspension, R, Removed, Running, Survived or 0 censored; a second unknown text value takes the other meaning, two unknown values (or an unknown number such as 2) must be typed. The summary line says how the column was read. Without a censoring column every time is a failure.
- Model: 2-parameter Weibull, F(t) = 1 − exp(−(t/η)^β), with shape β and scale η (the characteristic life: 63.2% fail by η). With y = ln t this is a smallest extreme value distribution with location μ = ln η and scale σ = 1/β, which the formulas below use.
- Maximum likelihood (Minitab’s default): failures contribute the density and censored units the survival probability, log L = Σfailures w (ln β − ln t + z) − Σall w ez with z = β ln(t/η) and w the frequency. η is eliminated (ηβ = Σ w tβ / r, r the number of failures) and the remaining equation in β is solved by Newton’s method inside a bracket; it has one root when not every failure is at the longest time. The log-likelihood shown is that of the times themselves (densities of t, as scipy’s weibull_min; not compared with Minitab’s printout).
- Standard errors and intervals (maximum likelihood only): covariance = inverse of the observed Fisher information (the negative Hessian of log L at the estimates, analytic). Intervals are normal-approximation (Wald) intervals on the log scale, as Minitab: β · exp(±z SE(β)/β), η · exp(±z SE(η)/η); percentiles, mean, standard deviation, median, quartiles and IQR in the same way, with the delta method for the standard error of their logarithm (for example Var ln tₚ = Var μ + wₚ² Var σ + 2wₚ Cov(μ, σ), wₚ = ln(−ln(1 − p))). A survival probability gets the interval of z = (ln t − μ)/σ mapped through R = exp(−ez). z is the normal quantile 1 − α/2 for two-sided intervals and 1 − α for a bound. These intervals rely on large samples; with few failures they are rough (a warning below 5 failures). Likelihood-ratio intervals are not offered.
- Least squares (rank regression): each failure gets Johnson’s adjusted rank (mean order number): units in time order, a failure before a censored unit at the same time, rank = previous rank + (n + 1 − previous rank) / (1 + units from this one on); without censoring the ranks are 1, 2, 3 … Benard’s median rank F = (rank − 0.3) / (n + 0.4) (Minitab’s default plotting position) is the plotted percent. “X on Y” fits ln t = μ + σ ln(−ln(1 − F)) by least squares (Minitab’s LSXY); “Y on X” fits ln(−ln(1 − F)) = β ln t − β ln η (rank regression on Y, common in reliability handbooks). Every failure is one point, so tied failures and frequencies give several points. Least squares gives estimates only: no standard errors or intervals are shown.
- Results: mean (MTTF) = η Γ(1 + 1/β), standard deviation = η √(Γ(1 + 2/β) − Γ(1 + 1/β)²), median, quartiles and IQR; percentiles (B-lives) tₚ = η (−ln(1 − p))1/β, B10 = the time by which 10% fail; reliability R(t) = exp(−(t/η)β), unreliability F(t) = 1 − R(t) and failure rate (hazard) h(t) = (β/η)(t/η)β−1 at the typed times. Percentiles beyond the last failure and times beyond the longest time are flagged as extrapolations.
- Reading β: below 1 the failure rate falls with age (early failures, infant mortality: burn-in, process or incoming problems), about 1 it is constant (random failures), above 1 it rises (wear-out: fatigue, wear, corrosion; preventive replacement can pay). With maximum likelihood the summary uses the interval of β: only an interval wholly above or below 1 is read as wear-out or early failures.
- Goodness of fit: the correlation of the probability plot points (ln t against ln(−ln(1 − F))) is shown for every method; the closer to 1, the straighter the plot. Minitab’s adjusted Anderson-Darling statistic for censored data is not computed: its exact form for censored samples could not be verified, so FactoKit does not print a number it cannot check. Judge the fit by the probability plot: points along the line, no systematic curve (a curve can mean a threshold (3-parameter), a mixture of failure modes or another distribution).
- Charts: Weibull probability plot (log time axis against ln(−ln(1 − F)) labelled in percent; the fitted line and, for maximum likelihood, the percentile bands; at most 1000 points are drawn), survival function with its bands, hazard function and probability density, as Minitab’s distribution overview plot. For β < 1 the hazard and density axes stop at their value at the 2nd percentile.
- Checks: an independent Python script maximises the scipy log-likelihood (weibull_min logpdf / logsf) with scipy.optimize and the profile equation with brentq, compares the analytic Hessian in (η, β) with a numerical one, computes every standard error by the delta method with numerical gradients, checks Johnson’s ranks against a brute-force enumeration of all orderings consistent with the censoring, and agrees with lifelines’ WeibullFitter (estimates and standard errors) and, for uncensored data, with scipy.stats.weibull_min.fit. The tool matches the script to about 9 significant digits. Published data: the 23 ball bearings of Lieblein & Zelen (1956) give β = 2.10 and η = 81.9 million revolutions, the maximum likelihood estimates printed in the reliability literature (values recalled, not re-read from the source).
- Example: synthetic data, not from a real rig: 20 bearings on an endurance test stopped at 1500 h, three removed early for rig faults; 11 failed. The censored units count: ignoring them would understate the life.
- Files: CSV, TSV and TXT are read as if pasted (UTF-8, UTF-16, otherwise Windows-1257). XLSX: choose the sheet and the columns or a cell range; formula cells use the value Excel last saved, dates are kept as text. Files up to 20 MB are read in this browser only and never uploaded.
- XLSX files are read with SheetJS Community Edition 0.20.3, Apache License 2.0 (license text at the end of this file).