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).
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():
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_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.
The plot includes:
Use the percentiles argument to change which percentile
bands are shown:
Set showPerc = FALSE to show only the fitted
relationship line: