Methodology

Data

1,154,102 crime records from NZ Police (Feb 2022 – Jan 2026), covering 6 crime types across 42,778 meshblocks. Data cleaned from UTF-16 CSV, joined to Stats NZ 2017 Area Unit and 2018 Meshblock geographic boundaries (99.4% and 81.2% join rates respectively).

Spatial Grid

A 500m × 500m regular grid (77 rows × 59 cols = 4,543 cells) overlaid on the Auckland urban area in NZTM2000. Crime counts are allocated to grid cells via meshblock centroids. The result is a 4D tensor: (48 months × 77 × 59 × 6 crime types).

Models

ConvLSTM (Primary)

3-layer Convolutional LSTM with 32→64→32 hidden channels. Processes 6-month lookback windows. 376K parameters trained with MSE on log1p-transformed counts.

Test RMSE: 1.128 · Best on burglary (0.61)

ST-ResNet (Secondary)

Two-branch residual network: Closeness (last 3 months) + Period (same month last 3 years). 4 residual units per branch, 64 hidden channels. 614K parameters.

Test RMSE: 1.181 · Best on assault (0.53)

Results

ModelRMSETheftBurglaryAssault
Last Month (baseline)0.9962.200.770.64
Historical Average1.2903.040.630.51
ConvLSTM1.1282.610.610.63
ST-ResNet1.1812.760.620.53

Limitations

  • Only 30 training samples (months) — deep learning models need more data to outperform simple baselines overall
  • Auckland-only grid — other cities use TA-level aggregation
  • Monthly granularity — finer temporal resolution could capture day/hour patterns
  • No external features (weather, events, demographics) included