Results

Overall

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

Philadelphia

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.

Pedestrian

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

Pedestrian - Frisk and Search Rates

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

Pedestrian - Hit Rates

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

Arrest Rates

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

Vehicular

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

Los Angeles

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.

Post Activity Rate

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

Minneapolis

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.

ALL reasons

Firstly, I analyzed all stops, not considering the reasons of stops, just like other cities.

Then I focused stops for three discretionary reasons - Suspicious Person, Suspicious Vehicle and Curfew Violation

Search Rate - either individual or vehicle

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

Cincinnati

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

San Francisco

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'

Search Rate

## # 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

Arrest Rate

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

Louisville

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()
## )

Citation Rate

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

Houston

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.

Nashville

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.

Search Rate

## # 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>

New York

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.

Raleigh-Durham

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

Raleigh Police Department Hit Rate

## # 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

Durham Police Department

Search and Hit Rates by Race and Gender

## # 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

Boston

City: Boston, Massachusetts Data Source: Boston Police Department Data Timeframe:

Chicago

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:

Pedestrian

## 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.

Pedestrian - Frisk, Search and Arrest Rates

## # 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

Pedestrian - Hit Rates

## # 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

Vehicular

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

Vehicular - Search Rates

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

New Orleans

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.

Age Distribution of Black Male Drivers Stopped by NOPD

## Warning: Ignoring 1293 observations