The Weibull distribution is the most common distribution in the field of life data analysis
Why? Because the Weibull is a flexible distribution that can fit many different types of data
Take the following normal distribution
The Weibull can mimic the normal and many others
R(t) gives the cumulative probability of survival prior to time t while F(t) gives the cumulative probability of failure prior to time t
\[ R(t) = 1 - F(t) = e^-(t/\eta)^\beta \]
Where \(\beta\) is the shape parameter. In life analysis \(\beta\) has a physical interpretation:
And \(\eta\) is the scale parameter or the quantile at 63.2% probability
Let’s vary the parameters of the Weibull distribution to see these relationships graphically
Varying Beta changes the shape of the cumulative distribution function
x <- seq(0, 50, by = .1)
plot(pweibull(x, shape = 0.5, scale = 10), col = "blue", type = "l", xlab = "x", ylab = "y")
lines(pweibull(x, shape = 1, scale = 10), col = "red")
lines(pweibull(x, shape = 2, scale = 10), col = "green")
legend(300, 0.6, legend=c("shape = 0.5, scale = 10", "shape = 1, scale = 10", "shape = 2, scale = 10"),col=c("blue", "red", "green"), lty=1, cex=1.2)Varying Eta moves the weibull distribution along the x-axis
x <- seq(0, 50, by = .1)
plot(pweibull(x, shape = 1, scale = 5), col = "blue", type = "l", xlab = "x", ylab = "y")
lines(pweibull(x, shape = 1, scale = 10), col = "red")
lines(pweibull(x, shape = 1, scale = 20), col = "green")
legend(300, 0.6, legend=c("shape = 1, scale = 5", "shape = 1, scale = 10", "shape = 1, scale = 20"), col=c("blue", "red", "green"), lty=1, cex=1.2)For this tutorial, we will use WeibullR: an R package for life data analysis in the tradition of Walodi Weibull
First, check if WeibullR is installed in R and install if not
Let’s run a basic example using the quick fit method
Right censored data includes suspensions or units that have operated for a period of time without failure
Let’s add right censored data to the previous example and build a basic probability plot
Interval censored data is most commonly in the form of inspection data, where the failure occurred between two inspection times, the latest known working time (left entry), and the inspection time when the failure was detected (right entry)
To create an interval censored model, let’s use the inspection data from Silkworth, 2020
Add suspension data for units surviving until the last inspection date
Add a fit and plot the results
Life data is often compiled into groups (i.e. a group of units failed or survived at a certain time) Notice how the previous example contained groups in the qty column
| time | event | qty |
|---|---|---|
| 63.48 | 0 | 73 |
In this case, there are 73 suspensions at time 63.48
Median Rank Regression (MRR) is a least squares analysis based on minimizing the squared distance from the cumulative probability to the fitted model
Maximum Likelihood Estimation (MLE) is based on estimating the parameters of the distribution by maximizing the likelihood function of the observed data
WeibullR includes functions for both methods, such as the MRRw2p, MRRw3p functions for MRR and the MLEw2p, MLEw3p functions for MLE
A WeiBayes or 1P Weibull has a fixed \(\beta\) or shape parameter based on prior knowledge or experience
Weibayes models are typically used when failure data is limited
Let’s rerun the previous example as a WeiBayes model with a Beta of 2
The 3P Weibull has an additional parameter t0 to represent a failure free period (i.e. a component cannot fail until after time t0)
\[ R(t) = 1 - F(t) = e^-((t-t~0~)/\eta)^\beta \]
Let’s rerun the previous example as a 3P Weibull
A system or component may have multiple different failure modes (e.g. corrosion, fatigue, overload)
Each failure mode has a different distribution of time to failure
A basic Weibull with competing failure modes tends to -
First, create some Weibull data representing 3 different failure modes
Fit an overall Weibull
Now create a separate data set for each failure mode
Finally, fit a wblr object for each failure mode and plot the results
To build a plot with multiple Weibull models, start by creating a wblr object
Add a default fit that appears as a red line on the plot
Add default confidence bounds using a single width line
Now create a second wblr object
Add the 2 wblr objects to a list and plot both objects in a single chart
To get help with a specific function, type a question mark before the function name
For more help with the WeibullR package
Silkworth D, Symynck J (2022). WeibullR: Weibull Analysis for Reliability Engineering. R package version 1.2.1, https://CRAN.R-project.org/package=WeibullR.
Silkworth, David. (2020). WeibullR: An R Package for Weibull Analysis for Reliability Engineers. 43-53. https://doi.org/10.35566/isdsa2019c3.