Binomial Reliability Demonstration Tests.
BRDT (Binomial Reliability Demonstration Tests)
Description
This package provides the Bayesian methods to get the optimal test sample size in binomial reliability demonstration tests design.
- Conventional Binomial RDT: the package implements the conventional test design using failure count data and assuming binomial failure distributions over the testing period. Binomial RDT can also be referred to as binomial test or attribute test.
- Binomial RDT with Acceptance Uncertainty: the package implements the design methods to quantify the BRDT acceptance decision uncertainty and evaluate the cost impacts on related reliability assurance activities. Optimal test plans with minimum overall costs can be obtained.
- Data generator: the package implements a data generator to generate the test plans dataset with specific design settings.
Reference
This is the R package implementation for the design methods of binomial reliabiltiy demonstration tests (BRDTs) with failure count data. The acceptanace decision uncertainty of BRDT has been quantified and the impacts of the uncertainty on related reliability assurance activities such as reliability growth and warranty services are evaluated. The original work is from one of the research projects listed on Suiyao Chen's Homepage.
The paper Optimal Binomial Reliability Demonstration Tests Design under Acceptance Decision Uncertainty has been published in Quality Engineering. To cite this paper, please use
Suiyao Chen, Lu Lu, Qiong Zhang & Mingyang Li (2020) Optimal binomial reliability demonstration tests design under acceptance decision uncertainty, Quality Engineering, DOI: 10.1080/08982112.2020.1757703
Installation
To install from Github:
devtools::install_github("ericchen12377/BRDT")
#build vignettes if needed
devtools::install_github("ericchen12377/BRDT", build_vignettes = TRUE, force = TRUE)
library(BRDT)
#view vignettes
browseVignettes('BRDT')
Examples
######Binomial RDT Design######
###Generate the prior distribution of failure probability
##Beta is conjugate prior to binomial distribution
#Get the non-informative prior Beta(1, 1)
pi <- pi_MCSim_beta(M = 5000, seed = 10, a = 1, b = 1)
#Get the consumer's risk
n = 10
R = 0.8
c = 2
b_CR <- bconsumerrisk(n = n, c = c, pi = pi, R = R)
print(b_CR)
# [,1]
#>[1,] 0.3330482
##As n increases, CR decreases
#Get the optimal test sample size
thres_CR = 0.05 #CR < 0.05
b_n <- boptimal_n(c = c, pi = pi, R = R, thres_CR = thres_CR)
print(b_n)
#>[1,] 24
######Getting All Related Costs######
#RDT cost
Cf <- 0
Cv <- 10
n_optimal <- 24
RDTcost <- bcost_RDT(Cf = Cf, Cv = Cv, n = n_optimal)
print(RDTcost)
#> [1] 240
#RG Cost
G <- 10000 #G can be obtained from specific reliability growth models
RGcost <- bcost_RG(G = G)
print(RGcost)
#> [1] 10000
#WS Cost
Cw <- 10
N <- 1
n_optimal <- 24
WScost <- bcost_WS(Cw = 10, N = 1, n = n_optimal, c = 1, pi = pi);
print(WScost[1]) #expected failure probability
#> [1] 0.05852312
print(WScost[2]) #expected warranty services cost
#> [1] 0.5852312
#Expected overall cost
Overall_cost <- bcost_expected(Cf = Cf, Cv = Cv, n = n_optimal, G = G, Cw = Cw, N = N, c = c, pi = pi)
print(Overall_cost)
#> [1] 9006.048
######Optimal Test Plans with Minimum Overall Costs######
#Vectors to get combinations of different R and c
Rvec <- seq(0.8, 0.85, 0.01)
cvec <- seq(0, 2, 1)
Plan_optimal_cost <- boptimal_cost(Cf = 10, Cv = 10, G = 100, Cw = 10, N = 100, Rvec = Rvec, cvec = cvec, pi = pi, thres_CR = 0.5)
print(Plan_optimal_cost)
#> n R c CR AP RDT Cost RG Cost RG Cost Expected WS Cost
#> 6 4 0.85 0 0.4304362 0.2029711 50 100 79.70289 163.8177
#> WS Failure Probability WS Cost Expected Overall Cost
#> 6 0.1638177 33.25026 162.9532
######Getting All Related Costs######
nvec <- seq(0, 10, 1)
Rvec <- seq(0.8, 0.85, 0.01)
cvec <- seq(0, 2, 1)
pi <- pi_MCSim_beta(M = 5000, seed = 10, a = 1, b = 1)
#Get data from all combinations of n, c, R
data_all <- bdata_generator(Cf = 10, Cv = 10, nvec = nvec, G = 10000, Cw = 10, N = 100, Rvec = Rvec, cvec = cvec, pi = pi, par = all(), option = c("all"), thres_CR = 0.05)
head(data_all)
#> n R c CR AP RDT Cost RG Cost RG Cost Expected WS Cost
#> 1 0 0.8 0 0.7948000 1.0000000 10 10000 0.000 500.3654
#> 2 1 0.8 0 0.6300625 0.4996346 20 10000 5003.654 329.4260
#> 3 2 0.8 0 0.5011545 0.3350420 30 10000 6649.580 246.0267
#> 4 3 0.8 0 0.3994328 0.2526127 40 10000 7473.873 196.5127
#> 5 4 0.8 0 0.3189480 0.2029711 50 10000 7970.289 163.8177
#> 6 5 0.8 0 0.2551039 0.1697208 60 10000 8302.792 140.6811
#> WS Failure Probability WS Cost Expected Overall Cost
#> 1 0.5003654 500.36539 510.3654
#> 2 0.3294260 164.59264 5188.2465
#> 3 0.2460267 82.42927 6762.0096
#> 4 0.1965127 49.64160 7563.5146
#> 5 0.1638177 33.25026 8053.5392
#> 6 0.1406811 23.87651 8386.6681
#Get data with optimal test sample size and minimum overall costs from all combinations of c, R
data_optimal <- bdata_generator(Cf = 10, Cv = 10, nvec = nvec, G = 10000, Cw = 10, N = 100, Rvec = Rvec, cvec = cvec, pi = pi, par = all(), option = c("optimal"), thres_CR = 0.05)
head(data_optimal)
#> n R c CR AP RDT Cost RG Cost RG Cost Expected WS Cost
#> 1 13 0.80 0 0.04379640 0.07316579 140 10000 9268.342 67.02070
#> 2 13 0.81 0 0.04952572 0.07316579 140 10000 9268.342 67.02070
#> 3 14 0.82 0 0.04779152 0.06826217 150 10000 9317.378 62.88279
#> 4 15 0.83 0 0.04739077 0.06396965 160 10000 9360.303 59.20539
#> 5 16 0.84 0 0.04933936 0.06018231 170 10000 9398.177 55.91351
#> 6 18 0.85 0 0.04545871 0.05380893 190 10000 9461.911 50.26193
#> WS Failure Probability WS Cost Expected Overall Cost
#> 1 0.06702070 4.903623 9413.246
#> 2 0.06702070 4.903623 9413.246
#> 3 0.06288279 4.292516 9471.671
#> 4 0.05920539 3.787348 9524.091
#> 5 0.05591351 3.365004 9571.542
#> 6 0.05026193 2.704541 9654.615
Updates
- Version logs are provided.