Skip to contents

Aggregate per-record predictive-policing data to per-area

Usage

morie_fairness_predpol_aggregate_areas(
  area,
  risk,
  outcome,
  group = NULL,
  population = NULL
)

Arguments

area

Area identifier per record.

risk

Predicted-risk score per record.

outcome

Realised-outcome indicator/count per record.

group

Optional protected attribute per record; the per-area majority becomes the area's label.

population

Optional named numeric vector mapping area to population, or a per-record vector (taken as constant within an area). When supplied, outcome rate is per 10,000 inhabitants.

Value

A list with areas, mean_risk, outcome_rate, group, n_records.

Examples

set.seed(1)
area <- sample(sprintf("a%02d", 1:5), 200, replace = TRUE)
risk <- runif(200)
outcome <- rbinom(200, 1, plogis(risk - 0.5))
group <- sample(c("X", "Y"), 200, replace = TRUE)
morie_fairness_predpol_aggregate_areas(area, risk, outcome, group = group)
#> $areas
#> [1] "a01" "a02" "a03" "a04" "a05"
#> 
#> $mean_risk
#>       a01       a02       a03       a04       a05 
#> 0.5544834 0.4895392 0.5475517 0.4777008 0.5056700 
#> 
#> $outcome_rate
#>       a01       a02       a03       a04       a05 
#> 0.4468085 0.4250000 0.5882353 0.5128205 0.3000000 
#> 
#> $group
#> a01 a02 a03 a04 a05 
#> "Y" "X" "Y" "X" "X" 
#> 
#> $n_records
#> a01 a02 a03 a04 a05 
#>  47  40  34  39  40 
#>