Ukraine War: 1.4 Million Russian Dead
Tagged:MathInTheNews
/
Politics
/
Sadness
/
Statistics
Another few months passed, another grisly Russian casualty milestone passed in Ukraine.
The Update from Ukraine
As the few stubborn readers of this Crummy Little Blog That Nobody Reads (CLBTNR) know, we express … strong opinions about Russia’s invasion of Ukraine, which opinions we have been shouting into the Internet void for some time now. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18]
The short version: we disapprove… quantitatively, as is our custom.
We’ve quantitatively modeled the casualty rates (and, at least initially all the other Russian losses). Lately, we’ve been updating every 100,000 (!) Russian deaths. As you can see below, Russia has passed another grim milestone of human sacrifice of their own citizens: 1.4 million dead, in combat operations in Ukraine alone.
We’ve previously defended our use of the Ukrainian Ministry of Defence as a data source,
as previously defended in previous posts. Suffice to say: they seem reasonable by comparison with
other sources, and I don’t care to argue about it any more.
Reminder About Russian Demographics
First, the dreary reminder about the dreary Russian demographics: men of military age, roughly the middle third aged 18-44, are being hollowed out. There are approximately 24 million of them:
\[144\ \mbox{million Russians} \times 0.5\ \mbox{males} \times 1/3\ \mbox{military age} = 24\ \mbox{million}\]If 1.4 million are dead in Ukraine, then that’s $100\% \times 1.4\ \mbox{million} / 24\ \mbox{million} = 5.83\%$ of the military-age male population, now gone.
The Russian emigration & COVID-19 deaths (see older post [14]: 900,000 men of military age emigrated and about 67,000 dead of COVID-19), costs about an extra million, for a total loss of 2.3 million. That’s $100\% \times 2.3\ \mbox{million} / 24\ \mbox{million}$, for a total loss about 9.58% of the Russian men of military service age.
Add in the previous estimates of about 900,000 emigrated to avoid being human sacrifices in Ukraine, and about 67,000 dead of COVID-19, and that’s a total loss of 2.367 million, or about 9.86% of the whole Russian men of military age demographic.
Gone.
Forever.
Our Segmented Regression Model
Our “segmented” regression model is basically a linear model of the number of soldiers killed versus time, except that it can have a kink in it where the killing rate changes suddenly. As we explained previously, this means the number of soldiers looks like:
\[\mbox{Soldiers}_t = \beta_0 + \beta_1 \mbox{DayNum}_t + \beta_2 \theta(\mbox{DayNum}_t - \psi) (\mbox{DayNum}_t - \psi) + \epsilon_t\]where:
- $t$ indexes data points in time (here measured in days since 2023-Jan-22; the war itself started earlier, but this is when we started paying quantitative attention),
- $\psi$ is a parameter for estimating the day number at which the kink occurs, and
- $\theta()$ is the Heaviside step function (0 for negative argument, 1 for positive argument, here used as an indicator for “after day number $\psi$”, i.e., the fancy-pants modeling language for an “if” statement),
- $\epsilon \sim N(0, \sigma^2_{\mbox{Soldiers}|\mbox{DayNum}})$ is the error usual error term, normally distributed around 0 with the conditional variance shown.
If we consider expectation values, the interpretation is immediately obvious for the mean number of casualties at a given time:
\[E[\mbox{Soldiers}] = \left\{ \begin{align*} \beta_0 + \beta_1 \mbox{DayNum}, & \mbox{ if } \mbox{DayNum} \lt \psi \\ \beta_0^* + (\beta_1 + \beta_2) \mbox{DayNum}, & \mbox{ if } \mbox{Daynum} \ge \psi \end{align*} \right.\]Here:
- $\beta_1$ is the slope before the kink,
- $\beta_1 + \beta_2$ is the slope after the kink, and
- $\beta_0$ is the intercept before the kink & $\beta_0^*$ is the post-kink intercept (depending on the slope difference and the location of the kink in a way about which we generally do not care, for most purposes).
The 2 slopes $\beta_0$ and $\beta_0 + \beta_1$ are the things about which we care most: did the rate of killing Russian soldiers actually go up after the kink?
Here’s what the result looks like (click to embiggen). As before, the fit is excellent;
we’ll discuss the statistical characterizations of “excellent” below. For now, just note
that there’s clearly an initial slope (killing rate) that changed around 2024-Feb-12 to a
higher rate. That has pretty much continued without further change.
- Points:
- The blue points are the early data points, collected daily.
- The red points are more recent data points, collected approximately every 100,000 deaths.
- Axes:
- The horizontal axis is time, measured in days since I started measuring (not quite the start of the war).
- The vertical axis is the number of Russian soldiers killed, as reported by Ukraine.
- Fitted lines:
- The black line is the fitted line, with a kink.
- The gray bands around it are 95% confidence limits, though as mentioned previously, I don’t quite trust these (they seem too tight to believe).
- The dotted line shows where the initial data fit, without a kink, would have continued in a world with no change in killing rate. Obviously, this is not that world.
- Kink position:
- The best estimate here is 2024-Feb-12.
- The 95% confidence limit on that date is 2024-Jan-17 to 2024-Mar-09.
- This is broadly consistent with previous fits, i.e., this result is stable with respect to adding new data points.
Statistical Significance & The Need for a Kink
The box in the lower right of the plot shows the result of Davies’ Test for the statistical significance of a kink. At $p \sim 2.42 \times 10^{-62}$, it is obviously and absurdly significant. There is definitely a kink in the data; this is not just our opinion.
The Killing Rates Before & After the Kink
Davies’ Test above tells us the kink is statistically significant, i.e., likely to be a real thing that would reproduce if we could (somehow!) run the whole experiment again.
Having found a real result that is both statistically significant, the next thing a statistician must ask is whether the real effect is large enough to bother with, or small enough to ignore. This is a strength of effect measure, and I’ve become enough of a crabby old statistician to be irked by people who stop at significance and don’t assess strength.
For this, we’ll consider the change in killing rates before & after the kink. In the box at the lower right of the plot, we see these rates are 699.58 soldiers/day before, and 1186.70 soldiers/day after. (Also reported are 95% confidence limits, if you want to model the uncertainty here. It seems quite clear, so we won’t do that, though probably we should to be excruciatingly thorough.)
That gives us a percentage change in killing rate of:
\[100\% \times \frac{1186.70 - 699.58}{699.58} = 69.63\%\]Previously we got a 72% change, and before that a 74% change, so this is broadly consistent and a large change indeed. We have a large effect size!
3-Fold Crossvalidation: Is This Real?
Another reality-test statistic asks: have we really learned something about the world, or have we just memorized the dataset? After all, if you only ask me to “predict” the casualties on a date already in the data, I can be 100% correct by looking it up, without having learned anything!
That’s why we always do $k$-fold crossvalidation. That means we divide the data up into $k$ subsets, train on $k-1$ of them, and then predict on the witheld data. Do that all possible ways, extract averages, and contemplate.
Here we divided the data into $k = 3$ folds, which is about as much as we can get away with given that there are not so many late time points.
This table shows the result for withholding each of the folds, and one more using all the
data with nothing withheld.
- The fitted parameters – kink position and the before & after slopes – are all pretty consistent, both across folds and using the whole dataset.
- The standard deviations are also pretty consistent, saying that there’s nothing peculiar about any of the folds, i.e., we chose them fairly. The standard deviation does go down when using the whole dataset (last row), as expected.
- The real test is the RMS error: this measures the root-mean-square error of prediction on the withheld data (except the last row, which uses all of it). So we’re measuring prediction error on data the training of the model never saw. It’s all pretty consistent across folds and shows the addition of the kink definitely reduces error.
In other words, the kinked model performs well on out-of-sample tests, and always outperforms the model with no kink. We should _definitely believe the kink model.
Everything necessary for peer review of the above is available, including the scripts, the data files, transcripts of runs and so on for your inspection. [19]
The Weekend Conclusion
Peter Frankopan, professor of history at Oxford, writing in
Foreign Policy [20], has something tantalizing to say
about the very short life of Russian soldiers:
“According to Russian military bloggers, the average life expectancy of a new recruit—from arrival at a training ground to death in a combat zone—lies somewhere between 10 days and three weeks. Once they are sent onto the battlefield, Russian fighters survive an average of 20 to 35 minutes.”
His sourcing from “Russian military bloggers” is, of course, highly dubious. But the information seems to lean in approximately the correct direction of a very high Russian casualty rate. Taking the recruitment bonus basically seems to be a suicide pact to get money for one’s family. Apparently enough Russians find this… acceptable?!
(Ceterum censeo, Trump incarceranda est!)
(Et ceterum censeo, index Epsteiniani divulganda est!)
Notes & References
1: Weekend Editor, “Another Grim Anniversary”, Some Weekend Reading blog, 2023-Mar-02. ↩
2: Weekend Editor, “Do the Ukrainian Reports of Russian Casualties Make Sense?”, Some Weekend Reading blog, 2023-Apr-15. ↩
3: Weekend Editor, “Update: Ukrainian Estimates of Russian Casualties”, Some Weekend Reading blog, 2023-May-01. ↩
4: Weekend Editor, “Updated Update: Ukrainian Estimates of Russian Casualties”, Some Weekend Reading blog, 2023-May-09. ↩
5: Weekend Editor, “Updated${}^3$: Ukrainian Estimates of Russian Casualties Hit 200k”, Some Weekend Reading blog, 2023-May-17. ↩
6: Weekend Editor, “Ukraine Invasion: 250k Russian Dead”, Some Weekend Reading blog, 2023-May-17. ↩
7: Weekend Editor, “Tacitus in Ukraine”, Some Weekend Reading blog, 2023-May-25. ↩
8: Weekend Editor, “Casualties in Ukraine: Grief Piles Higher & Deeper”, Some Weekend Reading blog, 2024-Apr-10. ↩
9: Weekend Editor, “Post-Memorial Day Thought: 500k Russian Dead in Ukraine “, Some Weekend Reading blog, 2024-May-31. ↩
10: Weekend Editor, “Ukraine: 600k Russian Dead”, Some Weekend Reading blog, 2024-Aug-27. ↩
11: Weekend Editor, “Ukraine War: 700k Russian Dead”, Some Weekend Reading blog, 2024-Nov-04. ↩
12: Weekend Editor, “Ukraine War: 800k Russian Dead”, Some Weekend Reading blog, 2025-Jan-08. ↩
13: Weekend Editor, “Ukraine War: 900k Russian Dead”, Some Weekend Reading blog, 2025-Mar-21. ↩
14: Weekend Editor, “Ukraine War: 1,000,000 Russian Dead?!”, Some Weekend Reading blog, 2025-Jun-12. ↩
15: Weekend Editor, “Ukraine War: 1,100,000 Russian Dead”, Some Weekend Reading blog, 2025-Sep-22. ↩
16: Weekend Editor, “Ukraine War: 1,200,000 Russian Dead”, Some Weekend Reading blog, 2025-Dec-31. ↩
17: Weekend Editor, “Ukraine War Casualties: A Segmented Regression Model”, Some Weekend Reading blog, 2026-Jan-28. ↩
18: Weekend Editor, “Ukraine War: 1,300,000 Russian Dead”, Some Weekend Reading blog, 2026-Apr-02. ↩
19: Weekend Editor, “Updated R Script for Analysis of Russian Casualties in Ukraine, 2026-Jun-28”, Some Weekend Reading blog, 2026-Jun-28.
The data driving the original analysis, in .tsv format, is also available for review by the persistent skeptic.
The data driving this analysis, in .tsv format, is also available for review.
There is also a transcript of running the script, for your review.
This whole mess depends on some idiosyncratic subroutine libraries of our own
construction, graphics-tools and pipeline-tools. We are happy to supply these to our most
exceptionally persistent skeptics who wish to reproduce these results. :-) ↩
20: P Frankopan, “As the Tide Turns Against Putin, Beware the Drowning Man”, Foreign Policy, 2026-Jun-25. NB: The original here is behind a regrettable paywall, but accessible via the usual web archives. ↩

Gestae Commentaria
Comments for this post are closed pending repair of the comment system, but the Email/Twitter/Mastodon icons at page-top always work.