Life Data Analysis · Chapter 4

Worked Example

The method applied end-to-end on a concrete system, with numbers.

Two examples. The first is a clean comparison that shows what a life data analysis is for: two datasets that produce exactly the same MTBF and nothing else the same. The second is field data with survivors in it, which is what the analysis actually looks like in service. Every value on this page is an illustrative teaching figure.

Part one: two datasets, one MTBF

Two candidate designs for the same item are run to failure on the same rig, under the same duty cycle. Ten units of each. Both designs accumulate 1,000 hours across ten units and produce ten failures, so both acceptance reports carry the same headline:

MTBF = total time ⁄ failures = 1,000 ⁄ 10 = 100 hours

Both are complete samples with no suspensions, which is rare outside a test house and is the reason to start here: the arithmetic is visible all the way through. Ages at failure, in hours:

DesignFailure times, hours
A1, 2, 6, 13, 24, 43, 72, 123, 222, 494
B50, 70, 78, 89, 96, 103, 113, 120, 133, 148

Read the two rows before reading anything else. Design A lost three units inside the first six hours and had one unit still running at 494. Design B lost nothing at all before 50 hours and then lost everything within a hundred hours of that. Both average 100.

The two datasets on the same axis, and the numbers that come out of them. One row agrees. Every row that decides anything does not.
The two datasets on the same axis, and the numbers that come out of them. One row agrees. Every row that decides anything does not.

Plotting positions, which are the same for both

The plotting position depends on the rank and the sample size, not on the times, so this column is identical for the two designs and only the ages move. Bernard's approximation with N = 10:

iF(i) = (i − 0.3) ⁄ 10.4A: tx = ln ty = ln(−ln(1−F))B: tx = ln t
10.067310.000−2.664503.912
20.163520.693−1.723704.248
30.259661.792−1.202784.357
40.3558132.565−0.822894.489
50.4519243.178−0.509964.564
60.5481433.761−0.2301034.635
70.6442724.2770.0331134.727
80.74041234.8120.2991204.787
90.83652225.4030.5941334.890
100.93274946.2030.9931484.997

The y column is shared too. Everything that separates the two designs is in the spread of x: design A's log-ages run across 6.2 units of the axis and design B's across 1.1, and since the slope of y against x is β, that ratio is the difference in β.

Design B fitted twice: least squares on the transformed points, and the peak of the log-likelihood surface. The two answers differ, and the difference is not a mistake by either of them.
Design B fitted twice: least squares on the transformed points, and the peak of the log-likelihood surface. The two answers differ, and the difference is not a mistake by either of them.

The fits

Least squares of y on x on those points, and then maximum likelihood on the same ten numbers:

Design ADesign B
Rank regression β0.553.43
Rank regression η68.4 h111.4 h
0.9810.997
Maximum likelihood β0.604.01
Maximum likelihood η66.8 h110.5 h
MLE β, bias corrected0.513.43
90 per cent interval on β0.33 to 0.812.20 to 5.42

The last two rows are the maximum-likelihood β worked on: divide it by 1.17 for the bias correction, and by 1.82 and by 0.74 for the two ends of the interval.

Three things in that table are worth stopping on.

The maximum-likelihood β is high in both cases, by about the same factor. That is the small-sample bias, not a property of either design: on ten complete failures the mean of β̂ ⁄ β is about 1.17. Divide by it and design B's 4.01 becomes 3.43, which is exactly what rank regression said without needing the correction. The two methods were never really in disagreement; one of them was reporting a known bias.

Neither interval contains 1. This matters more than the point estimates. Ten failures is not much data, and the obvious objection to the whole comparison is that the difference in shape could be chance. It could not: A's interval tops out at 0.81 and B's starts at 2.20, so the constant-hazard model is outside both of them. The two designs really do fail by different mechanisms, and the test was long enough to prove it.

The intervals are still wide. A factor of two and a half, in both. That is enough to settle the question being asked here, which is whether the hazard rises or falls. It would not be enough to settle a question that turned on β being 3.4 rather than 4.5.

The same fit, seen four ways

Design A. Density unbounded at the origin, reliability falling more than a quarter in ten hours and then almost flattening, a shallow probability plot, and a hazard that falls throughout. The dashed line on panel 3 is the rank regression fit, which follows the points more closely than maximum likelihood does.
Design A. Density unbounded at the origin, reliability falling more than a quarter in ten hours and then almost flattening, a shallow probability plot, and a hazard that falls throughout. The dashed line on panel 3 is the rank regression fit, which follows the points more closely than maximum likelihood does.
Design B. A narrow density around 100 hours, reliability holding flat and then falling off a cliff, a steep probability plot, and a hazard climbing three orders of magnitude across the same axis.
Design B. A narrow density around 100 hours, reliability holding flat and then falling off a cliff, a steep probability plot, and a hazard climbing three orders of magnitude across the same axis.

Nothing in those eight panels is a different analysis. They are the same two parameters drawn four ways each, and the reason to look at all four is that different decisions read different panels: procurement reads the density, a warranty reads the CDF, an analyst checking the model reads the probability plot, and maintenance reads the hazard.

Reliability, and the hazard underneath it

R(t), the fraction still working, against what the exponential with MTBF 100 h would have predicted:

AgeABIf exponential
10 h0.7270.99990.905
25 h0.5750.9970.779
50 h0.4320.9590.607
100 h0.2790.5120.368
150 h0.1970.0330.223

The exponential is wrong about both, and not by a fixed factor or in a fixed direction. At 10 hours it is optimistic about A by a factor of three in failures and pessimistic about B by a factor of a thousand. By 150 hours the sign has flipped for B: the exponential has 22 per cent of them still working when 3 per cent are. It has not flipped for A, which the exponential over-predicts all the way out to 184 hours, so between about 114 and 184 hours the one model is optimistic about both designs at once. There is no age at which it is right about either.

And the hazard, h(t) = (β⁄η)(t⁄η)^(β−1), in failures per million hours:

AgeABRatio A : B
5 h25,28637,700
10 h19,18926725
25 h13,32441632
50 h10,1113,3413.0
69 h8,8958,7981.01
100 h7,67326,8420.29
150 h6,52990,8160.07

The two hazards cross just past 69 hours. Before that A is the worse design by any margin you like; after it, B is. There is no answer to which design is more reliable that does not name an age, and the MTBF that both suppliers quoted is the one number that cannot name one.

The question a maintenance programme actually asks

Expected remaining life against age already reached. Both populations start at 100 hours, which is the shared MTBF, and then move in opposite directions. Under a constant hazard the line would be flat.
Expected remaining life against age already reached. Both populations start at 100 hours, which is the shared MTBF, and then move in opposite directions. Under a constant hazard the line would be flat.

Not how long does it last, but it has got this far, what happens next. Conditional reliability over the next 25 hours:

Survived toABIf exponential
new0.5750.9970.779
25 h0.7510.9620.779
50 h0.7930.8440.779
75 h0.8170.6320.779
100 h0.8330.3800.779
125 h0.8440.1720.779

Same question as a duration, which is the mean residual life:

Age reachedA has leftB has leftIf exponential
new100 h100 h100 h
25 h143 h75 h100 h
50 h162 h53 h100 h
100 h188 h22 h100 h
150 h207 h9 h100 h

Both columns start at the same 100 hours, because that is the mean life and the mean life is what MTBF measures. One row down, they have already parted. A unit of design A that has survived a hundred hours has proved itself and is expected to run another 188. A unit of design B that has survived a hundred hours has spent its life and has 22 left.

Two opposite instructions

Design A, β below 1Design B, β above 1
What is failingA defect present from new, in some of the unitsSomething that accumulates with age, in all of them
Scheduled replacementActively harmful. It swaps a proven unit for an unproven oneApplicable. The fit says at what age
What to do insteadFind the process escape; screen or burn in until it is foundSet a life limit against a tolerable failure fraction
What the fleet looks like laterBetter than the average suggests, as the weak units leaveWorse than the average suggests, as the survivors age

For design B the arithmetic of the life limit is direct, because it is just the B-life read at whatever failure fraction is tolerable:

Replace atFraction that fails before getting there
50 h4.1 per cent
63 h, the B1010 per cent
70 h14.8 per cent
80 h24.0 per cent

For design A there is no such age, and the honest version of the burn-in option is unattractive:

Burn-inBatch scrappedSurvivors' R over the next 100 h
none00.279
12 h30 per cent0.365
24 h42 per cent0.402
48 h56 per cent0.452

Burning in for 48 hours throws away over half the batch to move reliability from 0.28 to 0.45. Screening is what you do while you find the defect, not instead of finding it. The value of the analysis here is not the burn-in table: it is that β below one, with an interval that excludes 1, says the problem is a manufacturing or process escape rather than a design life, and sends the investigation to a different place entirely.

What the shared MTBF would have cost

Had both reports been believed at face value and an exponential assumed, the same 100 hours would have produced one set of numbers for both designs:

What MTBF = 100 h impliesA actuallyB actually
B1010.5 h1.6 h63.0 h
B11.0 h0.03 h35.1 h
Median life69.3 h36.3 h100.9 h
Spread, sd of life100 h175 h28 h
Life left at 100 h100 h188 h22 h

A B10 of 10.5 hours is wrong by a factor of 6.5 in one direction for design A and a factor of 6 in the other direction for design B. The quoted B1 for design A, 0.03 hours, is not a number to act on either: it sits an order of magnitude below the earliest observed failure and is pure extrapolation, which is the honest way to report it.

One qualification test, two datasets, one identical headline number, and two maintenance policies that have nothing in common.

Part two: the same analysis on field data

The clean case above had no survivors in it. Real data always does, and the survivors are usually most of it.

36 medium transport aircraft, two environmental control system packs each, 21,600 flight hours a year across the fleet. That is 600 flight hours a year for an average aircraft and 43,200 bearing-hours a year for the 72 installed packs, but the average hides a spread: the busiest tails fly close to twice it and the quietest about half, so bearing ages diverge even though the aircraft entered service together. Five years in, the FRACAS has enough removals of one item to fit a distribution to it, and the item is the one the RCM analysis gave a condition-based task to: the air cycle machine bearing. The removals only started arriving in numbers this year, which is why anybody looked.

The data, including the units that did not fail

Twenty bearings carry a confirmed disposition against this mode: thirteen failed by the degradation mode being analysed, and seven are suspensions, units still running at that age or taken off for some other reason. Ages in flight hours since installation:

1,180 s1,420 f1,655 s1,830 f2,010 s
2,240 f2,390 f2,510 s2,680 f2,810 f
2,950 s3,080 f3,210 f3,340 s3,480 f
3,620 f3,750 s3,900 f4,080 f4,260 f

The seven suspensions are not missing data and they are not failures. They are evidence that a bearing reached that age without failing, and throwing them away is the most common error in this analysis.

Fitting it two ways

The Weibull probability plot: thirteen failures against their median ranks, on axes that turn the Weibull into a straight line. The slope is beta and the intercept gives eta.
The Weibull probability plot: thirteen failures against their median ranks, on axes that turn the Weibull into a straight line. The slope is beta and the intercept gives eta.

Median rank regression, with adjusted ranks for the suspensions and Bernard's approximation, and least squares of y on x as in part one:

β = 3.63 · η = 3,596 h · r² = 0.990

Maximum likelihood, on the same data:

β = 4.47 · η = 3,527 h

The two disagree about β by more than 20 per cent, and neither is wrong. Maximum likelihood is the better estimator asymptotically and is biased high for β on small samples; the correction is tabulated against the number of failures, and at thirteen the mean of β̂ ⁄ β is 1.124 against the 1.17 that applied to ten in part one, so dividing by it brings β to about 3.97. Rank regression is less efficient but more robust to a bad point, and it gives you the plot to look at. Report which method produced the number, because a β quoted without its method is not reproducible.

What throwing away the suspensions would have done

βη
All 20 units, 13 failures and 7 suspensions4.473,527 h
The 13 failures only4.173,312 h

The characteristic life comes out 6 per cent short. The direction is the point: discarding suspensions discards evidence of survival, so the fitted life can only get shorter, and every maintenance interval derived from it gets shorter with it. On a dataset with more suspensions than this one, the error runs to tens of per cent.

What the fit says

OutputValueWhat it means
β4.47Strongly increasing hazard: a wear-out mode
η3,527 hThe characteristic life, where 63.2 per cent have failed, whatever β is
B102,131 hTen per cent have failed by this age
B503,249 hThe median life
Mean life3,217 hη · Γ(1 + 1/β), and not the same as η

None of those is a number to submit on its own. From the same likelihood, by the Fisher matrix and on thirteen failures, the 90 per cent interval on β is 3.11 to 6.41 and on η it is 3,184 to 3,907 h. Then the B-lives, which are what a limit is actually set from:

B-lifePoint90 per cent interval90 per cent lower bound
B102,131 h1,720 to 2,640 h1,803 h
B51,814 h1,389 to 2,369 h1,473 h
B11,259 h851 to 1,864 h928 h

Read the last column, because a life limit is a one-sided question: nobody is harmed by the population turning out better than expected. The interval on β spans a factor of two and still clears 1 by a distance, so the wear-out finding survives its own uncertainty. The interval on B10 runs about a fifth below the point estimate and a quarter above it; the interval on B1 is a factor of two wide, which is the thin tail stated as a number rather than as a warning.

The hazard is the number that matters for maintenance, because it is what an age limit acts on:

AgeHazard
1,000 h16 per 10⁶ h
2,000 h177 per 10⁶ h
3,000 h723 per 10⁶ h
4,000 h1,959 per 10⁶ h

The question maintenance actually asks

Not how long it lasts, but it has got this far, so what happens next? Conditional reliability over the next 500 flight hours:

Survived toR(next 500 h)
1,500 h0.944
2,500 h0.763
3,500 h0.455

A bearing at 3,500 hours has a coin-toss chance of reaching 4,000. A bearing at 1,500 hours is almost certain to. No constant-rate model can say that, because under a constant rate all three rows are identical.

A variant with no failures at all

The same programme modified the bearing and put twelve modified packs into service. They have 900 flight hours each and no failures of this mode, and somebody wants to know what that proves. It is the Weibayes case: assume β = 4.47 from the unmodified population, and fit only η.

η = (Σ tᵢ^β ⁄ r)^(1⁄β) with r = 1 in place of the zero failures

Σ tᵢ^β = 12 × 900^4.47 = 1.93 × 10¹⁴η = 1,569 h, and dividing by −ln 0.10 = 2.303 instead of by 1 gives the 90 per cent lower bound, η ≥ 1,302 h.

Against the old design's 3,527 hours that proves nothing, and the reason is worth seeing rather than asserting: under the old distribution, twelve units at 900 hours would have been expected to produce 0.027 failures. Zero was the overwhelmingly likely outcome whether the modification worked or not. To demonstrate at 90 per cent confidence that the new bearing is at least as good as the old one, those twelve packs have to reach about 2,438 flight hours each with no failures, which at 600 hours a year is another two and a half years of flying. A wear-out life cannot be bought with early-life hours, and the Weibayes arithmetic is what says so before the trial is funded rather than after.

Reconciling with the constant rate everybody used

Every earlier analysis on this fleet carried 55 failures per 10⁶ hours for this item: the figure the prediction produced, years before there was field evidence to check it against. Over 43,200 bearing-hours a year that is 2.4 removals a year, and that is the demand the task analysis, the repair level analysis and the spares model were all sized on.

A fitted hazard cannot be compared with that directly, because one is a function of age and the other is not. What can be compared is the rate the fleet is generating now, and getting it needs the age profile as well as the fit.

The fitted hazard against the fleet's own age profile. The fleet average is not the hazard at the mean age: it sits well above it, because the twelve bearings past three thousand hours carry nearly two-thirds of the sum.
The fitted hazard against the fleet's own age profile. The fleet average is not the hazard at the mean age: it sits well above it, because the twelve bearings past three thousand hours carry nearly two-thirds of the sum.

The 72 installed bearings, grouped by age:

Bearing ageBearingsMid-pointh at the mid-point
under 1,000 h14500 h1.5 per 10⁶ h
1,000 to 2,000 h221,500 h65 per 10⁶ h
2,000 to 3,000 h242,500 h384 per 10⁶ h
3,000 to 4,000 h103,500 h1,233 per 10⁶ h
over 4,000 h24,500 h2,946 per 10⁶ h

fleet-average hazard = Σ nᵢ h(tᵢ) ⁄ Σ nᵢ = 28,889 ⁄ 72 = 401 per 10⁶ h

Two things to notice before using it. The mean bearing age is 2,000 hours and h(2,000) = 177 per 10⁶ h, so the fleet average is more than twice the hazard at the mean age: the hazard is convex, and the twelve bearings past 3,000 hours contribute 63 per cent of the sum while making up a sixth of the fleet. Reading the hazard off at the mean age is the mistake this arithmetic exists to avoid.

The second is a temptation rather than a check. Running F across the same profile puts the expected failures at these ages at 13.2, which sits next to the 13 the FRACAS holds and looks like a validation of the fit. It is not one. These 72 bearings are the survivors, all of them alive at the age listed; the units that did fail were removed and their replacements sit in this same profile as young bearings, which is most of what the 14 under 1,000 hours are. Applying F to survivors' ages to recover failures those survivors did not have uses the population twice. The orders of magnitude agree, and that is all it says: a real check would have to run over the original cohort's exposure rather than over today's ages.

So the fleet is running at 401 per 10⁶ h, 7.3 times the 55 everything downstream carries, and 17.3 removals a year against 2.4. The fleet's own cumulative experience says the same thing more slowly: 13 failures in 216,000 bearing-hours, which is five years at 43,200 a year, is 60 per 10⁶ h averaged over the whole period. Already above the assumption, and that average is holding a rising number down.

That total is worth checking against itself, because a fleet cannot have flown more bearing-hours than it has flown. The 72 installed bearings carry 72 × 2,000 = 144,000 hours between them and the 13 that failed carried another 39,000 before they were removed, which is 183,000 bearing-hours accounted for. Five years of operation supplies 216,000, so the ages on this page fit inside the exposure that produced them with room to spare; four years would not have, and the arithmetic would have been describing a fleet that could not exist.

Forward, holding the fit and letting the fleet fly. Expected removals are counted rather than read off the current rate, and the quantity to count is the conditional one: every one of the 72 bearings is alive at its current age, so what a bearing of age aᵢ contributes over the next 600 hours is 1 − R(aᵢ + 600) ⁄ R(aᵢ), not F(aᵢ + 600) − F(aᵢ). That is the same distinction the hazard makes, given survival so far, and using the unconditional difference here understates the first year by nearly half.

Failures are replaced by new bearings, so each year the survivors age by 600 hours and the replacements re-enter at zero:

NextExpected removalsAgainst the plan
600 flight hours16.82.4
the 600 after that15.82.4
the 600 after that14.12.4

The first row is the check that the arithmetic is right: 16.8 is what the current fleet-average hazard of 401 per 10⁶ h already implied, 17.3 a year. The sequence then falls, because the oldest bearings fail first and are replaced by new ones, which is the younger population the renewal creates.

A constant rate carried on a wear-out mode is a statement about one fleet at one age, and it expires quietly. Forty-seven removals over three years against the seven the support system was sized for, and nothing about the hardware changed. The constant was never a property of the item, so it could not carry a fleet forward, and every downstream analysis that used it inherited an expiry date nobody wrote down.

What has to change downstream

AnalysisWhat this fit does to it
RCMβ > 1 with a definable age makes scheduled discard applicable, which it was not when the rate was assumed constant. A 5 per cent B-life sits at 1,814 h, with a 90 per cent lower bound of 1,473 h
Task analysisThe removal frequency, and therefore the workload, rises with fleet age
Level of repairDemand is not 2.4 a year but about 17, and it keeps climbing, so the repair-level break-even moves with it
PredictionThe item's rate is age-dependent, so a single figure needs a stated age or a stated fleet
SparesThe pipeline sized on 2.4 a year is short by a factor of seven before anything else is decided

That is the whole argument for doing this analysis: not the plot, and not β, but the fact that five downstream decisions were quietly resting on an assumption that twenty removal records can overturn.


Want to see this on a live system model? Request a walkthrough.