A comprehensive time-series and geospatial analysis of crime data using R
Check it out at https://bog67.shinyapps.io/crime-analytics-dashboard/
This project analyzes and forecasts crime trends using real-world police crime datasets (Chicago Crimes Data, Madison PD reports, etc.). It combines time-series forecasting, geospatial visualization, and interactive dashboards to provide actionable insights into crime patterns.
- Data Import & Cleaning: Automated pipeline using
tidyverseandjanitor - Time-Series Analysis: Trend detection and seasonal patterns with
lubridateandtsibble - Crime Forecasting: ARIMA and Prophet models for 6-month predictions
- Geospatial Heatmaps: Interactive crime hotspot maps using
ggmapandleaflet - Interactive Dashboard: Comprehensive Shiny dashboard for visualization
✅ Crime hotspots by location
✅ Monthly/seasonal crime patterns
✅ Crime forecast for next 6 months
✅ Interactive crime dashboard
- Data cleaning and preprocessing
- R data wrangling & feature engineering
- Time-series forecasting (ARIMA, Prophet)
- Geospatial visualization
- Interactive dashboard development
- Shiny dashboard development
- Statistical modeling
Crime report/
│
├── data/ # Raw and cleaned datasets
│ ├── raw/ # Original crime data
│ └── processed/ # Cleaned data
│
├── scripts/ # R analysis scripts
│ ├── 01_data_import.R # Data loading and cleaning
│ ├── 02_time_series_analysis.R # Temporal analysis
│ ├── 03_forecasting.R # ARIMA & Prophet models
│ ├── 04_geospatial.R # Maps and heatmaps
│ └── 00_install_packages.R # Package installation
│
├── outputs/ # Generated visualizations
│ ├── plots/ # Time-series charts
│ └── maps/ # Geospatial visualizations
│
├── dashboard/ # Shiny application
│ ├── app.R # Main dashboard
│ └── ui.R # UI components (if separated)
│
└── README.md # This file
Install all required packages by running:
source("scripts/00_install_packages.R")tidyverse- Data manipulation and visualizationjanitor- Data cleaninglubridate- Date/time handlingtsibble- Time-series data structuresforecast- ARIMA modelingprophet- Facebook's forecasting toolggmap- Static mapsleaflet- Interactive mapsshiny- Interactive dashboardflexdashboard- Dashboard layoutsf- Spatial data handlingviridis- Color palettes
- Load crime datasets
- Clean column names
- Handle missing values
- Standardize date formats
- Filter relevant crime types
- Aggregate crimes by time period
- Detect trends and seasonality
- Create time-series visualizations
- Identify peak crime periods
- Prepare time-series data
- Build ARIMA model
- Build Prophet model
- Compare model performance
- Generate 6-month forecasts
- Clean location data
- Create crime density maps
- Identify hotspots
- Generate interactive leaflet maps
- Integrate all visualizations
- Add interactive filters
- Display key metrics
- Enable data exploration
- Monthly crime trends
- Seasonal decomposition
- 6-month ARIMA predictions
- Prophet forecast with confidence intervals
- Crime hotspot heatmaps
- Location-based clustering
- Interactive marker maps
- Density overlays
- Date range selector
- Crime type filter
- Location filter
- Download reports
After running the analysis, you'll discover:
- Temporal Patterns: When crimes peak (time of day, day of week, season)
- Geographic Hotspots: High-crime areas requiring attention
- Crime Categories: Most common crime types
- Trends: Whether crime is increasing or decreasing
- Forecasts: Expected crime levels for the next 6 months
- Data Privacy: Ensure compliance with data usage policies
- API Keys: Google Maps API key required for
ggmap(or use OpenStreetMap) - Performance: Large datasets may require data sampling for faster processing
- Updates: Crime data is typically updated monthly


