This analysis is based on police traffic stops data from 12 cities across the country. (NYC and Boston are yet to be analyzed.) Since data from each city has its own weaknesses, analyses for cities are slightly different. But here are concepts that appear in most cities and thus worth taking a look at before jumping to your city.
There are two main types of stops: Pedestrian and vehicular. Many cities have vehicular or pedestrian stops data only while some have both. Analyses for cities with both data are divided into two parts. You can find more details in your city section.
Police officers are allowed to stop a pedestrian or driver for various reasons, ranging from when they observe a misdemeanor, to when they reasonably suspect criminal activity. Some city data has information on the reason for a stop. But this analysis doesn’t delve into differences between different reasons of stops, largely because many cities’ data lack that information. But I marked cities with that information for those who want to take a deeper dive.
Police officers may follow up a stop with a frisk (or pat-down) if they have reason to suspect that the person is armed and dangerous. A frisk is supposed to be a limited search of the person’s outer clothing for weapons.
An all-out search, on the other hand, involves the officer probing for all kinds of evidence - whether it be weapons, drugs or stolen items. In order to search a vehicle, an officer need a warrant or permission of the driver. It would be interesting to see if minority drivers were searched without a warrant at a higher rate than whites, but unfortunately, most data doesn’t explain which searches were conducted based on consent only and which are on a warrant.
Frisk and search rates frequently appear in this analysis. Each means the percentage of stops followed by a frisk and search, respectively. This is one of the key concepts that measure and reveal police officers’ implicit racial biases because frisks and searches not initiated by a warrant, involves officers’ second judgement. Similarly, arrest rate is the percentage of stops led to an arrest.
Another key concept is the hit rate, which is the percentage of successful frisks or searches. In other words, the share of frisks or searches where any kind of contraband was found. Although it doesn’t appear in every city analysis, this is another key concept that can reveal implicit biases.
If the hit rate for a certain group is much lower than that for the other groups, it means that group has more innocent people being investigated.
Some city agencies stop pedestrians and drivers more aggressively than others, but regardlss of how aggressive they are, racial disparities are found in most cities. Blacks and Hispanics were more likely to be stopped than whites. And once stopped, blacks face a frisk or search at a higher rate than whites. Within the same race, males are more likely to be stopped and searched than females.
## Getting data from the 2014-2018 5-year ACS
City: Philadelphia, Pennsylvania (GEOID: 4260000) Data Source: Philadelphia Police Department (PPD) Data Timeframe: Jan. 1, 2014 - May 23, 2020 Stop Type: Both Pedestrian and Vehicular (2,745,157 stops in total - 864,445 pedestrian and 1,880,711 vehicular stops) Data Strengths or Weaknesses: Data doesn’t have information on reasons for stops and searches, but only 1 percent of stops don’t have racial information of those who were stopped.
## Parsed with column specification:
## cols(
## .default = col_double(),
## the_geom = col_character(),
## the_geom_webmercator = col_character(),
## datetimeoccur = col_datetime(format = ""),
## weekday = col_character(),
## location = col_character(),
## districtoccur = col_character(),
## psa = col_character(),
## stoptype = col_character(),
## inside_or_outside = col_character(),
## gender = col_character(),
## race = col_character()
## )
## See spec(...) for full column specifications.
The city police has significantly reduced pedestrian stops during the timeframe, but the racial disparity between blacks and whites grew. Black male and female pedestrians combined, accounted for 69 percent of all pedestrian stops in 2015 in a city where only 42 percent of the population is black, and now they account for 73 percent.
Black males, especially those between the ages of 18 and 25, were stopped most often while walking.
## Warning: Ignoring 762 observations
When stopped, hispanic and black pedestrians are nearly twice more likely to be frisked than whites. 16 percent of Hispanic and black pedestrians stopped by the city police were frisked while only 8 percent of stopped white pedestrians were frisked.
## # A tibble: 6 x 4
## # Groups: clean_race [3]
## clean_race gender pct_frisk pct_search
## <chr> <chr> <dbl> <dbl>
## 1 Hispanic Male 17.5 15.3
## 2 Black Male 17.3 10.6
## 3 White Male 9.63 10.2
## 4 Hispanic Female 6.81 13.4
## 5 Black Female 5.46 10.3
## 6 White Female 3.91 8.22
The hit rate is the percentage of frisks or searches that were successful, or where the officer found contraband. The hit rate for black pedestrians is much lower than that for white and Hispanic pedestrians. That means innocent blacks are being frisked or searched at a higher rate.
## # A tibble: 6 x 3
## # Groups: clean_race [3]
## clean_race gender hit_rate
## <chr> <chr> <dbl>
## 1 Hispanic Female 25.6
## 2 White Female 21.1
## 3 Hispanic Male 20.3
## 4 White Male 17.4
## 5 Black Male 13.6
## 6 Black Female 13.1
15 percent of Hispanic pedestrian stops for led to an arrest.
## # A tibble: 6 x 3
## # Groups: clean_race [3]
## clean_race gender arrest_rate
## <chr> <chr> <dbl>
## 1 Hispanic Male 14.6
## 2 Hispanic Female 14.0
## 3 Black Female 11.8
## 4 Black Male 10.5
## 5 White Male 10.4
## 6 White Female 9.08
PPD has reduced pedestrian stops and expanded vehicular stops. The number of vehicular stops has increased and so does the racial disparity between blacks and whites.
## Warning: Ignoring 1045 observations
## # A tibble: 3 x 3
## clean_race pct_frisk pct_search
## <chr> <dbl> <dbl>
## 1 Black 5.08 3.28
## 2 Hispanic 4.62 3.58
## 3 White 2.31 2.37
City: Los Angeles, California (GEOID: 0644000) Data Source: Los Angeles Police Department (LAPD) Data Type: Both Pedestrian and Vehicular Data Timeframe: 2010 - 2020
## Parsed with column specification:
## cols(
## `Stop Number` = col_double(),
## `Form Reference Number` = col_double(),
## `Sex Code` = col_character(),
## `Descent Code` = col_character(),
## `Descent Description` = col_character(),
## `Stop Date` = col_character(),
## `Stop Time` = col_time(format = ""),
## `Officer 1 Serial Number` = col_double(),
## `Officer 1 Division Number` = col_character(),
## `Division Description 1` = col_character(),
## `Officer 2 Serial Number` = col_logical(),
## `Officer 2 Division Number` = col_logical(),
## `Division Description 2` = col_logical(),
## `Reporting District` = col_double(),
## `Stop Type` = col_character(),
## `Post Stop Activity Indicator` = col_character()
## )
## Warning: 17397001 parsing failures.
## row col expected actual file
## 3905 Officer 2 Division Number 1/0/T/F/TRUE/FALSE 10 'https://data.lacity.org/api/views/ci25-wgt7/rows.csv?accessType=DOWNLOAD'
## 3905 Division Description 2 1/0/T/F/TRUE/FALSE WEST VALLEY 'https://data.lacity.org/api/views/ci25-wgt7/rows.csv?accessType=DOWNLOAD'
## 4764 Officer 2 Serial Number 1/0/T/F/TRUE/FALSE 51263 'https://data.lacity.org/api/views/ci25-wgt7/rows.csv?accessType=DOWNLOAD'
## 4764 Officer 2 Division Number 1/0/T/F/TRUE/FALSE 16 'https://data.lacity.org/api/views/ci25-wgt7/rows.csv?accessType=DOWNLOAD'
## 4764 Division Description 2 1/0/T/F/TRUE/FALSE FOOTHILL 'https://data.lacity.org/api/views/ci25-wgt7/rows.csv?accessType=DOWNLOAD'
## .... ......................... .................. ........... ..........................................................................
## See problems(...) for more details.
LAPD data has information only on whether a stop was led to a further activity, but not what kind of further activity it was - whether it was a search or an arrest.
## Warning: Ignoring 1 observations
## Warning in mean.default(., post_activity_rate =
## mean(post_stop_activity_indicator)): argument is not numeric or logical:
## returning NA
## [1] NA
City: Minneapolis, MN Data Timeframe: November 2016 - Current Date Data Strengths or Weaknesses: No distinction between pedestrian and vehicular stops. Also doesn’t have data on search result. Whether contraband was found or the individual was arrested. Just whether individuals or their vehicles were searched or not.
Distinct Characteristics: Unlike data from other cities, Minneapolis data has reasons for stop. These are the six distinctive reasons of stops in the order of their share out of all reasons of stops: Traffic Law Enforcement (50%), Suspicious Person (28%), Suspicious Vehicle (21%), Attempt Pick-Up (2%), Curfew Violations (fewer than 1%) and Trauancy (fewer than 1%)
## Parsed with column specification:
## cols(
## OBJECTID = col_double(),
## masterIncidentNumber = col_character(),
## responseDate = col_character(),
## reason = col_logical(),
## problem = col_character(),
## callDisposition = col_character(),
## citationIssued = col_logical(),
## personSearch = col_character(),
## vehicleSearch = col_character(),
## preRace = col_character(),
## race = col_character(),
## gender = col_character(),
## lat = col_double(),
## long = col_double(),
## x = col_double(),
## y = col_double(),
## policePrecinct = col_double(),
## neighborhood = col_character(),
## lastUpdateDate = col_character()
## )
## Warning: 235344 parsing failures.
## row col expected actual file
## 18901 reason 1/0/T/F/TRUE/FALSE Moving Violation 'https://opendata.arcgis.com/datasets/215b4b543d894750aef86c725b56ee2a_0.csv'
## 18902 reason 1/0/T/F/TRUE/FALSE Moving Violation 'https://opendata.arcgis.com/datasets/215b4b543d894750aef86c725b56ee2a_0.csv'
## 18919 reason 1/0/T/F/TRUE/FALSE Equipment Violation 'https://opendata.arcgis.com/datasets/215b4b543d894750aef86c725b56ee2a_0.csv'
## 18926 reason 1/0/T/F/TRUE/FALSE Moving Violation 'https://opendata.arcgis.com/datasets/215b4b543d894750aef86c725b56ee2a_0.csv'
## 18928 reason 1/0/T/F/TRUE/FALSE Moving Violation 'https://opendata.arcgis.com/datasets/215b4b543d894750aef86c725b56ee2a_0.csv'
## ..... ...... .................. ................... .............................................................................
## See problems(...) for more details.
##
## Attempt Pick-Up (P) Curfew Violations (P)
## 2.23653251 0.07430341
## Suspicious Person (P) Suspicious Vehicle (P)
## 27.52879257 21.10526316
## Traffic Law Enforcement (P) Truancy (P)
## 49.02229102 0.03281734
Percentages above may slightly change as new data piles.
Firstly, I analyzed all stops, not considering the reasons of stops, just like other cities.
Once stopped, minorities are more
## # A tibble: 6 x 3
## # Groups: clean_race [3]
## clean_race gender search_rate
## <chr> <chr> <dbl>
## 1 Black Male 26.0
## 2 Hispanic Male 15.5
## 3 Black Female 11.7
## 4 White Male 11.3
## 5 Hispanic Female 7.58
## 6 White Female 6.77
City: Cincinnati, Ohio Data Source: City of Cincinnati Data Type: Both Pedestrian and Vehicular Data Strengths or Weaknesses: No arrest infomation.
This data includes passenger data but in this analysis, we only looked at drivers. This data also had reasons for stop but was very dirty so I couldn’t take a deeper look at specific reasons for stop.
post activity was so dirty so didn’t regard in this analysis.
## Parsed with column specification:
## cols(
## .default = col_character(),
## LATITUDE_X = col_double(),
## LONGITUDE_X = col_double(),
## ACTIONTAKENCIDID = col_double(),
## PRIORITY_ = col_double(),
## VEHICLE_YEAR = col_double()
## )
## See spec(...) for full column specifications.
## Warning: 290 parsing failures.
## row col expected actual file
## 2312 VEHICLE_YEAR no trailing characters NISS 'https://data.cincinnati-oh.gov/api/views/hibq-hbnj/rows.csv?accessType=DOWNLOAD'
## 4001 VEHICLE_YEAR a double HUK3728 'https://data.cincinnati-oh.gov/api/views/hibq-hbnj/rows.csv?accessType=DOWNLOAD'
## 4818 VEHICLE_YEAR no trailing characters CHEV 'https://data.cincinnati-oh.gov/api/views/hibq-hbnj/rows.csv?accessType=DOWNLOAD'
## 7808 VEHICLE_YEAR a double J581901 'https://data.cincinnati-oh.gov/api/views/hibq-hbnj/rows.csv?accessType=DOWNLOAD'
## 9896 VEHICLE_YEAR no trailing characters CHEV 'https://data.cincinnati-oh.gov/api/views/hibq-hbnj/rows.csv?accessType=DOWNLOAD'
## .... ............ ...................... ....... .................................................................................
## See problems(...) for more details.
## # A tibble: 358,979 x 2
## instance_id n
## <chr> <int>
## 1 056A0B8E-BB23-4E89-9A16-ABDB4A88AF28 2
## 2 0760ABD5-B802-4431-B421-14FEE9C2D19D 2
## 3 097A449D-4AB1-487D-93B6-5E72949086D7 2
## 4 09BB6FD3-F1E9-49C6-A00F-0697699AE0BB 2
## 5 0A7FA13B-F610-443F-ADDE-C34D0D20807F 2
## 6 0BB23656-13E4-4BF5-AFF1-B4FE49106C4B 2
## 7 0CC2DF4F-EA06-4BB5-BBC4-76980189A007 2
## 8 11B8BD71-D771-41C9-BAF6-E7B80A8A04FF 2
## 9 129E6678-D3E4-4F2A-8B8B-367B639008AF 2
## 10 154DD335-2D4A-472A-8671-C6BE7693F69E 2
## # … with 358,969 more rows
City: San Francisco, California Data Source: San Francisco Police Department Data Timeframe: 2014-2017 Data Strengths or Weaknesses: Data from 2017 are all stops initiated by a traffic violation while data from previous years have stops of all kinds of reasons.
## New names:
## * `Location of Stop` -> `Location of Stop...10`
## * `Location of Stop` -> `Location of Stop...11`
## Warning in read_fun(path = enc2native(normalizePath(path)), sheet_i = sheet, :
## Expecting date in B31189 / R31189C2: got '5:35:00 PM'
## # A tibble: 6 x 3
## # Groups: clean_race [3]
## clean_race gender search_rate
## <chr> <chr> <dbl>
## 1 Black Male 14.2
## 2 Black Female 6.35
## 3 Hispanic Male 5.80
## 4 Hispanic Female 2.76
## 5 White Male 2.13
## 6 White Female 1.02
Whites have the highest arrest rate than blacks.
## # A tibble: 6 x 5
## # Groups: clean_race [3]
## clean_race gender citation_rate warning_rate arrest_rate
## <chr> <chr> <dbl> <dbl> <dbl>
## 1 White Male 0.710 23.7 74.2
## 2 White Female 0.401 26.0 72.5
## 3 Hispanic Female 0.725 29.0 67.4
## 4 Hispanic Male 1.56 28.1 67.0
## 5 Black Female 1.56 38.0 56.6
## 6 Black Male 2.49 39.2 54.2
City: Louisville, Kentucky Data Source: Louisville Metro Police Department Stop Type: Vehicular Data Timeframe: 2009-2019 Data Strengths or Weaknesses: One unique strength of Louisville data is that it include demographic information - race and age - of police officers as well. But this analysis doesn’t examine the dynamics between PO races and driver races.
This data also include reasons for search but there was no consistent classification so I disregarded that part.
## Parsed with column specification:
## cols(
## ID = col_double(),
## TYPE_OF_STOP = col_character(),
## CITATION_CONTROL_NUMBER = col_character(),
## `ACTIVITY RESULTS` = col_character(),
## OFFICER_GENDER = col_character(),
## OFFICER_RACE = col_character(),
## OFFICER_AGE_RANGE = col_character(),
## ACTIVITY_DATE = col_character(),
## ACTIVITY_TIME = col_time(format = ""),
## ACTIVITY_LOCATION = col_character(),
## ACTIVITY_DIVISION = col_character(),
## ACTIVITY_BEAT = col_character(),
## DRIVER_GENDER = col_character(),
## DRIVER_RACE = col_character(),
## DRIVER_AGE_RANGE = col_character(),
## `NUMBER OF PASSENGERS` = col_double(),
## WAS_VEHCILE_SEARCHED = col_character(),
## REASON_FOR_SEARCH = col_character()
## )
Minorites higher citation rate and lower warning rate while citation rate and lower
## # A tibble: 6 x 4
## # Groups: clean_race [3]
## clean_race gender citation_rate warning_rate
## <chr> <chr> <dbl> <dbl>
## 1 White Female 93.5 6.46
## 2 White Male 92.3 7.73
## 3 Hispanic Female 89.9 10.1
## 4 Hispanic Male 88.8 11.2
## 5 Black Female 88.3 11.7
## 6 Black Male 85.4 14.6
City: Houston, Texas Data Source: Stanford Open Policing Project Data Type: Vehicular Data Timeframe: Jan. 1, 2014 - Apr. 8, 2018 Data Strengths or Weaknesses: Ethnicity is not considered. All stops in the data are those followed by a citation. So no citation rates here.
City: Nashville, TN Data Source: Stanford Open Policing Project Data Type: Vehicular Data Timeframe: December 2009 - March 2019 Data Strengths or Weaknesses: This data has reasons for stops.
## Warning: 50 parsing failures.
## row col expected actual file
## 32717 precinct a double U 'Stanford/NASHVILLE/tn_nashville_2020_04_01.csv'
## 32717 zone a double UNK 'Stanford/NASHVILLE/tn_nashville_2020_04_01.csv'
## 32750 precinct a double U 'Stanford/NASHVILLE/tn_nashville_2020_04_01.csv'
## 32750 zone a double UNK 'Stanford/NASHVILLE/tn_nashville_2020_04_01.csv'
## 337691 precinct a double U 'Stanford/NASHVILLE/tn_nashville_2020_04_01.csv'
## ...... ........ ........ ...... ................................................
## See problems(...) for more details.
## # A tibble: 6 x 7
## # Groups: clean_race [3]
## clean_race gender frisk_rate search_rate citation_rate warning_rate
## <chr> <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Black Male 4.47 8.32 21.4 81.7
## 2 Hispanic Male 4.44 7.74 36.8 71.8
## 3 White Male 1.60 3.36 22.6 78.4
## 4 Black Female 1.06 2.73 20.2 82.7
## 5 Hispanic Female 0.981 2.35 32.0 75.5
## 6 White Female 0.723 2.10 21.8 79.2
## # … with 1 more variable: arrest_rate <dbl>
City: New York, New York Data Source: New York Polie Department Data Type: Pedestrian Data Timeframe: 2015 - 2019 (data available from 2003)
## Parsed with column specification:
## cols(
## .default = col_character(),
## year = col_double(),
## pct = col_double(),
## ser_num = col_double(),
## datestop = col_double(),
## timestop = col_double(),
## perobs = col_double(),
## compyear = col_double(),
## comppct = col_double(),
## repcmd = col_double(),
## revcmd = col_double(),
## dob = col_logical(),
## age = col_double(),
## ht_feet = col_double(),
## ht_inch = col_double(),
## weight = col_double(),
## rescode = col_logical(),
## premtype = col_logical(),
## aptnum = col_logical(),
## state = col_logical(),
## zip = col_logical()
## # ... with 7 more columns
## )
## See spec(...) for full column specifications.
City: Raleigh-Durham, North Carolina Data Source: North Carolina State Bureau of Investigation (NCSBI) Data Timrframe: 2000-2019 Data Strengths or Weaknesses: This data is a gold mine. It has so much information other data doesn’t have, including how many ounces of drug was found. I highly recommend Samantha digging this.
## Warning in scan(file = file, what = what, sep = sep, quote = quote, dec = dec, :
## embedded nul(s) found in input
#### Raleigh Police Department Search Rate
## # A tibble: 6 x 3
## # Groups: clean_race [3]
## clean_race gender search_rate
## <chr> <chr> <dbl>
## 1 Black Male 7.10
## 2 Hispanic Male 5.48
## 3 White Male 2.96
## 4 Black Female 1.96
## 5 White Female 1.60
## 6 Hispanic Female 1.19
## # A tibble: 6 x 3
## # Groups: clean_race [3]
## clean_race gender hit_rate
## <chr> <chr> <dbl>
## 1 Black Male 2.33
## 2 Hispanic Male 1.06
## 3 White Male 0.965
## 4 Black Female 0.619
## 5 White Female 0.500
## 6 Hispanic Female 0.385
## # A tibble: 6 x 3
## # Groups: clean_race [3]
## clean_race gender search_rate
## <chr> <chr> <dbl>
## 1 Black Male 7.33
## 2 Hispanic Male 5.30
## 3 White Male 2.83
## 4 Black Female 1.93
## 5 White Female 1.58
## 6 Hispanic Female 0.953
City: Boston, Massachusetts Data Source: Boston Police Department Data Timeframe:
City: Chicago, Illinois Data Source: Illinois Department of Transportation (IDOT) Data Type: Both Pedestrian and Vehicular Data Timeframe: Jan. 1, 2014 - Dec. 31, 2018 (Pedestrian stops data is available from 2017, which is the first year the data was collected.) Data Strengths or Weaknesses:
## Warning: 1 parsing failure.
## row col expected actual file
## 32964 TimeOfStop time like 1 'ILLINOIS/2018 IPSS Data/2018 IPSS Data.txt'
## Warning: 96 parsing failures.
## row col expected actual file
## 13257 ZIP no trailing characters -4457 'ILLINOIS/2015 ITSS Data/2015 ITSS Data.txt'
## 69983 ZIP no trailing characters -1984 'ILLINOIS/2015 ITSS Data/2015 ITSS Data.txt'
## 72908 ZIP no trailing characters -9411 'ILLINOIS/2015 ITSS Data/2015 ITSS Data.txt'
## 105424 ZIP no trailing characters -4747 'ILLINOIS/2015 ITSS Data/2015 ITSS Data.txt'
## 194322 ZIP no trailing characters -0000 'ILLINOIS/2015 ITSS Data/2015 ITSS Data.txt'
## ...... ... ...................... ...... ............................................
## See problems(...) for more details.
## Warning: 128 parsing failures.
## row col expected actual file
## 19292 ZIP no trailing characters -3084 'ILLINOIS/2016 ITSS Data/2016 ITSS Data.txt'
## 72845 ZIP no trailing characters -2711 'ILLINOIS/2016 ITSS Data/2016 ITSS Data.txt'
## 170701 ZIP no trailing characters -4101 'ILLINOIS/2016 ITSS Data/2016 ITSS Data.txt'
## 171721 ZIP no trailing characters -4128 'ILLINOIS/2016 ITSS Data/2016 ITSS Data.txt'
## 213813 ZIP no trailing characters -0000 'ILLINOIS/2016 ITSS Data/2016 ITSS Data.txt'
## ...... ... ...................... ...... ............................................
## See problems(...) for more details.
## Warning: 2011046 parsing failures.
## row col expected actual file
## 1 DateOfStop date like %m/%d/%Y 2017-01-06 'ILLINOIS/2017 ITSS Data/2017 ITSS Data.txt'
## 2 DateOfStop date like %m/%d/%Y 2017-01-06 'ILLINOIS/2017 ITSS Data/2017 ITSS Data.txt'
## 3 DateOfStop date like %m/%d/%Y 2017-01-06 'ILLINOIS/2017 ITSS Data/2017 ITSS Data.txt'
## 4 DateOfStop date like %m/%d/%Y 2017-01-07 'ILLINOIS/2017 ITSS Data/2017 ITSS Data.txt'
## 5 DateOfStop date like %m/%d/%Y 2017-01-13 'ILLINOIS/2017 ITSS Data/2017 ITSS Data.txt'
## ... .......... .................. .......... ............................................
## See problems(...) for more details.
## Warning: 152 parsing failures.
## row col expected actual file
## 268044 DriverPassengerDrugAmount a double #REF! 'ILLINOIS/2018 ITSS Data/2018 ITSS Data.txt'
## 268781 DriverPassengerDrugAmount a double #REF! 'ILLINOIS/2018 ITSS Data/2018 ITSS Data.txt'
## 269080 DriverPassengerDrugAmount a double #REF! 'ILLINOIS/2018 ITSS Data/2018 ITSS Data.txt'
## 269742 DriverPassengerDrugAmount a double #REF! 'ILLINOIS/2018 ITSS Data/2018 ITSS Data.txt'
## 276799 DriverPassengerDrugAmount a double #REF! 'ILLINOIS/2018 ITSS Data/2018 ITSS Data.txt'
## ...... ......................... ........ ...... ............................................
## See problems(...) for more details.
## # A tibble: 6 x 5
## # Groups: clean_race [3]
## clean_race gender frisk_rate search_rate arrest_rate
## <chr> <chr> <dbl> <dbl> <dbl>
## 1 Black Male 37.3 26.5 15.4
## 2 Hispanic Male 35.4 23.8 11.8
## 3 White Male 20.5 18.5 11.5
## 4 Black Female 15.6 21.6 10.8
## 5 Hispanic Female 13.3 16.8 7.03
## 6 White Female 8.99 17.4 11.2
## # A tibble: 6 x 3
## # Groups: clean_race [3]
## clean_race gender hit_rate
## <chr> <chr> <dbl>
## 1 White Female 16.4
## 2 Hispanic Female 16.0
## 3 White Male 14.7
## 4 Black Female 13.3
## 5 Black Male 12.1
## 6 Hispanic Male 11.3
There are four distinctive reasons for stops: Moving Violations, Equipment, License Plate/Registration and Commercial Vehicle. And there are six types of moving violations: Speed, Lane Violation, Seat Belt, Traffic Sign or Signal, Follow Too Close and Other.
In this analysis, I included all kinds of stop. The number of vehicular stops constantly increased over the past five years and so does the racial disparity between blacks and whites.
##
## 0
## 1134978
No arrest rate. For whatever reason, can’t see search rate. Couldn’t figure out after spending 30 min. Will fix it later.
## # A tibble: 6 x 5
## # Groups: clean_race [3]
## clean_race gender warning_rate citation_rate search_rate
## <chr> <chr> <dbl> <dbl> <dbl>
## 1 Black Female 77.0 23.0 0
## 2 Black Male 76.3 23.7 0
## 3 Hispanic Female 69.8 30.2 0
## 4 Hispanic Male 64.6 35.4 0
## 5 White Female 63.2 36.8 0
## 6 White Male 62.9 37.1 0
City: New Orleans, Louisiana Data Source: New Orleans Police Department Data Type: Vehicular only Data Timeframe: 2016 - 2019
NOPD data has reasons for stops. Below are the reasons in the order of their share from the largest to the smallest.
## Parsed with column specification:
## cols(
## .default = col_character(),
## FieldInterviewID = col_double(),
## NOPD_Item = col_logical(),
## District = col_double(),
## ActionsTaken = col_logical(),
## VehicleYear = col_double(),
## SubjectID = col_double(),
## SubjectAge = col_double(),
## SubjectHeight = col_double(),
## SubjectWeight = col_double(),
## Longitude = col_double(),
## Latitude = col_double(),
## Zip = col_logical(),
## BlockAddress = col_logical()
## )
## See spec(...) for full column specifications.
## Warning: 1945128 parsing failures.
## row col expected actual file
## 46519 NOPD_Item 1/0/T/F/TRUE/FALSE J0000010 'https://data.nola.gov/api/views/kitu-f4uy/rows.csv?accessType=DOWNLOAD'
## 46520 NOPD_Item 1/0/T/F/TRUE/FALSE J0000010 'https://data.nola.gov/api/views/kitu-f4uy/rows.csv?accessType=DOWNLOAD'
## 47980 NOPD_Item 1/0/T/F/TRUE/FALSE J0000110 'https://data.nola.gov/api/views/kitu-f4uy/rows.csv?accessType=DOWNLOAD'
## 47980 Zip 1/0/T/F/TRUE/FALSE 70115 'https://data.nola.gov/api/views/kitu-f4uy/rows.csv?accessType=DOWNLOAD'
## 47980 BlockAddress 1/0/T/F/TRUE/FALSE S Claiborne Ave & Robert St 'https://data.nola.gov/api/views/kitu-f4uy/rows.csv?accessType=DOWNLOAD'
## ..... ............ .................. ........................... ........................................................................
## See problems(...) for more details.
## # A tibble: 10 x 2
## stop_description pct
## <chr> <dbl>
## 1 TRAFFIC VIOLATION 58.8
## 2 CALL FOR SERVICE 13.6
## 3 SUSPECT PERSON 11.7
## 4 CRIMINAL VIOLATION 5.81
## 5 OTHER 4.43
## 6 CITIZEN CONTACT 2.81
## 7 SUSPECT VEHICLE 1.23
## 8 FLAGGED DOWN 0.848
## 9 JUVENILE VIOLATION 0.595
## 10 PRESENT AT CRIME SCENE 0.149
This analysis include all reasons of stops.
## Warning: Ignoring 1293 observations