cusum_failure {utile.tools} | R Documentation |
Cumulative Sum of Failures
Description
Calculates the cumulative sum of failures for a series of procedures which can be used to create CUSUM charts.
Usage
cusum_failure(xi, p0, p1, by = NULL, alpha = 0.05, beta = 0.05)
Arguments
xi |
An integer. The dichotomous outcome variable (1 = Failure, 0 = Success) for the i-th procedure. |
p0 |
A double. The acceptable event rate. |
p1 |
A double. The unacceptable event rate. |
by |
A factor. Optional variable to stratify procedures by. |
alpha |
A double. The Type I Error rate. Probability of rejecting the null hypothesis when 'p0' is the true rate. |
beta |
A double. The Type II Error rate. Probability of failing to reject null hypothesis when it is false. |
Value
An object of class data.frame
.
References
Rogers, C. A., Reeves, B. C., Caputo, M., Ganesh, J. S., Bonser, R. S., & Angelini, G. D. (2004). Control chart methods for monitoring cardiac surgical performance and their interpretation. The Journal of Thoracic and Cardiovascular Surgery, 128(6), 811-819.
Examples
library(purrr)
library(ggplot2)
# Data
df <- data.frame(
xi = simplify(
map(
c(.1,.08,.05,.1,.13,.14,.14,.09,.25),
~ rbinom(50,1,.x))),
p0 = simplify(
map(
c(.1,.1,.1,.1,.1,.1,.1,.15,.2),
~ rnorm(50,.x,.03))),
by = rep(
factor(paste('Subject', c('A','B','C'))),
times = c(150,150,150))
)
# Overall event rate
p0 <- sum(df$xi) / nrow(df)
# Create CUSUM plot
cusum_failure(
xi = df$xi,
p0 = p0,
p1 = p0 * 1.5,
by = df$by
) |>
ggplot(aes(y = cusum, x = i)) +
geom_step() +
geom_line(mapping = aes(y = l0), linetype = 2) +
geom_line(mapping = aes(y = l1), linetype = 2) +
ylab("Cumulative Failures") +
xlab("Case Number") +
facet_wrap(~ by) +
theme_bw()