View source: R/exp_rel_power.R
exp_rel_power | R Documentation |
exp_rel_power
calculates the power of a reliability test given null and alternative
hypotheses for MTTF/MTBF, the allowable numbers, the alpha error rate, and assuming
the times are exponentially distributed. Hypothesis should be of the form,
h0: MTBF <= X; h1: MTBF > X+Y, where X and Y are both positive values.
exp_rel_power(mtbf0, mtbfa, r, alpha = 0.2)
mtbf0 |
A numeric value indicating the null hypothesis for MTBF/MTTR. |
mtbfa |
A numeric value indicating the alternative hypothesis for MTBF/MTTR. (hours, miles, rounds, etc.). |
r |
The allowable number of failures. |
alpha |
The allowable type I failure rate (1-confidence). Values must be within 0.0:1.00 default is set to 0.20. Producer's risk - the probability we reject a system with MTBF = mtbfa. |
The output is a numeric value representing the power of rejecting the null hypothesis.
exp_mtbf_req
, exp_reliability_req
,
exp_test_duration
, exp_mean_lcb
,
exp_equal_mtbf
, exp_oc
exp_fixed_duration_tests
# Assuming the true MTBF is 300, what is the power of test
# to demonstrate MTBF > 180, with 80% power and confidence, assuming
# the true MTBF is 300 (and assuming the times between failure are
# exponentially distributed)
exp_test_duration(r = 1, mtbf = 180, alpha = 0.2)
exp_rel_power(mtbf0 = 180, mtbfa = 300, r = 1, alpha = 0.2)
mtbfa <- seq(100, 800, 1)
df <- data.frame(
r = rep(c(1:5, 11), each = length(mtbfa)),
mtbfa = mtbfa
)
df$power <- exp_rel_power(mtbf0 = 180, mtbfa = df$mtbfa, r = df$r, alpha = 0.2)
df$T <- exp_test_duration(r = df$r, mtbf = 180, alpha = 0.2)$Duration
df$label <- paste0("r = ", df$r, "; T = ", ceiling(df$T))
df$label <- factor(df$label, levels = unique(df$label))
ggplot(df) +
geom_path(
aes(x = mtbfa, y = power, colour = label)
) +
scale_colour_manual("", values = cbbPalette) +
scale_y_continuous(limits = c(0,1), breaks = seq(0,1,.2)) +
labs(
y = "Probability of Passing Demonstration\n(Power)",
x = "True MTBOMF",
caption = "r = Allowable Failures\nT = Total Test Time Required (hours)\n\nConfidence set to 80%\nMTBF0 = 180 hours"
) +
theme(plot.caption = element_text(hjust = 0))
power <- .8
(sol <- uniroot(function(x) exp_rel_power(mtbf0=180,x,r=1,alpha=.2)-power, lower = 100, upper = 10000))
sol$root
sol$root/180
(sol <- uniroot(function(x) exp_rel_power(mtbf0=180,x,r=11,alpha=.2)-power, lower = 100, upper = 10000))
sol$root
sol$root/180
# At what value of MTBF would an "r" failure test have 80% power
# if we want to demonstrate MTBF > 500 with 80% confidence
r <- 0
power <- .8
mtbf0 <- 500
alpha <- .2
uniroot(function(x) exp_rel_power(mtbf0,x,r,alpha)-power, lower = 100, upper = 10000)
exp_test_duration(r, mtbf0, alpha)
# At what value of MTBF would an "r" failure test have 80% power
# if we want to demonstrate MTBF > 500 with 80% confidence
r <- 0:6
power <- .8
mtbfa <- NULL
for(i in seq_along(r)){
mtbfa[i] <- uniroot(function(x) exp_rel_power(mtbf0,x,r[i],alpha)-power, lower = 100, upper = 10000)$root
}
mtbfa
exp_test_duration(r, mtbf0, alpha)
rm(list = c("r", "power", "mtbfa", "i", "mtbf0", "alpha", "sol", "df"))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.