Learn R Programming

weibulltools

Overview

The {weibulltools} package focuses on statistical methods and visualizations that are often used in reliability engineering. It provides a compact and easily accessible set of methods and visualization tools that make the examination and adjustment as well as the analysis and interpretation of field data (and bench tests) as simple as possible.

Besides the well-known Weibull analysis, the package supports multiple lifetime distributions and also contains Monte Carlo methods for the correction and completion of imprecisely recorded or unknown lifetime characteristics.

Plots are created statically {ggplot2} or interactively {plotly} and can be customized with functions of the respective visualization package.

Installation

The latest released version of {weibulltools} from CRAN can be installed with:

install.packages("weibulltools")

Development version

Install the development version of {weibulltools} from GitHub to use new features or to get a bug fix.

# install.packages("devtools")
devtools::install_github("Tim-TU/weibulltools")

Usage

Getting started

Create consistent reliability data with columns:

  • x - lifetime characteristic
  • status - binary data (0 for censored units and 1 for failed units)
  • id (optional) - identifier for units
library(weibulltools)

rel_tbl <- reliability_data(data = shock, x = distance, status = status)
rel_tbl
#> Reliability Data with characteristic x: 'distance':
#> # A tibble: 38 × 3
#>       x status id   
#>   <int>  <dbl> <chr>
#> 1  6700      1 ID1  
#> 2  6950      0 ID2  
#> 3  7820      0 ID3  
#> 4  8790      0 ID4  
#> 5  9120      1 ID5  
#> # … with 33 more rows

Probability estimation and visualization

Estimation of failure probabilities using different non-parametric methods:

prob_tbl <- estimate_cdf(x = rel_tbl, methods = c("mr", "kaplan", "johnson", "nelson"))
#> The 'mr' method only considers failed units (status == 1) and does not retain intact units (status == 0).
prob_tbl
#> CDF estimation for methods 'mr', 'kaplan', 'johnson', 'nelson':
#> # A tibble: 125 × 6
#>   id        x status  rank   prob cdf_estimation_method
#>   <chr> <int>  <dbl> <dbl>  <dbl> <chr>                
#> 1 ID1    6700      1     1 0.0614 mr                   
#> 2 ID5    9120      1     2 0.149  mr                   
#> 3 ID13  12200      1     3 0.237  mr                   
#> 4 ID15  13150      1     4 0.325  mr                   
#> 5 ID19  14300      1     5 0.412  mr                   
#> # … with 120 more rows

Visualization of the obtained results in a distribution-specific probability plot:

prob_vis <- plot_prob(x = prob_tbl, distribution = "weibull", 
                      title_main = "Weibull Probability Plot", 
                      title_x = "Distance", 
                      title_y = "Probability of Failure in %", 
                      title_trace = "Methods",
                      plot_method = "gg")
prob_vis

Model estimation and visualization

Parametric model estimation with respect to the used methods:

rr_list <- rank_regression(x = prob_tbl, distribution = "weibull")
rr_list
#> List of 4 model estimations:
#> Rank Regression
#> Coefficients:
#>      mu    sigma  
#> 10.2596   0.3632  
#> Method of CDF Estimation: johnson 
#> 
#> Rank Regression
#> Coefficients:
#>      mu    sigma  
#> 10.2333   0.3773  
#> Method of CDF Estimation: kaplan 
#> 
#> Rank Regression
#> Coefficients:
#>     mu   sigma  
#> 9.8859  0.3956  
#> Method of CDF Estimation: mr 
#> 
#> Rank Regression
#> Coefficients:
#>      mu    sigma  
#> 10.2585   0.3852  
#> Method of CDF Estimation: nelson

Model visualization in an existing probability plot:

mod_vis <- plot_mod(p_obj = prob_vis, x = rr_list, distribution = "weibull", 
                    title_trace = "RR") 
mod_vis

Getting help

If you notice a bug or have suggestions for improvements, please submit an issue with a minimal reproducible example on GitHub. For further questions, please contact Tim-Gunnar Hensel.

Copy Link

Version

Install

install.packages('weibulltools')

Monthly Downloads

260

Version

2.1.0

License

GPL-2

Issues

Pull Requests

Stars

Forks

Maintainer

Hensel Tim-Gunnar

Last Published

April 5th, 2023

Functions in weibulltools (2.1.0)

confint_betabinom

Beta Binomial Confidence Bounds for Quantiles and Probabilities
calculate_ranks

Computation of Johnson Ranks
dist_delay

Parameter Estimation of a Delay Distribution
confint_fisher.default

Fisher's Confidence Bounds for Quantiles and Probabilities
confint_betabinom.default

Beta Binomial Confidence Bounds for Quantiles and Probabilities
alloy

Fatigue Life for Alloy T7989 Specimens
dist_delay.default

Parameter Estimation of a Delay Distribution
confint_fisher

Fisher's Confidence Bounds for Quantiles and Probabilities
delta_method

Delta Method for Parametric Lifetime Distributions
dist_delay_register

Parameter Estimation of the Delay in Registration Distribution
estimate_cdf.default

Estimation of Failure Probabilities
dist_mileage.default

Parameter Estimation of an Annual Mileage Distribution
johnson_method

Estimation of Failure Probabilities using Johnson's Method
loglik_function

Log-Likelihood Function for Parametric Lifetime Distributions
loglik_function.default

Log-Likelihood Function for Parametric Lifetime Distributions
kaplan_method

Estimation of Failure Probabilities using the Kaplan-Meier Estimator
mcs_delay

Adjustment of Operating Times by Delays using a Monte Carlo Approach
mcs_delay.default

Adjustment of Operating Times by Delays using a Monte Carlo Approach
mcs_mileage.default

Simulation of Unknown Covered Distances using a Monte Carlo Approach
field_data

Field Data
mcs_mileage

Simulation of Unknown Covered Distances using a Monte Carlo Approach
estimate_cdf

Estimation of Failure Probabilities
mcs_delay_report

Adjustment of Operating Times by Delays in Report using a Monte Carlo Approach
dist_mileage

Parameter Estimation of an Annual Mileage Distribution
dist_delay_report

Parameter Estimation of the Delay in Report Distribution
mcs_mileage_data

MCS Mileage Data
mixmod_em

Weibull Mixture Model Estimation using EM-Algorithm
plot_prob_mix

Probability Plot for Separated Mixture Models
plot_prob.default

Probability Plotting Method for Univariate Lifetime Distributions
mcs_delays

Adjustment of Operating Times by Delays using a Monte Carlo Approach
plot_conf

Add Confidence Region(s) for Quantiles and Probabilities
mcs_delay_data

MCS Delay Data
loglik_profiling.default

Log-Likelihood Profile Function for Parametric Lifetime Distributions with Threshold
loglik_profiling

Log-Likelihood Profile Function for Parametric Lifetime Distributions with Threshold
mixmod_em.default

Weibull Mixture Model Estimation using EM-Algorithm
mixmod_regression

Mixture Model Identification using Segmented Regression
plot_mod.default

Add Estimated Population Line to a Probability Plot
plot_mod_mix

Add Estimated Population Lines of a Separated Mixture Model to a Probability Plot
rank_regression

Rank Regression for Parametric Lifetime Distributions
plot_conf.default

Add Confidence Region(s) for Quantiles and Probabilities
mcs_delay_register

Adjustment of Operating Times by Delays in Registration using a Monte Carlo Approach
mixmod_regression.default

Mixture Model Identification using Segmented Regression
rank_regression.default

Rank Regression for Parametric Lifetime Distributions
mixture_em_cpp

EM-Algorithm using Newton-Raphson Method
mr_method

Estimation of Failure Probabilities using Median Ranks
nelson_method

Estimation of Failure Probabilities using the Nelson-Aalen Estimator
predict_prob

Prediction of Failure Probabilities for Parametric Lifetime Distributions
predict_quantile

Prediction of Quantiles for Parametric Lifetime Distributions
ml_estimation

ML Estimation for Parametric Lifetime Distributions
ml_estimation.default

ML Estimation for Parametric Lifetime Distributions
plot_prob

Probability Plotting Method for Univariate Lifetime Distributions
plot_pop

Add Population Line(s) to an Existing Grid
reliability_data

Reliability Data
shock

Distance to Failure for Vehicle Shock Absorbers
r_squared_profiling.default

R-Squared-Profile Function for Parametric Lifetime Distributions with Threshold
r_squared_profiling

R-Squared-Profile Function for Parametric Lifetime Distributions with Threshold
weibulltools-package

weibulltools
voltage

High Voltage Stress Test for the Dielectric Insulation of Generator armature bars
plot_mod

Add Estimated Population Line(s) to a Probability Plot
plot_layout

Layout of the Probability Plot