Weird Weather

Winter 2025–2026 vs. 30-year normals across 50 US cities
Weird Weather / Analysis

The Winter That Moved

Fifty American cities, one strange season, and the mathematics of displacement

There is a moment, sometime around the second week of February, when a winter declares itself. By then the cumulative evidence is in: the coats you needed or did not, the mornings you scraped ice or skipped the step entirely. By February you know what kind of winter it was, even if you lack the vocabulary to say so precisely. This past winter, in many American cities, the vocabulary failed.

In Denver, February felt like early April. In Boston, winter held a grudge. Snow piled on snow. The T ran late, then later, then not at all.

We set out to measure this. Fifty cities across the United States, compared against thirty years of their own history. Winter 2025–26—December through February—against the 1991–2020 period, which climatologists call the “normal.” The word deserves its quotation marks. Normal is just the past tense of weather, averaged.

A note on what we measured and what we did not. Fifty cities is not America. Our sample skews toward the Northeast and toward large metros. Rural weather, which is most of the country’s geography if not its population, is absent here. The Southern Plains are underrepresented. Hawaii is missing entirely. What follows is a portrait of fifty places, not a census. That said: even in this biased sample, the patterns are striking.

The National Picture

The national average temperature anomaly across our fifty cities came out to +1.4°F. A small number. But national averages are to weather what GDP is to the economy—a figure that describes no one’s actual experience. Twenty cities ran warmer than their norms. Fifteen ran cooler. Fifteen landed within the range of the expected.

The average itself carries a quiet limitation. Our baseline, 1991–2020, already includes three decades of warming. The “normal” is not some fixed, Platonic climate. It is a sliding window that absorbs the recent past, making each generation’s strange weather the next generation’s ordinary. A +1.4-degree anomaly measured against an already-warm baseline is more remarkable than it sounds.

The West–East Divide

The West ran warm. Denver posted +11.1°F above its thirty-year average. Billings, Montana came in +9.1°F above. Las Vegas, +7.0°F. Phoenix, +6.7°F. Boise, Reno, Albuquerque, Tucson, Salt Lake City—all five or more degrees above the script.

Temperature anomaly, selected cities (°F vs. 30-year normal)
0°F +11.1 DEN +9.1 BIL +7.0 LAS +6.7 PHX +6.0 ABQ +5.8 BOI WEST | EAST -2.2 CLE -2.7 DET -3.7 BOS -5.3 NYC warmer ↑ cooler ↓
Temperature deviation from 30-year normal (1991–2020), Winter 2025–26. Western cities ran dramatically warm; Eastern cities dipped below historical averages.

The East cooled. New York posted -5.3°F below normal. Boston dropped -3.7°F and added snow beyond what history would suggest is plenty. Buffalo added to its surplus. Cleveland, Detroit, the great frozen crescent of the Northeast and Great Lakes—they all bent deeper.

This east-west dipole is not random. The jet stream—that atmospheric river at thirty thousand feet—buckled and held its shape for much of the season. A persistent ridge of high pressure sat over the West like a warm lid, while a trough funneled Arctic air south and east. This pattern has a name in meteorology: an amplified Rossby wave. It is consistent with what La Niña winters tend to produce—the tropical Pacific’s cold phase nudges the jet stream northward over the West and drops it southward over the East, splitting the continent thermally.

NOAA’s Climate Prediction Center had forecast a “tilt of the odds” toward exactly this pattern for a La Niña winter. The forecast was correct in direction, though the magnitude—eleven degrees hot in Denver, five degrees cold in New York—exceeded what seasonal outlooks typically capture. The atmosphere followed the script’s stage directions but ad-libbed the dialogue.

The Teleportation Question

The most useful thing we did with this data was to ask a question borrowed from science fiction: if your city’s winter was teleported, where did it land?

The method is straightforward. Take each city’s actual winter and compare it to the thirty-year normal of every other city. The closest match, measured by normalized Euclidean distance, tells you whose winter you actually had.

City Experienced the normal of… DenverAlbuquerque BostonBurlington, VT New YorkAlbany Las VegasEl Paso AnchorageBurlington, VT PhoenixPhoenix ★

Denver became Albuquerque. Boston became Burlington, Vermont. New York became Albany. Las Vegas turned into El Paso. Anchorage, which expected snow and did not get it, landed nearest to Burlington—not because Anchorage got warm, but because its snow deficit made it unrecognizable as itself.

Seven cities stayed close enough to their own norms that their nearest match was themselves. Phoenix was among them, though barely. These are the places where winter still resembles winter. The autobiography holds.

The Geometry of Strangeness

The teleportation question tells you where your city went. But the distance matrix tells you something more fundamental: how alone your city is. Not emotionally. Mathematically. Every city sits at a point in climate space, and some points have neighbors and some do not.

Cities at the temperature extremes—Miami, Anchorage, Phoenix—live in a kind of climate solitude. Their nearest neighbor in the distance matrix is still far away. Anchorage’s nearest match is Burlington, VT, at a distance of 0.259. Miami’s is Tampa at 0.149. These cities have no close twins in our dataset. Their weather is too distinctive for comparison. They are the only copies of themselves.

Anchorage was the most displaced city in the dataset. Its self-distance—the distance between its actual winter and its own thirty-year normal—was 0.492, the highest of all fifty cities. Its winter was the furthest from its own autobiography. And yet its z-scores are modest: -1.18 for temperature. This is the interesting part. The model and the distance metric agree: Anchorage was weird, but weird across multiple dimensions simultaneously. Temperature alone does not capture it. The combination of warmer temperatures, less snow, and less precipitation pushed Anchorage far from itself—a displacement that no single variable reveals.

Richmond, VA occupies the opposite position. Its average distance to all other cities was 0.371, the lowest in the dataset. Richmond sits in the mathematical center of American winter—close enough to many cities that it could almost belong anywhere south of the Mason-Dixon line and east of the Mississippi. Portland, Oregon is its inverse: the highest average distance at 0.779. Portland is climatically alone, a mild wet anomaly in a dataset of cold dry winters and hot dry ones.

At the pair level, the extremes confirm what intuition suspects. Albany and Burlington are practically the same city, climatically, with a distance of 0.038. Miami and Anchorage are the most different pair at 1.443—which surprises no one, but it is nice when the math confirms the obvious.

More interesting are the cities that stayed themselves. Ten cities matched themselves—their actual winter was closer to their own thirty-year normal than to any other city’s. Tampa was the most emphatically itself, with a self-distance of just 0.040. Minneapolis was right behind at 0.042. Seven of the ten self-matching cities were either in very warm climates (Miami, Tampa, Phoenix) or very cold ones (Minneapolis, Burlington). The extremes held. The middle drifted.

There is a pattern in that. The cities with the most distinctive climates—the ones that sit at the edges of the distribution—are the ones that stayed put. They have nowhere to go. A mild winter in Miami is still Miami. A warm winter in Minneapolis is still, recognizably, Minneapolis. But a warm winter in Denver is Albuquerque. A cold winter in New York is Albany. The cities in the middle of the distribution have more neighbors, and when the weather shifts, it shifts them into someone else’s territory. The center does not hold because the center has options.

Self-distance spectrum: how far each city drifted from its own 30-year normal
self-distance (0 = identical to norm) 0.50 0.40 0.30 0.20 0.10 0.00 most displaced stayed themselves 0.492 ANC 0.356 DAL 0.318 RNO 0.295 DEN 0.267 NYC 0.279 ATL 0.189 PDX 0.157 PHX 0.056 SFO 0.042 MSP 0.040 TPA unrecognizable ← → emphatically itself
Self-distance: the normalized Euclidean distance between each city’s actual 2025–26 winter and its own 30-year normal. Higher = greater departure from historical identity. Anchorage drifted furthest; Tampa barely moved.

A Note on Snowfall Data

Our snowfall figures come from Open-Meteo’s reanalysis archive, which derives snowfall from precipitation and temperature using the ERA5 climate model. This method systematically underestimates actual measured snowfall, particularly in lake-effect regions (Buffalo, Cleveland) and mountain cities (Denver, Salt Lake City), where local atmospheric dynamics produce more snow than a gridded model captures. Buffalo’s historical average appears as roughly 28 inches in our data; the actual measured December–February average is closer to 55 inches.

The analysis remains valid because we are comparing each city against its own baseline from the same source. The deltas, z-scores, and climate matches are internally consistent. But the absolute snowfall numbers should not be taken at face value.

The Model

How strange was this winter, statistically? To answer that, you need a model.

Ours begins with a smooth curve fitted through thirty years of data: a B-spline, which bends to follow the data without chasing every wiggle. This gives the national trajectory—the slow, nonlinear drift of American winters over three decades.

But cities are not the nation. Miami is not Minneapolis. So each city gets its own intercept (its baseline personality) and its own slope (its individual rate of change over time). The technical name is a mixed-effects model. The fixed effect is the national trend. The random effects are each city’s departures from it.

There is a further refinement. Not all cities are equally predictable. Miami’s winter temperature varies little from year to year. Billings swings wildly. Our model assigns each city its own error variance—its own sigma—so that a two-sigma event in Miami (where sigma is 1.18°F) means something different from a two-sigma event in Billings (where sigma is 4.84°F). The technical term is heteroscedastic, from the Greek for “different scatter.” It sounds like a disease but describes something sensible.

Per-city sigma (σ): how predictable is each city’s winter?
1.0 2.0 3.0 4.0 5.0 Miami 1.18 SD PHX Denver 3.31 NYC BOS Billings 4.84 Temperature σ (°F) — higher = more volatile
Each city gets its own σ. Miami’s winters barely vary (σ = 1.18°F). Billings swings wildly (σ = 4.84°F). A 2σ event in Miami is a 2.4°F departure; in Billings, it’s 9.7°F.

Denver’s temperature z-score was 2.70. In a normal distribution, that occurs less than one percent of the time. Only two of the fifty cities exceeded the two-sigma threshold for temperature. The mean absolute z-score across all cities was 1.06—broadly unusual, not just locally.

Temperature z-scores: how many standard deviations from expected?
>2σ 1–2σ <1σ DEN 2.70 SLC 2.18 LAS BIL PHX BOI ABQ NYC BOS ANC CLE MIA
Each dot represents a city’s temperature z-score for Winter 2025–26. Denver, at 2.70σ, stands in rare statistical territory. Only two cities exceeded the 2σ threshold.

The Correlation No One Expected

When you give each city its own intercept and slope, you can ask: do warmer cities warm faster?

They do. The correlation between random intercepts and random slopes for temperature is 0.591—a moderately strong positive relationship. Cities that start warmer in our thirty-year baseline also tend to have steeper warming trends over time. This is not a trivial finding. It suggests that whatever is driving the warming is amplified in places that are already warm—possibly through feedback mechanisms like reduced snow cover, urban heat island intensification, or changes in regional circulation.

Random intercept vs. random slope: do warmer cities warm faster?
Random intercept (baseline °F above national mean) Random slope (°F/decade) -20 -10 0 +10 +20 -0.4 0 +0.4 +0.8 ANC BUR BUF DET BIL BOS NYC DEN ABQ LAS TUS PHX MIA ρ = 0.591
Each dot is a city. Warmer cities (right) tend to have steeper warming trends (up). The dashed line shows the positive correlation (ρ = 0.591). Cold northeastern cities cluster in the lower-left; hot southwestern cities pull toward the upper-right.

For snowfall, the correlation reverses: -0.287. Snowier cities tend to be losing snow faster, though the signal is weaker. For precipitation, there is essentially no correlation (0.097). Temperature is where the feedback loop lives.

Why would warmer cities warm faster? Three possibilities, none mutually exclusive. First, the urban heat island: warmer cities tend to be larger, sunbelt metros with more concrete and less vegetation, and these features amplify warming. Zhao et al. (2014) documented the nonlinear relationship between city size and heat island intensity. Second, snow-albedo feedback: cities that start warmer have less snow cover, which means less solar reflection, which means more absorbed heat, which means faster warming. The loop feeds itself. Third, regional circulation changes: the jet stream patterns that warmed the West this winter may disproportionately affect cities that were already on the warm side of the continental divide.

The correlation is not proof of any of these mechanisms. It is an observation that demands explanation. In the literature, it rhymes with what Manabe and Wetherald found as early as 1975 regarding polar amplification—though here we are seeing it not at the poles but at the warm end of the urban spectrum. The pattern deserves more investigation than a dashboard can provide.

Trends

The national temperature trend across our fifty cities is +0.506°F per decade. This is not statistically significant at conventional levels (p = 0.16), which may surprise people accustomed to hearing that warming is settled science. It is settled—but a thirty-year window with fifty cities is a small lens through which to measure a global phenomenon, and the year-to-year noise in winter temperatures is substantial. Our model explains 94.5% of the temperature variance, but almost all of that (94.2%) is city-to-city differences, not temporal trends. Winter temperature is overwhelmingly a function of where you are, not when you are.

Variance decomposition: what explains winter temperature?
City-to-city differences: 94.2% Noise 4.8% Trend 0.4% Where you are matters more than when you are
94.2% of winter temperature variance is explained by which city you’re in. The temporal trend (red sliver) accounts for less than half a percent. Geography dominates.

Snowfall shows no meaningful trend (+0.038"/decade, p = 0.94). Neither does precipitation (-0.004"/decade, p = 0.99). If winter is changing, it is changing in the background, beneath a fog of natural variability that a three-decade sample cannot fully resolve.

What the Research Says

Our findings are consistent with the broader literature. La Niña winters have been linked to amplified jet stream patterns that warm the western US and cool the east since at least Ropelewski and Halpert’s 1986 work on ENSO teleconnections. The warm-cities-warming-faster pattern echoes research on urban heat islands and temperature feedback loops documented by Zhao et al. (2014) and others. The heteroscedasticity we observe—continental interiors varying more than coastal or tropical cities—reflects the well-documented influence of maritime moderation and distance from oceanic heat reservoirs.

What is newer, and less well-studied, is the magnitude of the current displacement. Denver running eleven degrees above normal is not merely a warm winter. It is a winter that no longer belongs to Denver. Whether the frequency of such displacements is itself increasing—whether the dice are not just loaded but increasingly so—is a question our thirty-year sample can gesture toward but not resolve.

The Moving Baseline

The thirty-year average will update next year. It always does. The window slides forward, absorbing anomalies, making the strange familiar. In a decade, this winter will be part of the baseline.

This is both a feature and a limitation of how we measure climate normals. The 1991–2020 baseline already includes significant warming compared to the mid-twentieth century. An anomaly measured against it is an anomaly against an already-shifting reference point. Denver’s +11.1°F is extraordinary even by modern standards. Against a 1961–1990 baseline, it would be more extraordinary still.

Seven cities out of fifty had a normal winter. The other forty-three did not, and each of them did not in its own way. The strangeness was not evenly distributed. It rarely is.

———

Data: Open-Meteo Archive API
Normals: 1991–2020 winter seasons (Dec–Feb)
Model: weather ~ spline(year) + (year | city); sigma ~ city
Sample: 50 US cities (not nationally representative)

Weird Weather · 50 cities · 30 years of data · Winter 2025–2026
Methodology

How We Measured Weird

The recipe behind the numbers, step by step, with no jargon left unexplained.

1. Getting the Data

We needed winter weather data for American cities. Lots of it. Thirty-five winters’ worth.

The source is Open-Meteo’s Archive API, which serves ERA5 reanalysis data from the European Centre for Medium-Range Weather Forecasts. Reanalysis means a global climate model ingested billions of observations—satellites, weather stations, ocean buoys, radiosondes—and produced a physically consistent gridded dataset. It is not raw station data. It is what a very good model thinks the weather was, everywhere, all the time.

This matters. The numbers you see here are model-derived, not thermometer readings from the airport. ERA5 is excellent for temperature. It is less excellent for snowfall, a fact we will return to.

1 Select 50 cities across the continental United States plus Anchorage.
2 Pull daily data for 35 winter seasons (1990–91 through 2024–25). Winter = December, January, February.
3 For each city-season, aggregate three metrics: mean daily high temperature (°F), total snowfall (inches), and total precipitation (inches).

Thirty-five seasons × 50 cities × 3 metrics = 5,250 data points. Not big data. A spreadsheet could hold it. But enough to find patterns.

2. The Distance Matrix

We wanted to know: which cities had similar winters this year? Which ones did not?

The answer is a distance matrix. Take every pair of cities—that is 1,225 pairs from 50 cities—and compute how different their 2024–25 winter was.

“Different” needs a definition. We used normalized Euclidean distance across the three metrics. Here is the recipe:

1 Normalize each metric to [0, 1]. Temperature might range from 10°F to 75°F. Snowfall from 0 to 90 inches. Without normalization, temperature’s larger numerical range would dominate the distance calculation. We subtract the minimum and divide by the range. Every metric now lives on the same scale.
2 Compute Euclidean distance. For two cities, take the square root of the sum of squared differences across all three normalized metrics. The result: one number summarizing how different two cities’ winters were.
3 Arrange in a 50 × 50 matrix. The diagonal is zero (every city’s distance to itself). The matrix is symmetric (Albany-to-Burlington equals Burlington-to-Albany).

On the heatmap in the Matrix tab: darker cells mean more similar winters. Lighter cells mean more different. The diagonal is always dark. If you see a dark off-diagonal block, those cities had nearly identical winters.

CITY A temp snow precip sqrt(Σ Δ²) CITY B temp snow precip distance = 0.42
Normalized Euclidean distance: each bar scaled to [0, 1], then compared.

Some findings from the matrix:

Most Similar
Albany ↔ Burlington
Distance = 0.038. Practically the same winter. Four hours of highway separate them, and their climates agree.
Most Different
Miami ↔ Anchorage
Distance = 1.443. The maximum possible on three normalized axes is √3 ≈ 1.73. These two used most of it.
Most Isolated
Portland, OR
Avg distance = 0.779. Portland’s winter doesn’t look like anyone else’s. Mild, wet, and snowless is a rare combination.
Most Central
Richmond, VA
Avg distance = 0.371. The “average” American winter. Not too hot, not too cold, moderate snow, moderate rain.

Cities at climate extremes have no close twins. Miami, Anchorage, and Phoenix sit on the edges of the distribution. Anchorage’s nearest neighbor is Burlington, VT, at a distance of 0.259—which is like calling someone your best friend because they are the only person in the room.

Reading the heatmap: The distance matrix is symmetric. Each cell represents one city pair. Self-distance (the diagonal) is zero for the historical baseline, but can be nonzero for the 2024–25 season—more on that in Section 5.

3. The Model

A distance matrix tells you what happened. A model tells you what should have happened. We built one so we could measure surprise.

The model is a B-spline mixed-effects regression with heteroscedastic errors. That sentence has too many words in it. Here is what each part means:

1 B-spline on year (the fixed effect). Instead of fitting a straight line through 35 years of data, we fit a smooth curve. A cubic B-spline with a few knots. This captures the national trend—the slow warming—without assuming it is linear. Maybe the 1990s warmed fast and the 2010s plateaued. The spline does not care. It follows the data.
2 Random effects by city (intercept + slope). Every city gets its own baseline and its own rate of change. Minneapolis starts cold and warms slowly. Phoenix starts hot and barely changes. The model learns each city’s personality from the data.
3 Heteroscedastic errors. A fancy way of saying: some cities have noisy weather, and some do not. Miami’s winter temperature barely varies year to year. Billings, Montana, is a roulette wheel. Rather than pretending all cities have the same amount of noise, we estimate a separate σ (standard deviation) for each city.
MODEL STRUCTURE FIXED EFFECT spline(year) → national trend RANDOM EFFECTS (per city) intercept → baseline level slope → city-specific trend CITY-SPECIFIC σ noise level varies by city
Three layers: one national curve, per-city adjustments, per-city noise.

In notation that looks like code but is not quite code:

# Model formula (brms / lme4 style) weather ~ bs(year, df=5) + (year | city) sigma ~ city # Read it as: # weather = national_spline(year) # + city_intercept # + city_slope * year # + noise(city_specific_sigma)

We fit three separate models: one for temperature, one for snowfall, one for precipitation. Same structure, different data. The model does not know that snow and temperature are related. It treats each metric on its own.

4. Diagnosing the Model

A model is only useful if you know where it works and where it fails. We ran the diagnostics.

Variance decomposition tells you where the signal lives. For temperature:

TEMPERATURE VARIANCE DECOMPOSITION City-to-city: 94.2% Temporal: 0.4% | Residual: 4.8%
Geography dominates. The trend over time is real, but small relative to the difference between Miami and Minneapolis.

Translation: where a city is located explains almost everything about its winter temperature. The 35-year warming trend is statistically detectable but explains less than half a percent of total variance. The remaining 4.8% is noise—year-to-year chaos that even a good model cannot predict.

This is not a flaw. This is physics. Minneapolis is always colder than Miami. The warming trend nudges both of them, but the nudge is tiny compared to the gap between them.

by metric:

MetricVerdict
Temperature 0.945 Excellent. The model captures almost all temperature variation.
Snowfall 0.780 Good. Snow is lumpy and localized, but the model handles it.
Precipitation 0.652 Adequate. Rain is chaotic. This is about as good as it gets with seasonal aggregates.

This hierarchy makes physical sense. Temperature is determined mostly by latitude and elevation—stable facts about geography. Snowfall depends on temperature and moisture—two variables instead of one. Precipitation depends on storm tracks, frontal systems, and atmospheric rivers—things that vary wildly from year to year. The model captures the predictable part. It cannot capture the chaos.

Per-city σ captures real differences in volatility. Miami’s estimated σ is 1.18°F. Its winters are boringly consistent. Billings, Montana, comes in at 4.84°F. Its winters are a coin flip. The model knows this. A 3°F anomaly in Miami would be a screaming outlier. The same anomaly in Billings would be a Tuesday.

5. Model Fit vs. Reality

Here is the central question: which cities had a weird winter?

We answer it two ways, and they agree. That is how we know they are right.

Method 1: Self-distance as displacement. Remember the distance matrix from Section 2? Every city has a distance to every other city, based on its 35-year average. But we can also compute each city’s distance to itself—that is, how far the 2024–25 winter was from that city’s own historical normal. We call this the “displacement score.” A low score means the city had a typical winter. A high score means it did not.

Most DisplacedScoreLeast DisplacedScore
Anchorage, AK0.492 Tampa, FL0.040
Dallas, TX0.356 Miami, FL0.041
Reno, NV0.318 Minneapolis, MN0.042
Denver, CO0.295   

Method 2: Model z-scores. The model predicts each city’s expected temperature, snowfall, and precipitation. It also knows how much noise each city has (σ from Section 3). A z-score is: how many standard deviations was the actual observation from the model’s prediction? A z-score above 2 means the city’s winter was, roughly, a 1-in-20 event given its history.

Only two cities exceeded 2σ:

Highest Z-Score
Denver, CO — 2.70σ
Temperature deviation of 2.70 standard deviations above the model prediction. Roughly a 1-in-150 event.
Second Highest
Salt Lake City — 2.18σ
Temperature deviation of 2.18 standard deviations. Roughly a 1-in-35 event.

The two methods use different information. Displacement scores use the distance matrix, which knows nothing about the model. Z-scores use the model, which knows nothing about the distance matrix. Both point at the same cities. Denver is weird. Salt Lake City is weird. Anchorage is weird. Tampa is fine.

Why we trust the model: It captures 94.5% of temperature variance. The displacement scores and z-scores independently agree on which cities were weirdest. When two different methods point the same finger, you tend to believe them.

6. Decisions and Sensitivity

Every analysis is a stack of choices. Here are ours, and what happens if you change them.

30-year baseline (1991–2020). This is the standard climatological reference period. It already includes significant warming. Our anomalies are measured against a world that has already warmed. This makes them conservative. A colder baseline would make everything look weirder.

50-city sample. We chose 50 cities, biased toward the Northeast and large metros. Rural America is absent. The Great Plains are underrepresented. If your town is not on the list, it is not because we think your weather does not matter. It is because we had to draw the line somewhere, and we drew it at cities people have heard of.

ERA5 reanalysis. Excellent for temperature. Less trustworthy for snowfall. ERA5 systematically underestimates snow, especially lake-effect snow near the Great Lakes and orographic snow in the mountains. If Syracuse or Salt Lake City look less snowy than you remember, this is probably why.

December–February as “winter.” November can be brutal. March can be worse. We used the meteorological definition of winter and ignored the shoulder months. A freak November blizzard does not appear in our data. A warm March that felt like spring does not either.

Normalization before distance. This is the choice that prevents temperature from eating the distance metric alive. Winter temperature ranges from about 10°F to 75°F (65-degree spread). Snowfall ranges from 0 to 90 inches. Without normalization, the temperature difference between two cities would usually be the only thing that matters. By rescaling each metric to [0, 1], we give temperature, snowfall, and precipitation equal votes.

The sensitivity bottom line: Our choices are defensible but not the only reasonable ones. A different baseline, different cities, or different time window would produce different numbers. The broad conclusions—Denver was weird, Tampa was not—are robust to most of these choices. The exact rankings might shuffle.

7. What We Didn’t Do (and Why You Might)

This is not an academic paper. It is a dashboard. We built it to answer a specific question: was this winter weird, and where? We did not build it to survive peer review. Here is what a more rigorous analysis would include, if you are the sort of person who wants to build one:

Temporal autocorrelation. A warm winter tends to follow a warm fall. Our model ignores this. A proper treatment would add AR(1) or ARMA structure to the residuals. We did not, because seasonal aggregates already smooth out most short-term autocorrelation, and because this is a dashboard, not a dissertation.

ENSO as a covariate. El Niño and La Niña are the single biggest drivers of year-to-year winter variability in the United States. We mention ENSO in the essay. We did not include it in the model as a predictor. A better model would. We classified seasons by ENSO phase after the fact rather than letting the model learn the relationship.

Model selection via LOO-CV or WAIC. We picked a model and ran it. We did not systematically compare it against simpler alternatives using leave-one-out cross-validation or the Widely Applicable Information Criterion. This is the sort of thing you do when publishing. We were not publishing.

Building up from simpler models. Good practice is to start simple (random intercept only), then add complexity (add slope, add heteroscedastic sigma) and check whether each addition is justified. We skipped to the complex model because we had domain knowledge about what the model should capture. This works until it does not.

More data. Weekly or monthly resolution instead of seasonal aggregates. Daily extremes instead of means. Humidity, wind, sunshine hours. More data is always better, until it is not.

Representative sampling. A population-weighted or geographically stratified sample of cities would be more defensible than our ad hoc list. Pittsburgh and Philadelphia are 300 miles apart and probably do not have independent weather. We treated them as independent anyway, because this is a dashboard, not a dissertation.

Spatial correlation. Cities near each other are not independent. A proper spatial model would account for this using a Gaussian process or a conditional autoregressive structure. We did not, because spatial models are computationally expensive and because our audience does not want to wait for a Gaussian process to converge.

Want to replicate this? The full code—data fetching, model fitting, and this dashboard—is on GitHub.

View on GitHub →
Metric:
Metric:
Distance:

National Trends & Model Diagnostics

National Temperature Trend (all 50 cities)

Random Intercepts vs. Random Slopes (Temperature)

Loading weather data...