Part 11 · How robust is your finding?

Module 26 · How do you assess robustness?

Would the finding survive a small nudge?

By the end of this module you will be able to
  • Explain what robustness means for a CNA finding.
  • Run frscored_cna() across a range of thresholds.
  • Judge whether a finding is steady enough to brief.

A result you plan to act on should not fall apart the moment the data or the thresholds wobble a little. Robustness asks exactly that. The CNA ecosystem has a dedicated companion package for it called frscore, which scores how "fit-robust" your models are across a whole range of consistency and coverage thresholds, so you don't have to do it by hand and lose an afternoon.

robustness.R
# install once
install.packages("frscore")

library(frscore)

# re-analyse across many thresholds and score robustness in one call
fr <- frscored_cna(immunization,
                   fit.range = c(1, 0.7),
                   granularity = 0.1)
fr
What the score means

Higher fit-robustness means a steadier finding

frscored_cna() runs CNA again and again across a grid of thresholds, here from 1.0 down to 0.7 in steps of 0.1, and rewards the models that keep showing up. A pattern that reappears no matter how you turn the dials is one you can trust enough to put in front of a director without sweating.

Reflect

Think about confidence.

  • Would your finding survive a small change in the data or thresholds?
  • How robust does a result need to be before you'd put it in front of a director?