Reported, estimated and imputed crime

library(fbiCDE)

Three words describe where a crime count comes from, and this package uses each with one meaning.

  • Reported: the sum of what agencies submitted to the FBI, in either format (NIBRS, or the older summary format). It covers only the agencies that reported. get_reported_crime() returns it.
  • Estimated: the FBI’s published figure. It adds a statistical model’s prediction for everything outside NIBRS: agencies that did not report, and agencies that reported only in the older summary format. It comes with a 95% confidence interval. get_nibrs_estimate() returns it.
  • Imputed: a value filled in for a missing report. The FBI’s estimate imputes, and so does impute_reporting_gaps(), which fills an agency’s missing months from its own neighboring months. This package always says which one it means.

Where the FBI publishes estimates

The API publishes the FBI’s NIBRS estimates for 2021 and 2022, for each state and the nation. It publishes none for counties, cities or metro areas. The FBI’s older summary-format estimates, 1979 onward, are a bulk download that this package does not read.

How much of the published figure was modeled

imputation_gap() compares the estimate with reported crime. The FBI builds the estimate from NIBRS reports alone, so the gap is measured against crime reported in NIBRS.

ca <- imputation_gap("CA", year = 2021:2022)
ca[, c("year", "reported", "reported_nibrs", "reported_other",
       "coverage", "coverage_nibrs", "published", "share_estimated")]
#>   year reported reported_nibrs reported_other  coverage coverage_nibrs
#> 1 2021    36439          36943           -504 0.2632175      0.2632175
#> 2 2022   193824          71625         122199 0.9878345      0.4658594
#>   published share_estimated
#> 1    217539       0.8301776
#> 2    207381       0.6546212

In 2021 California’s reports reached the FBI through NIBRS only: the two coverage figures are the same. Most California agencies had not switched to NIBRS, and agencies reporting in NIBRS covered 26% of the state’s population. The FBI’s model supplied 83% of its published figure of 217,539 violent crimes.

In 2022 the FBI accepted both formats. Agencies reporting in either format covered 99% of the population, but those reporting in NIBRS covered 47%. The FBI’s model treated the rest as missing, including the 122,199 violent crimes reported in the older format, and supplied 65% of the published figure.

Those older-format reports are a check on the model. The model supplied 135,756 violent crimes for the agencies outside NIBRS, which reported 122,199 themselves.

California’s own count gives a second check for 2021. The California Department of Justice collected 2021 reports in both formats and published 183,546 violent crimes (Crime in California 2021, Table 3). That is below the lower bound of the FBI’s 95% interval, 189,849.

Not every state’s 2021 reports were NIBRS. In New Jersey, for example, some agencies reported in the older format:

nj <- imputation_gap("NJ", year = 2021)
nj[, c("reported", "reported_nibrs", "reported_other", "coverage",
       "coverage_nibrs")]
#>   reported reported_nibrs reported_other  coverage coverage_nibrs
#> 1    12972           7619           5353 0.7540175      0.4492799

Agencies reporting in either format covered 75% of New Jersey’s population, and those reporting in NIBRS 45%. Of the 12,972 violent crimes reported, 5,353 arrived in the older format, and the FBI’s model treated them as missing.

imputation_gap(year = 2021:2022)[, c("year", "coverage_nibrs",
                                     "published", "share_estimated",
                                     "share_lower", "share_upper")]
#>   year coverage_nibrs published share_estimated share_lower share_upper
#> 1 2021      0.7471695   1325991       0.3040435   0.2176449   0.3732574
#> 2 2022      0.8090670   1328033       0.2411695   0.1781031   0.2952472

The counting difference

The two formats count offenses differently; for example, the summary format counts only the most serious offense in an incident. Where every report arrived in NIBRS, the difference between reported and reported_nibrs is the counting difference alone. Texas in 2022 is such a case: its two coverage figures are the same for every offense.

codes <- c("V", "P", "ROB", "ASS", "BUR", "LAR", "MVT", "ARS", "HOM", "RPE")
tx <- do.call(rbind, lapply(codes, function(code) {
  imputation_gap("TX", year = 2022, offense = code)
}))
tx$difference <- round(100 * tx$reported_other / tx$reported_nibrs, 1)
tx[, c("offense", "coverage", "coverage_nibrs", "reported",
       "reported_nibrs", "difference", "share_estimated")]
#>    offense  coverage coverage_nibrs reported reported_nibrs difference
#> 1        V 0.9882089      0.9882089   131255         132433       -0.9
#> 2        P 0.9882089      0.9882089   694178         694614       -0.1
#> 3      ROB 0.9882089      0.9882089    21264          21371       -0.5
#> 4      ASS 0.9882089      0.9882089    91660          92400       -0.8
#> 5      BUR 0.9882089      0.9882089   100888          95444        5.7
#> 6      LAR 0.9882089      0.9882089   491113         500672       -1.9
#> 7      MVT 0.9882089      0.9882089    99234          98498        0.7
#> 8      ARS 0.9882089      0.9882089     2943           2943        0.0
#> 9      HOM 0.9882089      0.9882089     2100           2100        0.0
#> 10     RPE 0.9882089      0.9882089    16231          16562       -2.0
#>    share_estimated
#> 1    -0.0068423894
#> 2     0.0109581239
#> 3    -0.0009367243
#> 4     0.0033437601
#> 5     0.0078173729
#> 6     0.0079102135
#> 7     0.0290885075
#> 8     0.0107563025
#> 9    -0.0329562223
#> 10   -0.0728073585

NIBRS counts slightly more violent crime than the summary rules do (-0.9%), and for every offense but burglary (5.7%) the two series are within about 2% of each other. A reported_other of that size, negative included, means nearly every report arrived in NIBRS.

The gap needs no such allowance: it compares the estimate with NIBRS counts, which follow the same rules. It is still not exactly zero where the model had little to supply. In Texas in 2022 it runs from -7.3% to 2.9% of the estimate.