Accelerated Life Testing (ALT)

library(ReliaPlotR)
library(WeibullR)
library(WeibullR.ALT)

Statistical Background

Accelerated Life Testing (ALT) subjects units to stress levels (temperature, voltage, vibration, etc.) higher than use conditions in order to induce failures faster. Life data collected at multiple stress levels are then extrapolated to the use-condition stress using a physics-motivated life-stress model (Nelson 1990).

Life distributions. At each stress level, failure times are modeled with a Weibull or lognormal distribution. The shape parameter (\(\beta\) for Weibull; \(\sigma_{\log}\) for lognormal) is assumed constant across stress levels (the distributions are parallel on probability paper), while the scale parameter (\(\eta\) for Weibull; \(\exp(\mu_{\log})\) for lognormal) varies with stress according to the life-stress model.

Life-stress models. Two models are supported:

Fitting. alt.parallel() fits independent Weibull/lognormal models at each stress level; alt.fit() then fits the global life-stress relationship by constraining the shape parameter to be equal across stress levels (Nelson 1990; Meeker and Escobar 1998).

Building an ALT Model

The WeibullR.ALT package uses a three-step pipeline to create an ALT model.

Step 1 — Create data sets for each stress level using alt.data():

d1 <- alt.data(c(248, 456, 528, 731, 813, 537), stress = 300)
d2 <- alt.data(c(164, 176, 289), stress = 350)
d3 <- alt.data(c(88, 112, 152), stress = 400)

Step 2 — Fit parallel models across stress levels using alt.make() and alt.parallel():

obj <- alt.parallel(
  alt.make(list(d1, d2, d3), dist = "weibull", alt.model = "arrhenius", view_dist_fits = FALSE),
  view_parallel_fits = FALSE
)

Step 3 — Fit the life-stress relationship using alt.fit():

obj <- alt.fit(obj)

ALT Probability Plot

plotly_alt() overlays one probability-paper fit line per stress level. Data points show empirical plotting positions; lines show the theoretical Weibull (or lognormal) fit. Click a legend entry to toggle a stress level on or off.

plotly_alt(obj)

Customization

The plot accepts several optional arguments:

plotly_alt(
  obj,
  main    = "Reliability Test Results",
  xlab    = "Hours to Failure",
  cols    = c("#1f77b4", "#ff7f0e", "#2ca02c"),
  showGrid = FALSE
)

Life-Stress Relationship Plot

plotly_rel() displays how characteristic life (eta for Weibull, median life for lognormal) changes with stress level, along with the fitted Arrhenius or Power Law relationship.

plotly_rel(obj)

The plot includes:

Percentile Bands

Use the percentiles argument to change which percentile bands are shown:

plotly_rel(obj, percentiles = c(5, 50, 95))

Hiding Percentile Lines

Set showPerc = FALSE to show only the fitted relationship line:

plotly_rel(obj, showPerc = FALSE)

Customization

plotly_rel(
  obj,
  main    = "Arrhenius Life-Stress Relationship",
  fitCol  = "darkgreen",
  percCol = "steelblue",
  signif  = 4
)

References

See Also

Meeker, William Q., and Luis A. Escobar. 1998. Statistical Methods for Reliability Data. Wiley.
Nelson, Wayne B. 1990. Accelerated Testing: Statistical Models, Test Plans, and Data Analysis. Wiley.