Ukraine War: 1.5 Million Russian Dead
Tagged:MathInTheNews
/
Politics
/
Sadness
/
Statistics
On the 25th anniversary of the 9/11 attacks in the US, we also note another sad milestone of Russian casualty counts in their Ukraine invasion.
A Highly Regrettable Anniversary and A Newly Regrettable Milestone
Today is the 25th anniversary of the 9/11 attacks by al Qaeda that resulted in mass deaths in New York & elsewhere, inaugurating a new Forever War in which the US participates with regrettable relish.
On an eerily similar note, today I noticed another milestone in Russian casualties in Ukraine.
Now, this Crummy Little Blog That Nobody Reads (CLBTNR) has, as you might expect from the nickname, only a very few readers. The few, and the hapless. We few, we hopeless few, we band of botherers – to misquote Henry V – have been having some rather… testy opinions on the subject of the Russian invasion of Ukraine for some time now. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19]
We’ve been quantitatively modeling the whole mess, just to have objective evidence of the evil being perpetrated and not just a ball of white-hot anger at the leaders of the world and their enablers. As you can see below, Russia has attained a new milestone of 1.5 million dead:
(NB: The link behind the image above no longer goes directly to X/Twitter, in case you are squeamish – as you should be – about giving clicks to the Nazi Bar. There’s a bit of software called nitter that is basically a fascism-free front end letting you glare at the inhabitants of X/Twitter without giving them any clicks and most certainly without having an account. There was, of course, a lawsuit, because there always is with the right-wingers. They lost, and nitter is available again. xcancel.com is a nitter instance, and that is where we link for now.)
All previous quibbles about using the Ukrainian Ministry of Defence for casualty statistics, given their obvious interest, still stand. All previous responses also still stand: they seem to be middle of the pack in these matters, as the 19 posts above will attest in rather more detail than you probably want to know.
Suffice to say: this is a credible starting point for deciding what to think about the state of the world, and the state of the world is decidedly grim.
The Dreary Demographics of Russian Men
Once again, let’s make the repeated, dreary point that Russia is hollowing out the middle demographic of Russian men of military service age. As we’ve pointed out many times now, there started out about 24 million of them:
\[144\ \mbox{million Russians} \times 0.5\ \mbox{males} \times 1/3\ \mbox{military age} = 24\ \mbox{million}\]If 1.5 million are dead in Ukraine, then that’s $100\% \times 1.5\ \mbox{million} / 24\ \mbox{million} = 6.25\%$ 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.5 million. That’s $100\% \times 2.5\ \mbox{million} / 24\ \mbox{million}$, for a total loss about 10.42% of the Russian men of military service age.
So more than 10%. Russia is now paying tithing, but doing so “in kind” by the human sacrifice of their young- to middle-aged men.
Our Segmented Regression Model
To repeat our previous explanation of the 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-10.
- The 95% confidence limit on that date is 2024-Jan-15 to 2024-Mar-07.
- 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 1.07 \times 10^{-62}$, it is obviously and absurdly significant. There is definitely a kink in the data; this is not just our opinion (though it is, indeed, also 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! horribly!) run the whole experiment again.
Having found a real result that is statistically significant, the next thing a statistician must ask is whether the real effect is large enough to bother about, 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 1183.30 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{1183.30 - 699.58}{699.58} = 69.14\%\]Previously we got a changes from 69% to 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 this one particular 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 withheld 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. [20]
The Weekend Conclusion
What to make of all this?
The world is in a horrible state: fascism at home and abroad, institutions that quiver helplessly instead of protecting society, trade wars and real wars, and now people talking seriously about the possibility of a second American civil war. The case to eject from office Trump and as many of his Republican enablers has never been more clear. And really: not just eject from office, but criminally indict, try, convict, and imprison them.
Anything less, and they’ll just come back and try again with new faces.
As before, we can let Jack Hardy have the final word here, with his eerily prescient song “Ask Questions”.
How do I even begin to ‘explain’ a guy whose trademark was inscrutability? He just knew mountains of literature, poetry, and mythology and sang songs that invited you on a stroll through all of it.
“Ask Questions”, in a video of a performance shown here, showcases his breadth of knowledge, allusive & cryptic style where each line is almost a riddle, and of course his famous gravelly voice. You didn’t go listen to Jack for operatic purity, you went to have the boundaries of your mind tugged open a bit.
History has eyes, history has ears.
History finds secrets that are buried for years.
Exploded, explained, exposed, and explicit:
History will judge us either stupid or complicit.
And we know… we are not stupid.
Ask questions.
Don’t be complicit. Don’t be stupid. Break the evil, wring it out of the system and replace it with something better.
(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, “Ukraine War: 1.4 Million Russian Dead”, Some Weekend Reading blog, 2026-Jun-28. ↩
20: Weekend Editor, “Updated R Script for Analysis of Russian Casualties in Ukraine, 2026-Sep-11”, Some Weekend Reading blog, 2026-Sep-11.
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. :-) ↩


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.