SRU {ems} | R Documentation |
Standardized Resource Use (SRU)
Description
SRU
calculates the standardized resource use for ICUs (Intensive Care Units) from information regarding admissions of individual patients. Resource use is represented by the patient's length of stay (LOS). Therefore the SRU for each unit is defined as the observed LOS divided by it's expected LOS. To estimate the expected LOS for each ICU one must define a severity score, here defined by the SAPS 3 score. In theory, the 'score' could be any score/probability that estimates death for each ICU admission.
The plot.SRU
function will return a SMR
versus SRU scatter plot with its medians and tertiles. Thus, it classifies each unit in the quadrants formed by these two medians as: most efficient (ME) which is the lower left quadrant (both SRU and SMR below their medians); least efficient (LE) is the upper right quadrant (both SRU and SMR above their medians); and least achieving (LA) - the lower right quadrant (SRU below and SMR above their medians); and over achieving (OA) - the upper left quadrant (SRU above and SMR below their medians).
print.SRU
Prints a object of class 'SRU'.
cut_in
is used to find limits to define severity classes which are used in SRU
function. The severity classes are necessary to calculate the average of days to produce one survivor and consequently to estimate the expected LOS in each ICU. Its rationale is to find the limits for the severity classes that yeld a desired average of days to produce one survivor. At some point in time, we made a study to test if different arrangements of the severity classes would yeld different classifications in the efficiency quadrants. Despite the fact that this study did not show any difference from each approach, we left the function in the package. Therefore, any arbitrary severity classes should yeild the same results.
SRUcalc
is a simpler function to estimte SRU and returns, for each unit, the SRU value, the observed and expected number of deaths, and the observed and expected LOS.
Usage
SRU(
prob,
death,
unit,
los,
los.exp,
class,
score,
plot = FALSE,
type = 1,
digits = 2,
digits2 = 5,
originals = FALSE,
myunits = NULL
)
## S3 method for class 'SRU'
print(x, ...)
## S3 method for class 'SRU'
plot(
x,
...,
xlim = range(x$rates[, 2]),
ylim = range(x$rates[, 1]),
xlab = "SMR",
ylab = "SRU",
points.arg = list(pch = 21, col = "white", bg = "cadetblue3", cex = 1.5),
med.arg = list(col = "dodgerblue4", lwd = 2, lty = 1),
tert.arg = list(col = "darkorange2", lty = 2, lwd = 1),
auto.legend = TRUE,
leg.arg = list(x = "top", bty = "n", xpd = NA, inset = -0.2, ncol = 2),
bty = "n",
myunits = x$myunits,
myunitspts.arg = list(pch = 21, col = "white", bg = "red", cex = 1.5),
myunitstext.arg = list(pos = 1, font = 2, cex = 0.8)
)
cut_in(
score,
los,
death,
unit,
days,
min = 200,
exc.ICU = TRUE,
complete = FALSE,
digits = 5
)
SRUcalc(prob, death, unit, los, score, digits = 2)
Arguments
prob |
Individual predicted probability of death (ranging from 0 to 1) in a vector. |
death |
Observed death. Accepted values are 0 (absence) or 1 (presence) in a vector. |
unit |
A character or factor variable indicating the ICU where the patient is admitted. |
los |
A numeric variable indicating the observed length of stay for each patient. |
los.exp |
Estimated length of stay (LOS). This argument is optional and will be required only if |
class |
A factor variable indicating the class of severity score (e.g. SAPS 3). In the case of SAPS 3, this is a cut in the SAPS 3 score, grouping patients into severity classes. This will be required if the argument |
score |
A numeric vector with the Acute Physiology Score (SAPS) 3 score for each admission. The function will use this argument to know to which severity class each patient will be assigned to. It is used only when |
plot |
Logical; If |
type |
A Way to calculate SRU. If |
digits , digits2 |
Integer indicating the number of decimals to be used in the output. |
originals |
Logical; If |
myunits |
A character vector with the unit names which one would like to benchmark among all units. These units will be highlighted with dots of different collors in the plot. Default is |
x |
For |
... |
Arguments to be passed to |
xlim , ylim |
Limits of x and y axis for |
xlab , ylab |
Labels of x and y axis for |
points.arg |
List of arguments passed to |
med.arg |
List of arguments passed to |
tert.arg |
List of arguments passed to |
auto.legend |
Logical; If |
leg.arg |
List of arguments passed to |
bty |
A character string which determines the type of box that is drawn about plots. See |
myunitspts.arg |
List of arguments passed to |
myunitstext.arg |
List of arguments passed to |
days |
For |
min |
For |
exc.ICU |
Logical; For |
complete |
Logical; For |
Value
Two tables: one with information about severity classes and the respective quantities required to estimate the expected LOS, and another with information about ICUs classified as Most Efficient (ME) or Least Efficient (LE).
-
Sev
Severity class. Total
Total of patients.-
Surv
Total of survivors. -
Total.LOS
Total length of stay (days). -
AvDays
Average days to produce a survivor. -
N.Unit
Quantity of ICUs. -
N.Pat
Quantity of patients. SMR
Standardized Mortality Ratio Mean (standard deviation).-
SRU
Standardized Resource Use Mean (standard deviation).
Most Efficient ICUs have SRU, SMR < median. Least Efficient ICUs have SRU, SMR > median.
cut_in
returns a vector with the limits to cut the severity score.
SRUcalc
returns a table with:
-
Unit
ICUs names. SMR or SRU
Standardized Rate.-
N
Number of subjects analyzed. -
Observed
Observed number of deaths. -
Expected
Expected number of deaths. -
LOS_esp
Expected length of stay.
Author(s)
Lunna Borges and Pedro Brasil
References
Rothen HU, Stricker K, Einfalt J, Bauer P, Metnitz PGH, Moreno RP, Takala J (2007) Variability in outcome and resource use in intensive care units. Intensive Care Med 33:1329-1336
See Also
Examples
# Loading the dataset
data(icu)
# Removing data with inapropriate values and some editing
icu <- icu[-which(icu$los < 0 ),]
icu$Saps3DeathProbabilityStandardEquation <- icu$Saps3DeathProbabilityStandardEquation / 100
# Setting classes acording to limits of SAPS 3 score
days <- seq(1,100)
cut_lims <- cut_in(icu$Saps3Points, icu$los, icu$UnitDischargeName,
icu$Unit, days, exc.ICU = TRUE)
icu$class <- cut(icu$Saps3Points, breaks = cut_lims, include.lowest = TRUE)
# Estimating the SRU benchmarking myunit A and B
x <- SRU(prob = icu$Saps3DeathProbabilityStandardEquation,
death = icu$UnitDischargeName, unit = icu$Unit,
los = icu$los, score = icu$Saps3Points,
originals = TRUE, type = 1, plot = FALSE, myunits = c("A","B"))
x
plot(x)
# To see the units rankings and individual SMR and SRU, ordering by its SRU
x$rates[order(x$rates$sru),]
# SRU with diferent severity classes created by cut_in function
y <- SRU(prob = icu$Saps3DeathProbabilityStandardEquation,
death = icu$UnitDischargeName, unit = icu$Unit,
los = icu$los, score = icu$Saps3Points,
originals = FALSE, type = 1, plot = FALSE, class = icu$class)
y
# Using SRUcalc
SRUcalc(prob = icu$Saps3DeathProbabilityStandardEquation,
death = icu$UnitDischargeName, unit = icu$Unit, los = icu$los,
score = icu$Saps3Points)
rm(x, y, days, icu, cut_lims)