The Democracy Index

The Democracy Index is an index compiled by the Economist newspaper which intends to measure the state of democracy in all 167 member countries of the United Nations.

The index is based on 60 indicators grouped in five different categories. They measure pluralism, civil liberties, and political culture. In addition to a numeric score and a ranking, the index categorizes each country into one of four regime types: full democracies (>8), flawed democracies (8-6), hybrid regimes (6-4), and authoritarian regimes (<4).

Below we can see that the original data surveyed item has 17 variables. The region, ordinal rank in 2020, country name, regime type and the democracy index for 2006, 2008, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, and 2020. However we added an ordinal rank for every year, plus how much a given countries rank and score changed from year to year.

democracyOriginal <- read.csv(file = 'DemocracyIndexOriginal.csv')
democracy <- democracyOriginal %>%
  transform(X2006.rank = rank(-X2006, ties.method= "first")) %>%
  transform(X2008.rank = rank(-X2008, ties.method= "first")) %>%
  transform(X2010.rank = rank(-X2010, ties.method= "first")) %>%
  transform(X2011.rank = rank(-X2011, ties.method= "first")) %>%
  transform(X2012.rank = rank(-X2012, ties.method= "first")) %>%
  transform(X2013.rank = rank(-X2013, ties.method= "first")) %>%
  transform(X2014.rank = rank(-X2014, ties.method= "first")) %>%
  transform(X2015.rank = rank(-X2015, ties.method= "first")) %>%
  transform(X2016.rank = rank(-X2016, ties.method= "first")) %>%
  transform(X2017.rank = rank(-X2017, ties.method= "first")) %>%
  transform(X2018.rank = rank(-X2018, ties.method= "first")) %>%
  transform(X2019.rank = rank(-X2019, ties.method= "first")) %>%
  transform(X2020.rank = rank(-X2020, ties.method= "first"))
democracy$X2020.Rank <- NULL
democracy <- democracy %>%
  transform(X2008.rankchange = (X2006.rank - X2008.rank)) %>%
  transform(X2010.rankchange = (X2008.rank - X2010.rank)) %>%
  transform(X2011.rankchange = (X2010.rank - X2011.rank)) %>%
  transform(X2012.rankchange = (X2011.rank - X2012.rank)) %>%
  transform(X2013.rankchange = (X2012.rank - X2013.rank)) %>%
  transform(X2014.rankchange = (X2013.rank - X2014.rank)) %>%
  transform(X2015.rankchange = (X2014.rank - X2015.rank)) %>%
  transform(X2016.rankchange = (X2015.rank - X2016.rank)) %>%
  transform(X2017.rankchange = (X2016.rank - X2017.rank)) %>%
  transform(X2018.rankchange = (X2017.rank - X2018.rank)) %>%
  transform(X2019.rankchange = (X2018.rank - X2019.rank)) %>%
  transform(X2020.rankchange = (X2019.rank - X2020.rank))
democracy <- democracy %>%
  transform(X2008.scorechange = (X2008 - X2006)) %>%
  transform(X2010.scorechange = (X2010 - X2008)) %>%
  transform(X2011.scorechange = (X2011 - X2010)) %>%
  transform(X2012.scorechange = (X2012 - X2011)) %>%
  transform(X2013.scorechange = (X2013 - X2012)) %>%
  transform(X2014.scorechange = (X2014 - X2013)) %>%
  transform(X2015.scorechange = (X2015 - X2014)) %>%
  transform(X2016.scorechange = (X2016 - X2015)) %>%
  transform(X2017.scorechange = (X2017 - X2016)) %>%
  transform(X2018.scorechange = (X2018 - X2017)) %>%
  transform(X2019.scorechange = (X2019 - X2018)) %>%
  transform(X2020.scorechange = (X2020 - X2019))
glimpse(democracy)
## Rows: 167
## Columns: 53
## $ Region            <chr> "North America", "North America", "Western Europe", ~
## $ Country           <chr> "Canada", "United States", "Austria", "Belgium", "Cy~
## $ Regime.type       <chr> "Full democracy", "Flawed democracy", "Full democrac~
## $ X2006             <dbl> 9.07, 8.22, 8.69, 8.15, 7.60, 9.52, 9.25, 8.07, 8.82~
## $ X2008             <dbl> 9.07, 8.22, 8.49, 8.16, 7.70, 9.52, 9.25, 8.07, 8.82~
## $ X2010             <dbl> 9.08, 8.18, 8.49, 8.05, 7.29, 9.52, 9.19, 7.77, 8.38~
## $ X2011             <dbl> 9.08, 8.11, 8.49, 8.05, 7.29, 9.52, 9.06, 7.77, 8.34~
## $ X2012             <dbl> 9.08, 8.11, 8.62, 8.05, 7.29, 9.52, 9.06, 7.88, 8.34~
## $ X2013             <dbl> 9.08, 8.11, 8.48, 8.05, 7.29, 9.38, 9.03, 7.92, 8.31~
## $ X2014             <dbl> 9.08, 8.11, 8.54, 7.93, 7.40, 9.11, 9.03, 8.04, 8.64~
## $ X2015             <dbl> 9.08, 8.05, 8.54, 7.93, 7.53, 9.11, 9.03, 7.92, 8.64~
## $ X2016             <dbl> 9.15, 7.98, 8.41, 7.77, 7.65, 9.20, 9.03, 7.92, 8.63~
## $ X2017             <dbl> 9.15, 7.98, 8.42, 7.78, 7.59, 9.22, 9.03, 7.80, 8.61~
## $ X2018             <dbl> 9.15, 7.96, 8.29, 7.78, 7.59, 9.22, 9.14, 7.80, 8.68~
## $ X2019             <dbl> 9.22, 7.96, 8.29, 7.64, 7.59, 9.22, 9.25, 8.12, 8.68~
## $ X2020             <dbl> 9.24, 7.92, 8.16, 7.51, 7.56, 9.15, 9.20, 7.99, 8.67~
## $ X2006.rank        <int> 9, 17, 14, 20, 36, 5, 6, 24, 13, 22, 2, 11, 34, 7, 1~
## $ X2008.rank        <int> 11, 18, 14, 20, 36, 5, 6, 24, 13, 22, 3, 12, 29, 9, ~
## $ X2010.rank        <int> 9, 17, 13, 23, 39, 3, 7, 31, 14, 28, 2, 12, 29, 11, ~
## $ X2011.rank        <int> 8, 19, 13, 23, 40, 3, 9, 29, 14, 32, 2, 12, 31, 11, ~
## $ X2012.rank        <int> 8, 21, 12, 24, 41, 4, 9, 28, 14, 33, 3, 13, 32, 11, ~
## $ X2013.rank        <int> 8, 19, 13, 23, 42, 4, 9, 27, 14, 34, 3, 12, 31, 10, ~
## $ X2014.rank        <int> 7, 19, 14, 26, 42, 5, 8, 23, 13, 41, 3, 12, 29, 11, ~
## $ X2015.rank        <int> 7, 20, 14, 26, 39, 5, 8, 27, 13, 40, 2, 12, 21, 11, ~
## $ X2016.rank        <int> 6, 21, 14, 35, 36, 5, 9, 24, 13, 44, 2, 7, 22, 11, 1~
## $ X2017.rank        <int> 6, 21, 15, 32, 35, 5, 9, 29, 13, 38, 2, 7, 22, 12, 1~
## $ X2018.rank        <int> 6, 25, 16, 31, 35, 5, 8, 29, 13, 39, 2, 7, 33, 12, 1~
## $ X2019.rank        <int> 7, 25, 16, 33, 34, 8, 5, 20, 13, 39, 2, 6, 35, 12, 2~
## $ X2020.rank        <int> 5, 25, 18, 36, 34, 7, 6, 24, 14, 37, 2, 8, 29, 13, 3~
## $ X2008.rankchange  <int> -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 5, -2, -1, -~
## $ X2010.rankchange  <int> 2, 1, 1, -3, -3, 2, -1, -7, -1, -6, 1, 0, 0, -2, 1, ~
## $ X2011.rankchange  <int> 1, -2, 0, 0, -1, 0, -2, 2, 0, -4, 0, 0, -2, 0, 0, 0,~
## $ X2012.rankchange  <int> 0, -2, 1, -1, -1, -1, 0, 1, 0, -1, -1, -1, -1, 0, 0,~
## $ X2013.rankchange  <int> 0, 2, -1, 1, -1, 0, 0, 1, 0, -1, 0, 1, 1, 1, -1, -1,~
## $ X2014.rankchange  <int> 1, 0, -1, -3, 0, -1, 1, 4, 1, -7, 0, 0, 2, -1, 1, 1,~
## $ X2015.rankchange  <int> 0, -1, 0, 0, 3, 0, 0, -4, 0, 1, 1, 0, 8, 0, 0, 0, 0,~
## $ X2016.rankchange  <int> 1, -1, 0, -9, 3, 0, -1, 3, 0, -4, 0, 5, -1, 0, 0, -2~
## $ X2017.rankchange  <int> 0, 0, -1, 3, 1, 0, 0, -5, 0, 6, 0, 0, 0, -1, -2, 1, ~
## $ X2018.rankchange  <int> 0, -4, -1, 1, 0, 0, 1, 0, 0, -1, 0, 0, -11, 0, -1, 0~
## $ X2019.rankchange  <int> -1, 0, 0, -2, 1, -3, 3, 9, 0, 0, 0, 1, -2, 0, -8, 0,~
## $ X2020.rankchange  <int> 2, 0, -2, -3, 0, 1, -1, -4, -1, 2, 0, -2, 6, -1, -4,~
## $ X2008.scorechange <dbl> 0.00, 0.00, -0.20, 0.01, 0.10, 0.00, 0.00, 0.00, 0.0~
## $ X2010.scorechange <dbl> 0.01, -0.04, 0.00, -0.11, -0.41, 0.00, -0.06, -0.30,~
## $ X2011.scorechange <dbl> 0.00, -0.07, 0.00, 0.00, 0.00, 0.00, -0.13, 0.00, -0~
## $ X2012.scorechange <dbl> 0.00, 0.00, 0.13, 0.00, 0.00, 0.00, 0.00, 0.11, 0.00~
## $ X2013.scorechange <dbl> 0.00, 0.00, -0.14, 0.00, 0.00, -0.14, -0.03, 0.04, -~
## $ X2014.scorechange <dbl> 0.00, 0.00, 0.06, -0.12, 0.11, -0.27, 0.00, 0.12, 0.~
## $ X2015.scorechange <dbl> 0.00, -0.06, 0.00, 0.00, 0.13, 0.00, 0.00, -0.12, 0.~
## $ X2016.scorechange <dbl> 0.07, -0.07, -0.13, -0.16, 0.12, 0.09, 0.00, 0.00, -~
## $ X2017.scorechange <dbl> 0.00, 0.00, 0.01, 0.01, -0.06, 0.02, 0.00, -0.12, -0~
## $ X2018.scorechange <dbl> 0.00, -0.02, -0.13, 0.00, 0.00, 0.00, 0.11, 0.00, 0.~
## $ X2019.scorechange <dbl> 0.07, 0.00, 0.00, -0.14, 0.00, 0.00, 0.11, 0.32, 0.0~
## $ X2020.scorechange <dbl> 0.02, -0.04, -0.13, -0.13, -0.03, -0.07, -0.05, -0.1~
#write.csv(democracy, "DemocracyIndex.csv")

Answering Questions with Plots

Question 1: How does democratization vary across different regions of the globe?

Answer 1: It looks like North America and Western Europe are the most democratic regions. Although we question the decision to exclude Latin America and the Caribbean from North America. Not to mention the division of Africa into Sub-Saharan Africa and Middle East & North Africa, plus the decision to divide Europe into Western and Central & Eastern. These regions seem arbitrary.

ggplot(democracy, aes(x=X2020, y=Region, fill=Region)) + geom_boxplot()

Question 2: How does democratization vary within different regions?

Answer 2: This plot conveys some of the same information from question 1 but it also allows us to see the number of countries within each region and number of regimes of each type. From this we learn that some regions have many more counties than others, North America has two while Sub-Saharan Africa has forty-three. This also shows us that most regions have two or three main regime types, suggesting that neighboring counties are likely to have similar levels of democratization.

ggplot(democracy, aes(x=Region, fill=Regime.type)) + geom_bar() + scale_fill_manual(values=c("#dc0000", "#75a375", "#008000", "#dd7777")) + coord_flip() 

Question 3: What were the best and worst years for democracy?

Answer 3: There’s two ways we might want to answer this, what year had the highest/lowest global average democratization index and what year had the highest/lowest change in global average democratization index.

For the most democratic year, it looks like that honor goes to 2015 which has just a slight edge over 2008 at a score of ~5.55. unfortunately, it looks 2020 was ranked as the least democratic year at a score of ~5.37. As for the year which saw greatest rise in democracy, that honor should go to a three way tie between 2008, 2011, and 2012 where each year saw an increase of ~0.025. The year with the greatest fall in democracy was 2010, when global average democratization fell ~0.80.

bestDemocracyYears <- data.frame(year=c("X2006", "X2008", "X2010", "X2011", "X2012", "X2013", "X2014", "X2015", "X2016", "X2017", "X2018", "X2019", "X2020"),
                                 avgdemocracy=colMeans(democracy[,4:16]),
                                 avgdemocracychange=colMeans(democracy[,41:53]))
ggplot(bestDemocracyYears, aes(y=avgdemocracy, x=year)) + geom_point() + ylim(5.3, 5.7)

ggplot(bestDemocracyYears, aes(y=avgdemocracychange, x=year)) + geom_point() + ylim(-0.1, 0.1) + geom_abline(slope=0, intercept=0, color='red')

As a final not, no one should take these findings too seriously. The Economist gets this data from “experts”, but the Economist does not disclose their number, nationality, credentials, or even field of expertise.