# Libraries used
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.1 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ ggplot2 3.4.2 ✔ tibble 3.2.1
## ✔ lubridate 1.9.2 ✔ tidyr 1.3.0
## ✔ purrr 1.0.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(lubridate)
library(stringr)
library(jsonlite)
##
## Attaching package: 'jsonlite'
##
## The following object is masked from 'package:purrr':
##
## flatten
library(sf)
## Linking to GEOS 3.9.3, GDAL 3.5.2, PROJ 8.2.1; sf_use_s2() is TRUE
library(httr)
Question 1 and 2
#Importing data
Speed_Camera <- read.csv("Speed_Camera_Violations.csv")
# Convert the "VIOLATION.DATE" column to a date format:
Speed_Camera$VIOLATION.DATE <- as.Date(Speed_Camera$VIOLATION.DATE, format = "%m/%d/%Y")
#creating a year column from the date
Speed_Camera$year <- year(Speed_Camera$VIOLATION.DATE)
# Create a year and month column from the date
Speed_Camera$month <- month(Speed_Camera$VIOLATION.DATE)
#Filter the data to include only the years 2018 to 2021:
filtered_data <- Speed_Camera %>%
filter(year(VIOLATION.DATE) >= 2018 & year(VIOLATION.DATE) <= 2021)
#Count the total number of speed camera violations for each year
violation_counts <- filtered_data %>%
group_by(year = year(VIOLATION.DATE)) %>%
summarise(total_violations = n())
#calling the counts
violation_counts
## # A tibble: 4 × 2
## year total_violations
## <dbl> <int>
## 1 2018 39234
## 2 2019 40563
## 3 2020 29603
## 4 2021 39601
Question 3 and 4
# Calculate the monthly volume of speed camera violations
monthly_violations <- filtered_data %>%
group_by(year, month) %>%
summarise(total_violations = n())
## `summarise()` has grouped output by 'year'. You can override using the
## `.groups` argument.
# Extract the count for February 2021
february_2021_violations <- monthly_violations %>%
filter(year == 2021 & month == 2) %>%
pull(total_violations)
# Print the count for February 2021
february_2021_violations
## [1] 2169
Question 5 and 6
# Create a line graph
line_graph <- ggplot(monthly_violations, aes(x = month, y = total_violations/1000, color = as.factor(year))) +
geom_line(size = 1) +
labs(x = "Month", y = "Total Camera Violations (in thousands)", title = "Impact of Speed Camera Policy on Daily Volume of Violations") +
scale_color_discrete(name = "Year")
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
# Save the graph as a PDF file
ggsave("line_graph.pdf", line_graph, width = 8, height = 6)
# Display the graph
print(line_graph)
Question 7 and 8
# Filter cameras observed on or before January 1, 2018
# Filter cameras observed on or before January 1, 2018
filtered_Id <- Speed_Camera %>%
group_by(CAMERA.ID) %>%
filter(min(VIOLATION.DATE) <= as.Date("2018-01-01"))
# Keep relevant columns
filtered_Id <- filtered_Id %>%
select(CAMERA.ID, VIOLATION.DATE, VIOLATIONS)
# Convert date to lubridate format
filtered_data$VIOLATION.DATE <- as.Date(filtered_data$VIOLATION.DATE)
# Reorganize the dataset
filtered_Id <- filtered_Id %>%
filter(year(VIOLATION.DATE) %in% c(2018, 2019, 2020, 2021)) %>%
mutate(post = ifelse(VIOLATION.DATE >= as.Date("2021-03-01"), 1, 0),
month = month(VIOLATION.DATE))
# calculating total number of rows
nrow(filtered_Id)
## [1] 140692
Question 9
# Run the regression model
model <- lm(VIOLATIONS ~ post + month + as.factor(CAMERA.ID), data = filtered_Id)
# Print the model summary
summary(model)
##
## Call:
## lm(formula = VIOLATIONS ~ post + month + as.factor(CAMERA.ID),
## data = filtered_Id)
##
## Residuals:
## Min 1Q Median 3Q Max
## -191.11 -13.06 2.09 11.80 548.66
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 109.63320 0.90389 121.291 < 2e-16 ***
## post 65.84996 0.21669 303.886 < 2e-16 ***
## month -0.24784 0.02619 -9.462 < 2e-16 ***
## as.factor(CAMERA.ID)CHI004 -77.60355 1.25183 -61.992 < 2e-16 ***
## as.factor(CAMERA.ID)CHI005 -107.79462 1.25291 -86.035 < 2e-16 ***
## as.factor(CAMERA.ID)CHI007 -37.13198 1.25313 -29.631 < 2e-16 ***
## as.factor(CAMERA.ID)CHI008 -93.96199 1.27035 -73.965 < 2e-16 ***
## as.factor(CAMERA.ID)CHI009 -85.01771 1.25443 -67.774 < 2e-16 ***
## as.factor(CAMERA.ID)CHI010 -25.89575 1.25141 -20.693 < 2e-16 ***
## as.factor(CAMERA.ID)CHI011 -86.42581 1.26336 -68.410 < 2e-16 ***
## as.factor(CAMERA.ID)CHI013 -68.52735 1.25141 -54.760 < 2e-16 ***
## as.factor(CAMERA.ID)CHI014 -69.12793 1.25034 -55.287 < 2e-16 ***
## as.factor(CAMERA.ID)CHI015 -102.10079 1.25728 -81.207 < 2e-16 ***
## as.factor(CAMERA.ID)CHI018 -76.76684 1.25013 -61.407 < 2e-16 ***
## as.factor(CAMERA.ID)CHI019 -65.98251 1.25270 -52.672 < 2e-16 ***
## as.factor(CAMERA.ID)CHI020 -80.47192 1.25205 -64.272 < 2e-16 ***
## as.factor(CAMERA.ID)CHI021 -18.22966 1.25313 -14.547 < 2e-16 ***
## as.factor(CAMERA.ID)CHI022 -112.69974 1.66963 -67.500 < 2e-16 ***
## as.factor(CAMERA.ID)CHI023 -100.19240 1.63149 -61.412 < 2e-16 ***
## as.factor(CAMERA.ID)CHI024 -61.77660 1.26991 -48.646 < 2e-16 ***
## as.factor(CAMERA.ID)CHI025 -92.80662 1.25077 -74.200 < 2e-16 ***
## as.factor(CAMERA.ID)CHI026 -77.27130 1.66026 -46.542 < 2e-16 ***
## as.factor(CAMERA.ID)CHI027 -68.31557 1.65820 -41.199 < 2e-16 ***
## as.factor(CAMERA.ID)CHI028 -60.93818 1.66130 -36.681 < 2e-16 ***
## as.factor(CAMERA.ID)CHI029 47.60278 1.25487 37.935 < 2e-16 ***
## as.factor(CAMERA.ID)CHI030 -98.23357 1.72424 -56.972 < 2e-16 ***
## as.factor(CAMERA.ID)CHI031 -77.17765 1.72058 -44.856 < 2e-16 ***
## as.factor(CAMERA.ID)CHI032 -94.38031 1.72178 -54.816 < 2e-16 ***
## as.factor(CAMERA.ID)CHI033 -91.79131 1.64401 -55.834 < 2e-16 ***
## as.factor(CAMERA.ID)CHI034 -97.88002 1.64599 -59.466 < 2e-16 ***
## as.factor(CAMERA.ID)CHI035 -111.75450 1.26244 -88.522 < 2e-16 ***
## as.factor(CAMERA.ID)CHI036 -100.04964 1.25119 -79.963 < 2e-16 ***
## as.factor(CAMERA.ID)CHI039 -109.93471 1.25334 -87.713 < 2e-16 ***
## as.factor(CAMERA.ID)CHI040 -105.24446 1.25162 -84.087 < 2e-16 ***
## as.factor(CAMERA.ID)CHI041 -110.57657 1.65011 -67.012 < 2e-16 ***
## as.factor(CAMERA.ID)CHI042 -112.55201 1.66130 -67.749 < 2e-16 ***
## as.factor(CAMERA.ID)CHI043 -105.03945 1.64318 -63.924 < 2e-16 ***
## as.factor(CAMERA.ID)CHI044 -89.48967 1.61189 -55.518 < 2e-16 ***
## as.factor(CAMERA.ID)CHI045 44.99333 1.25226 35.930 < 2e-16 ***
## as.factor(CAMERA.ID)CHI048 -105.69385 1.58687 -66.605 < 2e-16 ***
## as.factor(CAMERA.ID)CHI049 -112.01298 1.25684 -89.123 < 2e-16 ***
## as.factor(CAMERA.ID)CHI050 -74.79101 1.25270 -59.704 < 2e-16 ***
## as.factor(CAMERA.ID)CHI051 -67.45159 1.25205 -53.873 < 2e-16 ***
## as.factor(CAMERA.ID)CHI055 -100.25689 1.25861 -79.657 < 2e-16 ***
## as.factor(CAMERA.ID)CHI056 -120.04724 1.30892 -91.715 < 2e-16 ***
## as.factor(CAMERA.ID)CHI057 -107.88952 1.25508 -85.962 < 2e-16 ***
## as.factor(CAMERA.ID)CHI058 -45.37574 1.26429 -35.890 < 2e-16 ***
## as.factor(CAMERA.ID)CHI059 -92.75572 1.80259 -51.457 < 2e-16 ***
## as.factor(CAMERA.ID)CHI060 -110.13754 1.83823 -59.915 < 2e-16 ***
## as.factor(CAMERA.ID)CHI061 -121.08148 2.29594 -52.737 < 2e-16 ***
## as.factor(CAMERA.ID)CHI062 -107.38195 1.81929 -59.024 < 2e-16 ***
## as.factor(CAMERA.ID)CHI063 -91.57496 1.65812 -55.228 < 2e-16 ***
## as.factor(CAMERA.ID)CHI064 -93.45403 1.58182 -59.080 < 2e-16 ***
## as.factor(CAMERA.ID)CHI065 -103.53435 1.57530 -65.724 < 2e-16 ***
## as.factor(CAMERA.ID)CHI066 -118.46424 1.60925 -73.614 < 2e-16 ***
## as.factor(CAMERA.ID)CHI067 -116.93865 1.59611 -73.265 < 2e-16 ***
## as.factor(CAMERA.ID)CHI068 -97.76724 1.25378 -77.978 < 2e-16 ***
## as.factor(CAMERA.ID)CHI069 -77.06815 1.24991 -61.659 < 2e-16 ***
## as.factor(CAMERA.ID)CHI070 -105.18137 1.26064 -83.435 < 2e-16 ***
## as.factor(CAMERA.ID)CHI071 -110.82695 1.60936 -68.864 < 2e-16 ***
## as.factor(CAMERA.ID)CHI072 -119.38353 1.63243 -73.132 < 2e-16 ***
## as.factor(CAMERA.ID)CHI073 -120.27205 1.63341 -73.632 < 2e-16 ***
## as.factor(CAMERA.ID)CHI074 -117.66720 1.62117 -72.582 < 2e-16 ***
## as.factor(CAMERA.ID)CHI075 -104.06130 1.33944 -77.690 < 2e-16 ***
## as.factor(CAMERA.ID)CHI076 -88.61347 1.25356 -70.689 < 2e-16 ***
## as.factor(CAMERA.ID)CHI077 -52.02651 1.25378 -41.496 < 2e-16 ***
## as.factor(CAMERA.ID)CHI078 -109.37039 2.71945 -40.218 < 2e-16 ***
## as.factor(CAMERA.ID)CHI079 -36.41397 1.47338 -24.715 < 2e-16 ***
## as.factor(CAMERA.ID)CHI080 -94.92966 1.39546 -68.027 < 2e-16 ***
## as.factor(CAMERA.ID)CHI083 -72.99912 1.25013 -58.393 < 2e-16 ***
## as.factor(CAMERA.ID)CHI086 -113.46234 1.37067 -82.779 < 2e-16 ***
## as.factor(CAMERA.ID)CHI087 -96.58050 1.77021 -54.559 < 2e-16 ***
## as.factor(CAMERA.ID)CHI088 -119.79441 1.69493 -70.678 < 2e-16 ***
## as.factor(CAMERA.ID)CHI089 -133.38011 1.94791 -68.473 < 2e-16 ***
## as.factor(CAMERA.ID)CHI090 -103.86071 1.34180 -77.404 < 2e-16 ***
## as.factor(CAMERA.ID)CHI091 -64.34030 1.34282 -47.914 < 2e-16 ***
## as.factor(CAMERA.ID)CHI092 -108.91818 1.35291 -80.507 < 2e-16 ***
## as.factor(CAMERA.ID)CHI093 -90.02123 1.25034 -71.997 < 2e-16 ***
## as.factor(CAMERA.ID)CHI094 -106.89676 1.26450 -84.536 < 2e-16 ***
## as.factor(CAMERA.ID)CHI095 -21.26818 1.25399 -16.960 < 2e-16 ***
## as.factor(CAMERA.ID)CHI096 -122.22975 1.34659 -90.770 < 2e-16 ***
## as.factor(CAMERA.ID)CHI097 -126.78768 1.43162 -88.562 < 2e-16 ***
## as.factor(CAMERA.ID)CHI098 -134.19448 2.16767 -61.907 < 2e-16 ***
## as.factor(CAMERA.ID)CHI099 -131.50504 2.02540 -64.928 < 2e-16 ***
## as.factor(CAMERA.ID)CHI100 -86.36018 1.68258 -51.326 < 2e-16 ***
## as.factor(CAMERA.ID)CHI101 -91.91682 1.25421 -73.287 < 2e-16 ***
## as.factor(CAMERA.ID)CHI102 -85.59283 1.25205 -68.362 < 2e-16 ***
## as.factor(CAMERA.ID)CHI103 -112.07383 1.26290 -88.743 < 2e-16 ***
## as.factor(CAMERA.ID)CHI104 -125.82395 1.90247 -66.137 < 2e-16 ***
## as.factor(CAMERA.ID)CHI105 -124.17642 1.82078 -68.200 < 2e-16 ***
## as.factor(CAMERA.ID)CHI106 -122.45215 1.78362 -68.654 < 2e-16 ***
## as.factor(CAMERA.ID)CHI107 -99.52107 1.71935 -57.883 < 2e-16 ***
## as.factor(CAMERA.ID)CHI108 -90.60265 1.71935 -52.696 < 2e-16 ***
## as.factor(CAMERA.ID)CHI109 -106.26393 1.72792 -61.498 < 2e-16 ***
## as.factor(CAMERA.ID)CHI110 -128.49913 1.96870 -65.271 < 2e-16 ***
## as.factor(CAMERA.ID)CHI111 -129.17837 2.06251 -62.632 < 2e-16 ***
## as.factor(CAMERA.ID)CHI112 -93.00818 1.71577 -54.208 < 2e-16 ***
## as.factor(CAMERA.ID)CHI113 -112.99999 1.72671 -65.442 < 2e-16 ***
## as.factor(CAMERA.ID)CHI114 -108.36866 1.70515 -63.554 < 2e-16 ***
## as.factor(CAMERA.ID)CHI115 -74.48880 1.70749 -43.625 < 2e-16 ***
## as.factor(CAMERA.ID)CHI116 -102.68314 1.70283 -60.301 < 2e-16 ***
## as.factor(CAMERA.ID)CHI117 -112.62106 1.26612 -88.950 < 2e-16 ***
## as.factor(CAMERA.ID)CHI118 -110.22133 1.25443 -87.866 < 2e-16 ***
## as.factor(CAMERA.ID)CHI119 -89.28807 1.25884 -70.929 < 2e-16 ***
## as.factor(CAMERA.ID)CHI120 15.12869 1.25313 12.073 < 2e-16 ***
## as.factor(CAMERA.ID)CHI121 -62.93307 1.25055 -50.324 < 2e-16 ***
## as.factor(CAMERA.ID)CHI122 -96.13024 1.27132 -75.614 < 2e-16 ***
## as.factor(CAMERA.ID)CHI123 -99.61743 1.28725 -77.388 < 2e-16 ***
## as.factor(CAMERA.ID)CHI124 -111.63687 1.30462 -85.570 < 2e-16 ***
## as.factor(CAMERA.ID)CHI125 -97.39827 1.27913 -76.144 < 2e-16 ***
## as.factor(CAMERA.ID)CHI126 -108.83346 1.27713 -85.217 < 2e-16 ***
## as.factor(CAMERA.ID)CHI127 -91.82059 1.67269 -54.894 < 2e-16 ***
## as.factor(CAMERA.ID)CHI128 -101.97256 1.68909 -60.371 < 2e-16 ***
## as.factor(CAMERA.ID)CHI129 -112.86508 1.69358 -66.643 < 2e-16 ***
## as.factor(CAMERA.ID)CHI130 -109.04738 1.25618 -86.809 < 2e-16 ***
## as.factor(CAMERA.ID)CHI131 -106.97277 6.00714 -17.808 < 2e-16 ***
## as.factor(CAMERA.ID)CHI132 -125.97168 1.92345 -65.493 < 2e-16 ***
## as.factor(CAMERA.ID)CHI133 -116.07900 1.87003 -62.073 < 2e-16 ***
## as.factor(CAMERA.ID)CHI134 -92.92939 1.68147 -55.267 < 2e-16 ***
## as.factor(CAMERA.ID)CHI135 -104.09412 1.69597 -61.377 < 2e-16 ***
## as.factor(CAMERA.ID)CHI136 -117.68604 1.69029 -69.625 < 2e-16 ***
## as.factor(CAMERA.ID)CHI137 -125.18047 1.83355 -68.272 < 2e-16 ***
## as.factor(CAMERA.ID)CHI138 -87.70747 1.25226 -70.039 < 2e-16 ***
## as.factor(CAMERA.ID)CHI139 -123.91552 1.94541 -63.696 < 2e-16 ***
## as.factor(CAMERA.ID)CHI140 -116.05740 1.27178 -91.256 < 2e-16 ***
## as.factor(CAMERA.ID)CHI141 -105.95015 1.25861 -84.180 < 2e-16 ***
## as.factor(CAMERA.ID)CHI142 -85.41280 1.25162 -68.242 < 2e-16 ***
## as.factor(CAMERA.ID)CHI143 -72.52166 1.69247 -42.850 < 2e-16 ***
## as.factor(CAMERA.ID)CHI144 -22.52050 1.33382 -16.884 < 2e-16 ***
## as.factor(CAMERA.ID)CHI145 -90.70792 1.60848 -56.394 < 2e-16 ***
## as.factor(CAMERA.ID)CHI146 -4.93833 1.69154 -2.919 0.00351 **
## as.factor(CAMERA.ID)CHI147 2.29885 1.34281 1.712 0.08690 .
## as.factor(CAMERA.ID)CHI148 -92.38888 1.66233 -55.578 < 2e-16 ***
## as.factor(CAMERA.ID)CHI149 46.14173 1.34384 34.336 < 2e-16 ***
## as.factor(CAMERA.ID)CHI154 -100.43358 1.26846 -79.178 < 2e-16 ***
## as.factor(CAMERA.ID)CHI156 -91.53830 1.72177 -53.165 < 2e-16 ***
## as.factor(CAMERA.ID)CHI157 -100.28762 1.32996 -75.406 < 2e-16 ***
## as.factor(CAMERA.ID)CHI158 -77.32372 1.72544 -44.814 < 2e-16 ***
## as.factor(CAMERA.ID)CHI159 -103.01556 1.33647 -77.080 < 2e-16 ***
## as.factor(CAMERA.ID)CHI160 -87.48071 1.71696 -50.951 < 2e-16 ***
## as.factor(CAMERA.ID)CHI161 -86.43847 1.36577 -63.289 < 2e-16 ***
## as.factor(CAMERA.ID)CHI162 -102.66239 1.71219 -59.960 < 2e-16 ***
## as.factor(CAMERA.ID)CHI163 -103.46712 1.71577 -60.304 < 2e-16 ***
## as.factor(CAMERA.ID)CHI164 -118.26748 1.72914 -68.397 < 2e-16 ***
## as.factor(CAMERA.ID)CHI165 -118.47344 1.30097 -91.066 < 2e-16 ***
## as.factor(CAMERA.ID)CHI166 -129.77232 1.96642 -65.994 < 2e-16 ***
## as.factor(CAMERA.ID)CHI167 -130.07251 1.92758 -67.480 < 2e-16 ***
## as.factor(CAMERA.ID)CHI168 -86.75753 1.25399 -69.185 < 2e-16 ***
## as.factor(CAMERA.ID)CHI169 -74.82111 1.25291 -59.718 < 2e-16 ***
## as.factor(CAMERA.ID)CHI170 -113.89716 1.26589 -89.974 < 2e-16 ***
## as.factor(CAMERA.ID)CHI171 -118.21691 1.73047 -68.315 < 2e-16 ***
## as.factor(CAMERA.ID)CHI172 -92.76475 1.70398 -54.440 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 33.61 on 140540 degrees of freedom
## Multiple R-squared: 0.6457, Adjusted R-squared: 0.6453
## F-statistic: 1696 on 151 and 140540 DF, p-value: < 2.2e-16