Youth Bulge Theory: Why there won’t be an Uprising in Russia

Many wonder why there are so few protests in Russia over the brutal war against Ukraine. An answer could lie in the youth bulge theory which we will use again to explain the relative lethargy of the Russian populace, so read on!

Since the beginning of the war against Ukraine observers have wondered why there isn’t more political unrest in Russia, i.e. more criticism, more protests, and more opposition in general to this unjust war against its peaceful neighbour.

Several reasons come to mind like police brutality against protestors, long prison sentences for members of the opposition, and constant brainwashing with propaganda but there could be one hidden force: the proportion of young people.

In this post, we won’t retell the whole background story of the youth bulge theory because we have done that already here: The “Youth Bulge” of Afghanistan: The Hidden Force behind Political Instability.

The gist is that the bigger the proportion of young people over older people, the more violent political and social conflicts there will be. In the above post, we showed a highly significant correlation between those two based on World Bank data. On top of that, we found a tipping point at about 24% for the age group 0-14.

Now, let us see how the situation in Russia is based on the latest 2020-numbers:

library(WDI) # install from CRAN
age0_14 <- WDI(indicator = "SP.POP.0014.TO.ZS", start = 2020, end = 2020) # proportion of 0-14 year olds 
pol_stab <- WDI(indicator = "PV.EST", start = 2020, end = 2020) # political stability indicator

data <- merge(age0_14, pol_stab)[c(2, 4, 5)] |> na.omit()
colnames(data) <- c("country", "age0_14", "pol_stab")

plot(data$age0_14, data$pol_stab, col = "darkgrey", xlab = "Proportion of young people (in %)", ylab = "Political stability", main = "Youth bulge theory")
abline(v = 23.9, col = "red")
lm.out <- lm(pol_stab ~ age0_14, data = data) 
abline(lm.out, col = "blue", lwd = 3)

country <- "Russian Federation"
points(data$age0_14[data$country == country], data$pol_stab[data$country == country], col = "red", lwd = 8)
text(data$age0_14[data$country == country], data$pol_stab[data$country == country], labels = country, pos = 4)

As we can clearly see in this plot the proportion of 0–14-year-olds with about 18% is way below the critical tipping point of 24% (= the narrow red line). That alone of course doesn’t give a “guarantee” that there won’t be any serious uprising or revolution but it can provide a good heuristic with about 80% accuracy.

On the other hand, this is the reason why the country is not enthusiastically embracing the war either and therefore seems to be losing it. When you look at the scenes of the recruitment centres now that Putin has ordered a mobilization you mainly see tired-looking men, so lethargy goes both ways.

What do you think about the youth bulge theory in this context? Please let us know in the comments!

UPDATE October 8, 2022
I created a video for this post (in German):

UPDATE November 29, 2022
And yet another application of the youth bulge theory, this time about the situation in China: How Stable is China?.

9 thoughts on “Youth Bulge Theory: Why there won’t be an Uprising in Russia”

  1. The y-axis is labeled “political stability” and the trend is decreasing when there are *more* young people.

    However in the text you state the opposite,

    “the bigger the proportion of young people over older people is, the more violent political and social conflicts there will be”

    1. Ah I see now that the trend in the image is not opposite to the text. But the position of Russia is on the left which means that it has a relatively old population and not so many young people.

      Compared to other countries with similar percentages of young people, Russia is at the lower end, far away from the trend line. So it doesn’t seem to be that Russia has a young population, and it it is that Russia is an outlier in this relationship.

      1. Thank you for your comment, Martijn.

        I wouldn’t say that it is “far away from the trend line” and an “outlier”. It is obviously not exactly on the trend line (we don’t have a correlation of 1 but of about 0.6) but when you look at the whole picture it is certainly within the overall trend corridor.

  2. You appear to have a bug in your code. When I copy/paste it into R here, I get:

    > Error in int_abline(a = a, b = b, h = h, v = v, untf = untf, ...) : 
      'a' and 'b' must be finite
    > Error in text.default(data$age0_14[data$country == country], data$pol_stab[data$country ==  : 
      no coordinates were supplied

    Thank you (in advance) for the assistance.

  3. Ahahaha – it is really funny: “peaceful neighbour”…
    Not only russians were brainwashed of propaganda.

Leave a Reply

Your email address will not be published. Required fields are marked *

I accept that my given data and my IP address is sent to a server in the USA only for the purpose of spam prevention through the Akismet program.More information on Akismet and GDPR.

This site uses Akismet to reduce spam. Learn how your comment data is processed.