calceo {vlad} | R Documentation |
Compute Expected minus Observed value.
calceo(df, coeff, yemp = TRUE)
df |
Data Frame. First column Parsonnet Score and second column outcome of each operation. |
coeff |
Numeric Vector. Estimated coefficients alpha and beta from the binary logistic regression model. |
yemp |
Logical. If |
Returns a single value which is the difference between expected risk and observed outcome.
Philipp Wittenberg
Lovegrove J, Valencia O, Treasure T, Sherlaw-Johnson C and Gallivan S (1997). Monitoring the results of cardiac surgery by variable life-adjusted display. The Lancet, 350(9085), pp. 1128–1130.
Poloniecki J, Valencia O and Littlejohns P (1998). Cumulative risk adjusted mortality chart for detecting changes in death rate: observational study of heart surgery. BMJ, 316(7146), pp. 1697–1700.
Steiner S (2014). Risk-Adjusted Monitoring of Outcomes in Health Care. In Lawless JF (ed.), Statistics in Action, pp. 225–242. Informa UK Limited.
## Not run: library("vlad") # see Steiner (2014) p. 234 coeff <- c("(Intercept)"=-3.68, "Parsonnet"=0.077) # penalty reward for death (E-O scores multiplied with -1 to get O-E scores) calceo(df=data.frame(as.integer(0), 1), coeff=coeff)*-1 calceo(df=data.frame(as.integer(50), 1), coeff=coeff)*-1 # penalty reward for survival calceo(df=data.frame(as.integer(0), 0), coeff=coeff)*-1 calceo(df=data.frame(as.integer(50), 0), coeff=coeff)*-1 # Plot a VLAD/CRAM chart data("cardiacsurgery", package="spcadjust") cardiacsurgery <- dplyr::mutate(cardiacsurgery, phase=factor(ifelse(date < 2*365, "I", "II"))) S2 <- subset(cardiacsurgery, c(surgeon==2), c("phase", "Parsonnet", "status")) S2I <- subset(S2, c(phase=="I")) S2II <- subset(S2, c(phase=="II")) coeff <- coef(glm(status ~ Parsonnet, data=S2I, family="binomial")) EO <- sapply(1:nrow(S2), function(i) calceo(df=S2[i, c("Parsonnet", "status")], coeff=coeff)) df1 <- data.frame(cbind(subset(S2, select=c("phase")), "n"=1:nrow(S2), "cEO"=cumsum(EO))) df2 <- tidyr::gather(df1, "variable", value, c(-n, -phase)) ggplot2::qplot(data=df2, n, value, colour=phase, geom=c("line", "point"), xlab="Patient number", ylab="CUSUM E-O") + ggplot2::geom_hline(yintercept=0, linetype="dashed") + ggplot2::theme_classic() ## End(Not run)