Poverty and Hate Crimes in Tempe, AZ

Author

Meghan Coyne

Hypothesis: The socioeconomic conditions, as indicated by poverty rates, influence the occurrence and intensity of hate crimes in Tempe, Arizona, with higher poverty rates correlating positively with increased hate crime incidents.

Location

For this project, I will be focusing on Tempe, Arizona. Tempe is city located in the metropolitan area of Phoenix. Tempe currently has a 18.2% poverty rate; moreover, the national average is currently 12.6%. Tempe has a very diverse community with a wide range of ages. Additionally, Tempe is home to Arizona State University. This is a basic map of the area.

All information was found on DATA USA.

library(leaflet) 
leaflet() |> 
  addProviderTiles(providers$Esri.NatGeoWorldMap) |> 
  setView(-111.935315, 33.401641, zoom = 12)  

Installing Packages

I began by installing and loading all necessary packages for this project.

library(tidyverse) 
library(leaflet) 
library(sf) 
library(readr) 
library(mapview)
library(ggplot2) 
library(dplyr) 

Installing Data

First, I downloaded Tempe, Arizona “Hate Crime Data” from: https://data.tempe.gov/datasets/64691a3498f6473e972ab6612f399365/explore

hate_crime_tempe <- st_read('~/Downloads/hate_crime_open_data_4648317751185021315.geojson') 
Reading layer `hate_crime_open_data_4648317751185021315' from data source 
  `/Users/meghancoyne/Downloads/hate_crime_open_data_4648317751185021315.geojson' 
  using driver `GeoJSON'
Simple feature collection with 71 features and 21 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 681353 ymin: 846837 xmax: 707917 ymax: 890636.5
Projected CRS: NAD83 / Arizona Central (ft)

Next, I downloaded Tempe, Arizona “Poverty Data” from: https://catalog.data.gov/dataset/poverty-acs-2018-2022-tempe-tracts

tempe_poverty <- read_sf('~/Desktop/MEA 3290/Poverty_-_ACS_2018-2022_-_Tempe_Tracts.geojson') 

Aesthetics

For both data sets, I created a color pallet. The usage of a pallet allows the audience to easily conceptualize and understand the data. These pallets will be used throughout the project.

Hate Crime Pallet
hate_crime_tempe |> 
  count(hate_crime_tempe$OffenseType, sort = TRUE) 
Simple feature collection with 18 features and 2 fields
Geometry type: GEOMETRY
Dimension:     XY
Bounding box:  xmin: 681353 ymin: 846837 xmax: 707917 ymax: 890636.5
Projected CRS: NAD83 / Arizona Central (ft)
First 10 features:
   hate_crime_tempe$OffenseType  n                       geometry
1               Criminal Damage 15 MULTIPOINT ((681353 866190)...
2                       Assault 10 MULTIPOINT ((684045.2 87679...
3            Disorderly Conduct  8 MULTIPOINT ((690343.1 87599...
4                Non DV Assault  6 MULTIPOINT ((689552 887490)...
5    Aggravated Criminal Damage  5 MULTIPOINT ((692264.5 88005...
6            Aggravated Assault  4 MULTIPOINT ((693232.8 88264...
7                   Theft Other  4 MULTIPOINT ((696435.5 88759...
8                  Intimidation  3 MULTIPOINT ((684608 867365)...
9            Non DV AGG Assault  3 MULTIPOINT ((697021 889078)...
10     Threat/Intimidate Person  3 MULTIPOINT ((688820.1 87773...
hate_crime_tempe_color <- colorFactor(c('#dc7576', '#800000', '#006bb3','#ff3377', '#ffc266',
                                        '#39e600', '#804000', '#008080', '#4d004d', '#408000'), domain = hate_crime_tempe$OffenseType) 
Poverty Pallet
tempe_poverty |> 
  count(tempe_poverty$C17002_calc_pct150184PovE, sort = TRUE)  
Simple feature collection with 52 features and 2 fields
Geometry type: GEOMETRY
Dimension:     XY
Bounding box:  xmin: -112.0317 ymin: 33.30526 xmax: -111.6399 ymax: 33.57413
Geodetic CRS:  WGS 84
# A tibble: 52 × 3
   `tempe_poverty$C17002_calc_pct150184PovE`     n                      geometry
 *                                     <dbl> <int>            <MULTIPOLYGON [°]>
 1                                       6.4     4 (((-111.8764 33.3379, -111.8…
 2                                      NA       4 (((-111.9674 33.39336, -111.…
 3                                       1       3 (((-111.8934 33.32771, -111.…
 4                                       2.8     3 (((-111.8764 33.321, -111.87…
 5                                       4.4     3 (((-111.9303 33.32013, -111.…
 6                                       1.4     2 (((-111.8766 33.36465, -111.…
 7                                       1.9     2 (((-111.8941 33.36389, -111.…
 8                                       2.6     2 (((-111.944 33.40738, -111.9…
 9                                       3.2     2 (((-111.9121 33.36377, -111.…
10                                       3.5     2 (((-111.9695 33.36393, -111.…
# ℹ 42 more rows
tempe_color <- colorFactor(c('red', 'blue', 'grey', 'purple', 'maroon', 'yellow'), domain = tempe_poverty$C17002_calc_pct150184PovE) 

Hate Crime Map

The map below indicates all hate crimes, as well as their location, that have been recorded by the Tempe Police Department between 2010 and 2023.

Most crimes have occurred in the middle of the city, right outside of Arizona State University’s campus. There has also been a series of hate crimes that have occurred on West Main Street, the main road of Arizona State University’s campus.

hate_crime_tempe |> 
  sf::st_transform('+proj=longlat +datum=WGS84') -> hate_crime_tempe 

leaflet() |> 
  addTiles() |> 
  setView(-111.934972, 33.410239, zoom = 9) |> 
  addCircleMarkers(
    data = hate_crime_tempe,
    fillOpacity = .8,
    opacity = .5,
    fillColor = ~hate_crime_tempe_color(hate_crime_tempe$OffenseType),
    color = ~hate_crime_tempe_color(hate_crime_tempe$OffenseType),
    label = paste0(hate_crime_tempe$OffenseType)
  ) |> 
  addLegend(
    "bottomright", 
    pal = hate_crime_tempe_color, 
    values = hate_crime_tempe$OffenseType) 

Poverty Map

The map below shows the poverty rate of each neighborhood in Tempe, Arizona. This data was collected from the 2020 U.S. census report. The scale that poverty is measured by is out of 100%. For example, in the most poverty-stricken neighborhood of Tempe, 19 out of 100 people live in poverty.

Additionally on this map, the most poverty stricken areas are colored in yellow and orange. The least poverty stricken areas are colored in purples or blues.

leaflet() |> 
  addTiles() |> 
  setView(-111.934972, 33.410239, zoom = 10) |> 
  addPolygons(
    data = tempe_poverty, 
    fillOpacity = 2,
    fillColor = ~tempe_color(tempe_poverty$C17002_calc_pct150184PovE),
    color = ~tempe_color(tempe_poverty$C17002_calc_pct150184PovE),
    label = paste0(tempe_poverty$C17002_calc_pct150184PovE)
  ) |> 
   addLegend(
    "bottomleft", 
    pal = tempe_color, 
    values = tempe_poverty$C17002_calc_pct150184PovE) 

Comparing Poverty and Hate Crimes

Below merges the two maps above, giving more insight to the location of the hate crimes that take place in Tempe, Arizona.

A fair amount of crimes took place outside of Arizona State University’s campus, which has a poverty rate of 8%.

Additionally, many crimes take place on the boarder of neighborhoods. Though there is no concrete evidence, this could be caused by the intersection of communities or geographic boundaries that poverty has developed in Tempe.

leaflet() |> 
  addTiles() |> 
  setView(-111.934972, 33.410239, zoom = 10) |> 
  addPolylines(
    data = tempe_poverty,
    fillOpacity = 8,
    opacity = 5,
    fillColor = ~tempe_color(tempe_poverty$C17002_calc_pct150184PovE),
    color = ~tempe_color(tempe_poverty$C17002_calc_pct150184PovE),
    label = paste0(tempe_poverty$C17002_calc_pct150184PovE)
  )  |> 
  addCircleMarkers(
    data = hate_crime_tempe,
    fillOpacity = .8,
    opacity = .5,
    fillColor = ~hate_crime_tempe_color(hate_crime_tempe$OffenseType),
    color = ~hate_crime_tempe_color(hate_crime_tempe$OffenseType),
    label = paste0(hate_crime_tempe$OffenseType)
  )  |> 
   addLegend(
    "bottomright", 
    pal = hate_crime_tempe_color, 
    values = hate_crime_tempe$OffenseType) |>
  addLegend(
    "bottomleft", 
    pal = tempe_color, 
    values = tempe_poverty$C17002_calc_pct150184PovE) 

Close Look at Hate Crimes

The bar chart below categorizes all of the hate crimes that have occurred in Tempe, Arizona between 2010 and 2023.

Criminal damage, which consists of physical harm or criminal threats, happened most commonly.

Assault and disorderly conduct followed behind criminal damage for the most common hate crimes in Tempe.

hate_crime_tempe |> 
  group_by(OffenseType) |> 
  summarise(count = n()) |> 
  ggplot(aes(x = reorder(OffenseType, count), y = count, fill = OffenseType)) +
  geom_bar(stat = "identity") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1, size = 7)) +
  labs(title = "Hate Crimes in Tempe, 2010 to 2023", x = "Offense Type", y = "Count")    

Close Look at Poverty

The bar chart below visualizes the high rate of poverty that Tempe, Arizona experiences when it is compared to other counties in Arizona.

Tempe nearly doubles the poverty rate of Mesa, the second highest poverty-stricken county.

It is important that not all counties are on this chart. This is because other counties poverty rates are not high enough to be included, rather they are equally combined in the “other” category.

attribute_data <- tempe_poverty$C17002_calc_pct150184PovE

poverty_location <- tempe_poverty$City 
data <- data.frame(region = poverty_location, population = attribute_data) 

tempe_poverty |> 
  ggplot(aes(x = reorder(poverty_location, attribute_data), y = attribute_data)) +
  geom_col(stat = "identity") +
  xlab("County") +
  ylab("Poverty") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  ggtitle("Poverty Rate, Arizona Counties") 

Conclusion

Overall, there is not enough information to indicate that poverty-stricken areas and hate crimes correlate. Although most hate crimes occur in the most populated areas of Tempe, those are not the most poverty filled areas. In general, Tempe has a higher rate of poverty than the national average, which does align with a higher crime rate- not necessarily hate crimes, though.