← Latest papers
📊 statistics

Cross-City Comparison of Crime-Prediction Models: A Scale Confound in Aggregate Poisson Likelihood, with a Four-City Demonstration

This paper demonstrates that aggregate Poisson predictive log-likelihood is a flawed metric for cross-city crime model comparison due to a scale confound favoring sparser populations, and proposes a superior evaluation framework using nonzero event-weighted likelihood and calibration ratios instead.

Original authors: Varun Surapaneni

Published 2026-07-06
📖 5 min read🧠 Deep dive

Original authors: Varun Surapaneni

Original paper licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). This is an AI-generated explanation of the paper below. It is not written or endorsed by the authors. For technical accuracy, refer to the original paper. Read full disclaimer

The Big Picture: Why Comparing Crime Predictions is Tricky

Imagine you are a coach trying to decide which of four different cities (Boston, Leeds, Birmingham, and London) has the best "crime prediction" system. You want to know which city's software is the smartest at guessing where crimes will happen next.

The researchers in this paper found that the standard way people have been measuring "smartness" is actually broken. It's like trying to compare the speed of a sprinter and a marathon runner by only looking at how many miles they ran, without checking how fast they were going.

The Problem: The "Empty Room" Trap

The main metric the paper critiques is called Aggregate Poisson Predictive Log-Likelihood (PLL). Think of this metric as a "scorecard" for how well a model predicts crime counts.

The paper argues this scorecard is confounded by "zero-rate composition." That's a fancy way of saying: The score is heavily influenced by how many places have zero crimes.

The Analogy:
Imagine you are predicting how many apples will fall from trees in different orchards.

  • Orchard A (Boston): Has many trees, but most of them are empty. Only a few trees drop apples.
  • Orchard B (London): Has many trees, and many of them drop apples.

If you use the standard scorecard, Orchard A looks like a genius and Orchard B looks like a failure. Why?

  • In Orchard A, the model predicts "zero apples" for most trees. Since the model is right about the empty trees, it gets a huge "free pass" on points.
  • In Orchard B, the model has to predict exactly how many apples fall on busy trees. This is hard! If it guesses 5 apples but 6 fall, it loses points.

The paper shows that the standard scorecard rewards you for predicting "nothing" correctly, rather than rewarding you for predicting "something" correctly. Because London has more crime (fewer "empty" spots), its score looks artificially worse, even if its model is actually very good at predicting the real action.

The Solution: A Better Scorecard

The authors propose we stop using the single, broken scorecard and start using a two-part scorecard instead:

  1. The "Action" Score (nonzero_pll_mean): This only looks at the places where a crime actually happened. It asks: "When there was a crime, how close was your guess?" This levels the playing field between a quiet city and a busy city.
  2. The "Balance" Score (calibration_ratio): This asks: "Did you predict the total number of crimes correctly?" If the city had 1,000 crimes, did your model predict 1,000, or did it guess 500 or 2,000?

The Result: When they swapped the scorecards, the rankings of the cities completely flipped!

  • Under the old (broken) system, Birmingham looked #1.
  • Under the new "Action" system, Boston looked #1.
  • Under the new "Balance" system, London looked #1.

The Lesson: You cannot say one city is "better" than another just by looking at one number. You have to look at the whole picture, including how many "empty" spots exist in each city.

The "Negative Results": Trying to Fix a Ghost

The second part of the paper is a story about the researchers trying to fix a specific problem: Shoplifting predictions in the UK were going crazy. The model was predicting massive numbers of shoplifting in some areas that were clearly wrong.

They set up a "divergence flag" (an alarm bell) to catch this. When the alarm rang, they tried four different "fixes" (like changing the math formula or adjusting the learning speed).

The Twist:
After trying all four fixes, they realized the alarm bell was broken.

  • The Real Issue: The alarm was ringing because shoplifting is naturally concentrated in a few specific spots (like a few busy stores), leaving the rest of the city empty. This is a feature of the data, not a bug in the model.
  • The Failed Fixes: The "fixes" they tried actually made the predictions worse or didn't help at all because they were trying to fix a problem that didn't exist.

The Takeaway: Before you change your complex math or algorithms, check your data pipeline. Sometimes the problem isn't the model; it's just that the data looks weird because of how it was collected (e.g., missing a few days of data or counting things in a weird way).

Summary of Key Takeaways

  1. Don't trust the "Total Score": If you compare crime models across cities with different crime rates, the standard score will unfairly punish the busy cities and reward the quiet ones.
  2. Use the "Action" and "Balance" scores: Always check how well the model predicts actual crimes and if the total numbers add up.
  3. Check the plumbing first: If a model seems to be failing, check if the data is incomplete or messy before blaming the AI.
  4. Context matters: The study only looked at four similar English-speaking cities. The findings are about how to measure the models, not necessarily a rule that applies to every city in the world.

In short: The paper is a warning label for researchers. It says, "Stop using the old ruler to measure these cities; it's bent. Use this new set of tools instead, and make sure your data is clean before you start tweaking the math."

Drowning in papers in your field?

Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.

Try Digest →