A new study published in PNAS, titled “Officer characteristics and racial disparities in fatal officer-involved shootings” is getting lots of attention (34 news articles and tweeted by 1,808 users with an upper bound of 9.8 million followers as of 7/30/2019). It concludes, among other things, that “White officers are not more likely to shoot minoritiy civilians than non-White officers,” and “Increasing diversity among officers by itself is unlikely to reduce racial disparity in police shootings.”
I commend the authors for being up front about a key limitation of their work: “Our analyses speak to racial disparities in the subset of shootings that result in fatalities, and not officers’ decisions to use lethal force more generally.” But unfortunately, this gets lost in media coverage and tweets.
I’ve posted about this before. Fatal OIS are not a random sample of all OIS, so statistical analyses of them may serve to mislead us rather than shed light on the truth. Take a look at Table 2 on page 3 of their study:
The million dollar question here is: how often did each “variable” occur in 2015 when officers did not use deadly force? As but one example, how often did police officers encounter suicidal civilians? In a small subset of these incidents, officers fatally shot the suicidal citizen. That’s what is being analyzed in Table 2 for evidence of racial disparity. Not included in Table 2 are numerous incidents wherein the outcome was something other than a fatal OIS (e.g., nonfatal OIS, less lethal force, no force). Without knowing the racial breakdown of these counterfactual incidents, it isn’t possible to conclude anything about the “likelihood” of officers shooting minorities.
Next month, at the ASA meeting in NYC, Geoff Alpert and I will be discussing the benefits and drawbacks of analyzing crowdsourced OIS data. Chief among the drawbacks is that most track only fatal OIS, and the racial breakdown of fatal OIS often differs substantially from the racial breakdown of all OIS. Here’s a table I made with the VICE data I mentioned in my last post.
Among 21 jurisdictions with near complete data (< 5% missing) on the race of citizens shot by police from 2010-16, you can see that as you move from examining just fatalities to examining all OIS, %white decreases while %black increases. In some cities, the differences are more pronounced than others. Take Nashville, for example, where there were 39 OIS (only 11 of which were fatal):
In this case, %white and %black basically flip from fatal OIS to all OIS. Perhaps the differences would be nonsignificant in a national database, but that remains unknown since no national database includes nonfatal OIS.
We need to know about every time an officer shoots at a person, regardless of whether the person is killed. We also need to know about the universe of incidents wherein it might have been reasonable for officers to use deadly force, but they refrained from it. But as others have pointed out, police administrative records are themselves biased if officers racially discriminate when choosing whom to investigate (the implication is we also need to know who they don’t stop). There are no easy answers here. But for now, I see no reason why we can’t track nonfatal in addition to fatal OIS.
I’m a Stata guy. If you’re interested, here’s some code to replicate my table above and look at differences across cities. Just click on this link to get the data, then paste everything below into a .do file and run it.
/* For ASA 2019 in New York: Analyze VICE data for differences in %fatal by city, and how different your conclusions would be if you only had the fatal shootings, as in WAPO */
tab city Fatal
gen fatal = .
replace fatal = 1 if Fatal == “F”
replace fatal = 0 if Fatal == “N”
replace fatal = . if Fatal == “U”
replace fatal = . if Fatal == “”
replace fatal = . if Fatal == “NA”
tab fatal, m
tab city fatal, row
gen nonfatal = .
replace nonfatal = 1 if fatal == 0
replace nonfatal = 0 if fatal == 1
tab nonfatal fatal
gen white_shoots = 1 if SubjectRace == “W”
gen black_shoots = 1 if SubjectRace == “B”
gen latinx_shoots = 1 if SubjectRace == “L”
gen other_shoots = 1 if SubjectRace == “A” | SubjectRace == “O”
gen white_fatals = 1 if SubjectRace == “W” & fatal == 1
gen black_fatals = 1 if SubjectRace == “B” & fatal == 1
gen latinx_fatals = 1 if SubjectRace == “L” & fatal == 1
gen other_fatals = 1 if (SubjectRace == “A” | SubjectRace == “O”) & fatal == 1
/* create nshootings so that when collpased by city, this variable will show the number of shootings each city had */
gen nshootings = 1
collapse (sum) fatal nonfatal nshootings *_shoots *_fatals, by(city)
gen pct_fatal = (fatal/nshootings)*100
gen pct_white = (white_shoots/nshootings)*100
gen pct_black = (black_shoots/nshootings)*100
gen pct_latinx = (latinx_shoots/nshootings)*100
gen pct_other = (other_shoots/nshootings)*100
gen pct_white_fat = (white_fatals/fatal)*100
gen pct_black_fat = (black_fatals/fatal)*100
gen pct_latinx_fat = (latinx_fatals/fatal)*100
gen pct_other_fat = (other_fatals/fatal)*100
drop if city == “Detroit” // too much missing information to be useful
list city pct_fatal
/* Create a bar chart showing variation in %fatal across cities */
graph bar pct_fatal, over(city, sort(pct_fatal) descending label(angle(forty_five) labsize(vsmall))) ///
blabel(bar, size(vsmall) format(%10.0f)) ytitle(“% Fatal”, size(medsmall)) scheme(plottig) ///
bar(1, color(plb1)) title(“OIS Fatality Rates, 2010-16 (N=46 Cities)”, size(medsmall))
list city fatal pct_white_fat nshootings pct_white
list city fatal pct_black_fat nshootings pct_black
list city fatal pct_latinx_fat nshootings pct_latinx
/* identify cities that have complete/near complete subject race data */
gen race_complete = pct_white + pct_black + pct_latinx + pct_other
list city race_complete
/* for overall summary statistics, only include cities with at least 95% complete race data */
sum pct_* if race_complete >= 95