risk.stratification.analysis <- function(x) { ## Purpose: Assess risk stratification performance. ## Arguments: ## x: a numeric vector of length 2K for the raw confusion matrix. ## First K numbers: count of each risk group with reference positive results ## Second K numbers: count of each risk group with reference negative results ## Return: ## an expanded confusion matrix with post-test disease risks and likelihood ratios. ## Author: Feiming Chen ## ________________________________________________ d <- as.data.frame(addmargins(matrix(x, ncol = 2))) n <- nrow(d) - 1 # number of risk groups g.names <- paste0("Group ", 1:n) # group names dimnames(d) <- list(c(g.names, "Sum"), c("Ref.Pos", "Ref.Neg", "Sum")) d$Post.Test.Risk <- with(d, Ref.Pos / Sum, 2) d$Likelihood.Ratio <- with(d, Ref.Pos / Ref.Pos[n+1] / (Ref.Neg / Ref.Neg[n+1])) d } if (F) { # Unit Test x <- c(38, 27, 35, 5, 10, 41, 137, 158) risk.stratification.analysis(x) ## Ref.Pos Ref.Neg Sum Post.Test.Risk Likelihood.Ratio ## Group 1 38 10 48 0.79 12.52 ## Group 2 27 41 68 0.40 2.17 ## Group 3 35 137 172 0.20 0.84 ## Group 4 5 158 163 0.03 0.10 ## Sum 105 346 451 0.23 1.00 }
Tuesday, April 6, 2021
Assess risk stratification performance
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment