View source: R/lr_sensitivity.R
| lr_sensitivity | R Documentation |
Evaluates how the likelihood ratio changes when model parameters vary. This is essential for understanding the robustness of forensic conclusions and for communicating uncertainty to decision-makers.
lr_sensitivity(
evidence_type,
param,
range = NULL,
steps = 20,
match = TRUE,
baseline = NULL
)
evidence_type |
Character. Type of evidence to analyze. Options: "sex", "age", "hair", "region". |
param |
Character. Parameter to vary. Options depend on evidence_type:
|
range |
Numeric vector of length 2. Range of parameter values to test. Default depends on param type. |
steps |
Integer. Number of steps in the range. Default: 20. |
match |
Logical. TRUE for matching evidence (same sex/age in range/etc), FALSE for mismatching. Default: TRUE. |
baseline |
List. Baseline parameter values. If NULL, uses defaults. |
Sensitivity analysis is critical in forensic science because:
Parameters (error rates, population frequencies) are often estimated with uncertainty
Different reference populations may have different frequencies
The analysis reveals which parameters most affect conclusions
Interpretation:
Steep curves indicate high sensitivity (conclusions depend strongly on parameter choice)
Flat curves indicate robustness (conclusions stable across reasonable parameter values)
A data.frame with columns:
param_value: Parameter value tested
LR: Resulting likelihood ratio
log10_LR: Log10 of LR (useful for plotting)
Kling D, Tillmar AO, Egeland T (2014). "Familias 3-Extensions and new functionality." Forensic Science International: Genetics, 13, 121-127.
lr_sex, lr_age, lr_hair_color
for individual LR calculations.
# How does sex LR change with error rate?
sens_eps <- lr_sensitivity("sex", param = "eps", range = c(0.01, 0.20))
plot(sens_eps$param_value, sens_eps$log10_LR, type = "l",
xlab = "Error rate", ylab = "log10(LR)",
main = "Sex LR sensitivity to error rate")
abline(h = 0, lty = 2)
# How does sex LR change with population frequency?
sens_freq <- lr_sensitivity("sex", param = "freq", range = c(0.3, 0.7))
plot(sens_freq$param_value, sens_freq$log10_LR, type = "l",
xlab = "Female frequency", ylab = "log10(LR)",
main = "Sex LR sensitivity to population frequency")
# Age LR sensitivity to range parameter
sens_range <- lr_sensitivity("age", param = "range", range = c(2, 15))
plot(sens_range$param_value, sens_range$log10_LR, type = "l",
xlab = "Age range (+/- years)", ylab = "log10(LR)",
main = "Age LR sensitivity to range")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.