Source

  • Coppedge, Michael, John Gerring, Carl Henrik Knutsen, Staffan I. Lindberg, Jan Teorell, Nazifa Alizada, David Altman, Michael Bernhard, Agnes Cornell, M. Steven Fish, Lisa Gastaldi, Haakon Gjerløw, Adam Glynn, Allen Hicken, Garry Hindle, Nina Ilchenko, Joshua Krusell, Anna Luhrmann, Seraphine F. Maerz, Kyle L. Marquardt, Kelly McMann, Valeriya Mechkova, Juraj Medzihorsky, Pamela Paxton, Daniel Pemstein, Josefine Pernes, Johannes von Römer, Brigitte Seim, Rachel Sigman, Svend-Erik Skaaning, Jeffrey Staton, Aksel Sundström, Ei-tan Tzelgov, Yi-ting Wang, Tore Wig, Steven Wilson and Daniel Ziblatt. 2021. ”V-Dem [Country–Year/Country–Date] Dataset v11.1” Varieties of Democracy Project. https://doi.org/10.23696/vdemds21
  • Pemstein, Daniel, Kyle L. Marquardt, Eitan Tzelgov, Yi-ting Wang, Juraj Medzihorsky, Joshua Krusell, Farhad Miri, and Johannes von Römer. 2021. “The V-Dem Measurement Model: Latent Variable Analysis for Cross-National and Cross-Temporal Expert-Coded Data”. V-Dem Working Paper No. 21 , 6th edition. University of Gothenburg: Varieties of Democracy Institute
  • v-dem.net

V-Dem categories

Lower chamber electoral system

13 categories (A) (v2elloelsy)

Question: What was the electoral system used in this election for the lower or unicameral chamber of the legislature?

library(glue)       # format strings
library(patchwork)  # combine plots
library(sf)         # maps
library(tidyverse)

vdem_raw <- read_csv("vdem-vars.csv")

labels_elloelsy <- 
  c("First-past-post", "Two-round", "Alternative vote",
    "Block vote", "Party block vote", "Parallel (SMD/PR)",
    "Mixed-member PR", "List PR small-MMD", "List PR large-MMD",
    "STV", "SNTV", "Limited vote", "Borda Count")

V-Dem categories electoral systems

  • First-past-post, Two-round, Alternative vote, Block vote, Party block vote, Parallel (SMD/PR), Mixed-member PR, List PR small-MMD, List PR large-MMD, STV, SNTV, Limited vote, Borda Count
  • some categories recoded into Other in figures
## Prepare V-Dem data

elec_sys <- 
  vdem_raw %>% 
  select(country = country_text_id, country_name, year, v2elloelsy) %>%
  group_by(country) %>% 
  fill(v2elloelsy) %>% 
  ungroup() %>% 
  na.omit() %>% 
  mutate(
    electoral_system_all = factor(v2elloelsy, 
                                  seq(0, length(labels_elloelsy) - 1), 
                                  labels_elloelsy),
    electoral_system = fct_lump(electoral_system_all, n = 7)
    )

elec_recent <- 
  elec_sys %>% 
  group_by(country) %>% 
  filter(year == max(year)) %>% 
  ungroup()

scale_electoral_systems <- scale_fill_brewer(palette = 1, type = "qual", na.value = "grey80")

Maps

world_raw <- read_rds("worldmap.rds")

world <- 
  world_raw %>% 
  st_crop(xmin = -150, xmax = 175, ymin = -54, ymax = 74) %>% 
  left_join(elec_recent, by = "country")

pl_world <- 
  ggplot(world) +
  scale_electoral_systems +
  theme_void()

pl_world +
  geom_sf(aes(fill = electoral_system), lwd = 0.1) +
  coord_sf(crs = "+proj=robin")

pl_a <- 
  pl_world +
  geom_sf(aes(fill = electoral_system), lwd = 0.1) +
  coord_sf(crs = "+proj=lcc +lat_1=43 +lat_2=62 +lat_0=30 +lon_0=10",  # LCC Europe parameters
           xlim = c(-1600000, 1700000), ylim = c(750000, 3600000)) +   # set map limits
  labs(title = "Europe") +
  guides(fill=FALSE)

pl_b <- 
  pl_world +
  geom_sf(aes(fill = electoral_system), lwd = 0.1) +
  coord_sf(crs = "+proj=robin",
           xlim = c(9000000, 13250000), ylim = c(-1250000, 2600000)) +   # set map limits
  labs(title = "Asia") +
  guides(fill=FALSE)

pl_a + pl_b

Frequency

elec_recent %>% count(electoral_system_all, sort = TRUE)

Evolution

Number

pl_dt <- 
  elec_sys %>% 
  mutate()

pl <- 
  ggplot(pl_dt, aes(year)) +
  geom_histogram(aes(fill = electoral_system), position = "stack", binwidth = 1) +
  scale_electoral_systems + 
  xlim(1800, 2017) +
  theme_minimal()
print(pl)

ggsave("z-vdem-electoral-system.png", width = 8, height = 6)

Share

ggplot(pl_dt, aes(year)) +
  geom_histogram(aes(fill = electoral_system), position = "fill", binwidth = 1) +
  scale_electoral_systems + 
  xlim(1880, 2017) +
  theme_minimal()

Country changes

continent <- 
  world %>% 
  select(country, continent) %>% 
  mutate(
    continent = case_when(
       continent == "North America" ~ "America",
       continent == "South America" ~ "America",
       continent == "Oceania" ~ "Asia",
       continent == "Seven seas (open ocean)" ~ "Asia",
       TRUE ~ continent
    )
  ) %>% 
  st_drop_geometry()

elec_sys %>% 
  group_by(country) %>% 
  filter(electoral_system != lag(electoral_system) | row_number() == 1) %>% 
  ungroup() %>% 
  arrange(year, country) %>% 
  left_join(continent, by = "country") %>% 
  select(country_name, continent, year, electoral_system = electoral_system_all) %>% 
  DT::datatable()
LS0tCnRpdGxlOiAiVi1EZW0gZWxlY3RvcmFsIHN5c3RlbXMiCmF1dGhvcjogIkhvbGdlciBEb2VyaW5nIC0tLSBkb2VyaW5nQHVuaS1icmVtZW4uZGUiCmRhdGU6ICJgciBmb3JtYXQoU3lzLnRpbWUoKSlgIgpvdXRwdXQ6CiAgaHRtbF9ub3RlYm9vazoKICAgIGNvZGVfZm9sZGluZzogaGlkZQogICAgdG9jOiB5ZXMKICAgIHRvY19mbG9hdDogeWVzCiAgaHRtbF9kb2N1bWVudDoKICAgIGNvZGVfZm9sZGluZzogaGlkZQogICAgZGZfcHJpbnQ6IHBhZ2VkCiAgICB0b2M6IHllcwotLS0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPiA8IS0tIC50YWJsZSB7IHdpZHRoOiBhdXRvIH0gLS0tPiA8L3N0eWxlPgoKYGBge3Igb3B0aW9ucywgaW5jbHVkZT1GQUxTRX0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KAogICMgcmVzdWx0cz0iaGlkZSIsCiAgbWVzc2FnZT1GQUxTRSwKICB3YXJuaW5nPUZBTFNFLAogIHBhY2thZ2Uuc3RhcnR1cC5tZXNzYWdlID0gRkFMU0UKKQoKb3B0aW9ucygKICByZWFkci5udW1fY29sdW1ucyA9IDAsCiAga25pdHIua2FibGUuTkEgPSAiIiwKICB3aWR0aCA9IDEwMCwKICB0aWR5dmVyc2UucXVpZXQgPSBUUlVFCikKYGBgCgojIyBTb3VyY2UKCisgQ29wcGVkZ2UsIE1pY2hhZWwsIEpvaG4gR2VycmluZywgQ2FybCBIZW5yaWsgS251dHNlbiwgU3RhZmZhbiBJLiBMaW5kYmVyZywgSmFuIFRlb3JlbGwsIE5hemlmYSBBbGl6YWRhLCBEYXZpZCBBbHRtYW4sIE1pY2hhZWwgQmVybmhhcmQsIEFnbmVzIENvcm5lbGwsIE0uIFN0ZXZlbiBGaXNoLCBMaXNhIEdhc3RhbGRpLCBIYWFrb24gR2plcmzDuHcsIEFkYW0gR2x5bm4sIEFsbGVuIEhpY2tlbiwgR2FycnkgSGluZGxlLCBOaW5hIElsY2hlbmtvLCBKb3NodWEgS3J1c2VsbCwgQW5uYSBMdWhybWFubiwgU2VyYXBoaW5lIEYuIE1hZXJ6LCBLeWxlIEwuIE1hcnF1YXJkdCwgS2VsbHkgTWNNYW5uLCBWYWxlcml5YSBNZWNoa292YSwgSnVyYWogTWVkemlob3Jza3ksIFBhbWVsYSBQYXh0b24sIERhbmllbCBQZW1zdGVpbiwgSm9zZe+sgW5lIFBlcm5lcywgSm9oYW5uZXMgdm9uIFLDtm1lciwgQnJpZ2l0dGUgU2VpbSwgUmFjaGVsIFNpZ21hbiwgU3ZlbmQtRXJpayBTa2FhbmluZywgSmVmZnJleSBTdGF0b24sIEFrc2VsIFN1bmRzdHLDtm0sIEVpLXRhbiBUemVsZ292LCBZaS10aW5nIFdhbmcsIFRvcmUgV2lnLCBTdGV2ZW4gV2lsc29uIGFuZCBEYW5pZWwgWmlibGF0dC4gMjAyMS4g4oCdVi1EZW0gW0NvdW50cnnigJNZZWFyL0NvdW50cnnigJNEYXRlXSBEYXRhc2V0IHYxMS4x4oCdIFZhcmlldGllcyBvZiBEZW1vY3JhY3kgUHJvamVjdC4gaHR0cHM6Ly9kb2kub3JnLzEwLjIzNjk2L3ZkZW1kczIxCisgUGVtc3RlaW4sIERhbmllbCwgS3lsZSBMLiBNYXJxdWFyZHQsIEVpdGFuIFR6ZWxnb3YsIFlpLXRpbmcgV2FuZywgSnVyYWogTWVkemlob3Jza3ksIEpvc2h1YSBLcnVzZWxsLCBGYXJoYWQgTWlyaSwgYW5kIEpvaGFubmVzIHZvbiBSw7ZtZXIuIDIwMjEuIOKAnFRoZSBWLURlbSBNZWFzdXJlbWVudCBNb2RlbDogTGF0ZW50IFZhcmlhYmxlIEFuYWx5c2lzIGZvciBDcm9zcy1OYXRpb25hbCBhbmQgQ3Jvc3MtVGVtcG9yYWwgRXhwZXJ0LUNvZGVkIERhdGHigJ0uIFYtRGVtIFdvcmtpbmcgUGFwZXIgTm8uIDIxICwgNnRoIGVkaXRpb24uIFVuaXZlcnNpdHkgb2YgR290aGVuYnVyZzogVmFyaWV0aWVzIG9mIERlbW9jcmFjeSBJbnN0aXR1dGUKKyBfX1t2LWRlbS5uZXRdKGh0dHBzOi8vd3d3LnYtZGVtLm5ldClfXwoKIyMgVi1EZW0gY2F0ZWdvcmllcwoKX19Mb3dlciBjaGFtYmVyIGVsZWN0b3JhbCBzeXN0ZW1fXwoKMTMgY2F0ZWdvcmllcyAoQSkgKHYyZWxsb2Vsc3kpCgpfX1F1ZXN0aW9uOl9fIFdoYXQgd2FzIHRoZSBlbGVjdG9yYWwgc3lzdGVtIHVzZWQgaW4gdGhpcyBlbGVjdGlvbiBmb3IgdGhlIGxvd2VyIG9yIHVuaWNhbWVyYWwgY2hhbWJlcgpvZiB0aGUgbGVnaXNsYXR1cmU/CgpgYGB7cn0KbGlicmFyeShnbHVlKSAgICAgICAjIGZvcm1hdCBzdHJpbmdzCmxpYnJhcnkocGF0Y2h3b3JrKSAgIyBjb21iaW5lIHBsb3RzCmxpYnJhcnkoc2YpICAgICAgICAgIyBtYXBzCmxpYnJhcnkodGlkeXZlcnNlKQoKdmRlbV9yYXcgPC0gcmVhZF9jc3YoInZkZW0tdmFycy5jc3YiKQoKbGFiZWxzX2VsbG9lbHN5IDwtIAogIGMoIkZpcnN0LXBhc3QtcG9zdCIsICJUd28tcm91bmQiLCAiQWx0ZXJuYXRpdmUgdm90ZSIsCiAgICAiQmxvY2sgdm90ZSIsICJQYXJ0eSBibG9jayB2b3RlIiwgIlBhcmFsbGVsIChTTUQvUFIpIiwKICAgICJNaXhlZC1tZW1iZXIgUFIiLCAiTGlzdCBQUiBzbWFsbC1NTUQiLCAiTGlzdCBQUiBsYXJnZS1NTUQiLAogICAgIlNUViIsICJTTlRWIiwgIkxpbWl0ZWQgdm90ZSIsICJCb3JkYSBDb3VudCIpCmBgYAoKVi1EZW0gX19jYXRlZ29yaWVzX18gZWxlY3RvcmFsIHN5c3RlbXMKCiogYHIgcGFzdGUobGFiZWxzX2VsbG9lbHN5LCBjb2xsYXBzZSA9ICIsICIpYAoqIHNvbWUgY2F0ZWdvcmllcyByZWNvZGVkIGludG8gX090aGVyXyBpbiBmaWd1cmVzCgpgYGB7cn0KIyMgUHJlcGFyZSBWLURlbSBkYXRhCgplbGVjX3N5cyA8LSAKICB2ZGVtX3JhdyAlPiUgCiAgc2VsZWN0KGNvdW50cnkgPSBjb3VudHJ5X3RleHRfaWQsIGNvdW50cnlfbmFtZSwgeWVhciwgdjJlbGxvZWxzeSkgJT4lCiAgZ3JvdXBfYnkoY291bnRyeSkgJT4lIAogIGZpbGwodjJlbGxvZWxzeSkgJT4lIAogIHVuZ3JvdXAoKSAlPiUgCiAgbmEub21pdCgpICU+JSAKICBtdXRhdGUoCiAgICBlbGVjdG9yYWxfc3lzdGVtX2FsbCA9IGZhY3Rvcih2MmVsbG9lbHN5LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcSgwLCBsZW5ndGgobGFiZWxzX2VsbG9lbHN5KSAtIDEpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsc19lbGxvZWxzeSksCiAgICBlbGVjdG9yYWxfc3lzdGVtID0gZmN0X2x1bXAoZWxlY3RvcmFsX3N5c3RlbV9hbGwsIG4gPSA3KQogICAgKQoKZWxlY19yZWNlbnQgPC0gCiAgZWxlY19zeXMgJT4lIAogIGdyb3VwX2J5KGNvdW50cnkpICU+JSAKICBmaWx0ZXIoeWVhciA9PSBtYXgoeWVhcikpICU+JSAKICB1bmdyb3VwKCkKCnNjYWxlX2VsZWN0b3JhbF9zeXN0ZW1zIDwtIHNjYWxlX2ZpbGxfYnJld2VyKHBhbGV0dGUgPSAxLCB0eXBlID0gInF1YWwiLCBuYS52YWx1ZSA9ICJncmV5ODAiKQpgYGAKCiMjIE1hcHMKCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9CndvcmxkX3JhdyA8LSByZWFkX3Jkcygid29ybGRtYXAucmRzIikKCndvcmxkIDwtIAogIHdvcmxkX3JhdyAlPiUgCiAgc3RfY3JvcCh4bWluID0gLTE1MCwgeG1heCA9IDE3NSwgeW1pbiA9IC01NCwgeW1heCA9IDc0KSAlPiUgCiAgbGVmdF9qb2luKGVsZWNfcmVjZW50LCBieSA9ICJjb3VudHJ5IikKCnBsX3dvcmxkIDwtIAogIGdncGxvdCh3b3JsZCkgKwogIHNjYWxlX2VsZWN0b3JhbF9zeXN0ZW1zICsKICB0aGVtZV92b2lkKCkKCnBsX3dvcmxkICsKICBnZW9tX3NmKGFlcyhmaWxsID0gZWxlY3RvcmFsX3N5c3RlbSksIGx3ZCA9IDAuMSkgKwogIGNvb3JkX3NmKGNycyA9ICIrcHJvaj1yb2JpbiIpCmBgYApgYGB7cn0KcGxfYSA8LSAKICBwbF93b3JsZCArCiAgZ2VvbV9zZihhZXMoZmlsbCA9IGVsZWN0b3JhbF9zeXN0ZW0pLCBsd2QgPSAwLjEpICsKICBjb29yZF9zZihjcnMgPSAiK3Byb2o9bGNjICtsYXRfMT00MyArbGF0XzI9NjIgK2xhdF8wPTMwICtsb25fMD0xMCIsICAjIExDQyBFdXJvcGUgcGFyYW1ldGVycwogICAgICAgICAgIHhsaW0gPSBjKC0xNjAwMDAwLCAxNzAwMDAwKSwgeWxpbSA9IGMoNzUwMDAwLCAzNjAwMDAwKSkgKyAgICMgc2V0IG1hcCBsaW1pdHMKICBsYWJzKHRpdGxlID0gIkV1cm9wZSIpICsKICBndWlkZXMoZmlsbD1GQUxTRSkKCnBsX2IgPC0gCiAgcGxfd29ybGQgKwogIGdlb21fc2YoYWVzKGZpbGwgPSBlbGVjdG9yYWxfc3lzdGVtKSwgbHdkID0gMC4xKSArCiAgY29vcmRfc2YoY3JzID0gIitwcm9qPXJvYmluIiwKICAgICAgICAgICB4bGltID0gYyg5MDAwMDAwLCAxMzI1MDAwMCksIHlsaW0gPSBjKC0xMjUwMDAwLCAyNjAwMDAwKSkgKyAgICMgc2V0IG1hcCBsaW1pdHMKICBsYWJzKHRpdGxlID0gIkFzaWEiKSArCiAgZ3VpZGVzKGZpbGw9RkFMU0UpCgpwbF9hICsgcGxfYgpgYGAKCiMjIEZyZXF1ZW5jeQoKYGBge3J9CmVsZWNfcmVjZW50ICU+JSBjb3VudChlbGVjdG9yYWxfc3lzdGVtX2FsbCwgc29ydCA9IFRSVUUpCmBgYAoKCiMjIEV2b2x1dGlvbgoKIyMjIE51bWJlcgoKYGBge3J9CnBsX2R0IDwtIAogIGVsZWNfc3lzICU+JSAKICBtdXRhdGUoKQoKcGwgPC0gCiAgZ2dwbG90KHBsX2R0LCBhZXMoeWVhcikpICsKICBnZW9tX2hpc3RvZ3JhbShhZXMoZmlsbCA9IGVsZWN0b3JhbF9zeXN0ZW0pLCBwb3NpdGlvbiA9ICJzdGFjayIsIGJpbndpZHRoID0gMSkgKwogIHNjYWxlX2VsZWN0b3JhbF9zeXN0ZW1zICsgCiAgeGxpbSgxODAwLCAyMDE3KSArCiAgdGhlbWVfbWluaW1hbCgpCnByaW50KHBsKQpnZ3NhdmUoInotdmRlbS1lbGVjdG9yYWwtc3lzdGVtLnBuZyIsIHdpZHRoID0gOCwgaGVpZ2h0ID0gNikKYGBgCgojIyMgU2hhcmUKCmBgYHtyfQpnZ3Bsb3QocGxfZHQsIGFlcyh5ZWFyKSkgKwogIGdlb21faGlzdG9ncmFtKGFlcyhmaWxsID0gZWxlY3RvcmFsX3N5c3RlbSksIHBvc2l0aW9uID0gImZpbGwiLCBiaW53aWR0aCA9IDEpICsKICBzY2FsZV9lbGVjdG9yYWxfc3lzdGVtcyArIAogIHhsaW0oMTg4MCwgMjAxNykgKwogIHRoZW1lX21pbmltYWwoKQpgYGAKCiMjIENvdW50cnkgY2hhbmdlcwoKYGBge3J9CmNvbnRpbmVudCA8LSAKICB3b3JsZCAlPiUgCiAgc2VsZWN0KGNvdW50cnksIGNvbnRpbmVudCkgJT4lIAogIG11dGF0ZSgKICAgIGNvbnRpbmVudCA9IGNhc2Vfd2hlbigKICAgICAgIGNvbnRpbmVudCA9PSAiTm9ydGggQW1lcmljYSIgfiAiQW1lcmljYSIsCiAgICAgICBjb250aW5lbnQgPT0gIlNvdXRoIEFtZXJpY2EiIH4gIkFtZXJpY2EiLAogICAgICAgY29udGluZW50ID09ICJPY2VhbmlhIiB+ICJBc2lhIiwKICAgICAgIGNvbnRpbmVudCA9PSAiU2V2ZW4gc2VhcyAob3BlbiBvY2VhbikiIH4gIkFzaWEiLAogICAgICAgVFJVRSB+IGNvbnRpbmVudAogICAgKQogICkgJT4lIAogIHN0X2Ryb3BfZ2VvbWV0cnkoKQoKZWxlY19zeXMgJT4lIAogIGdyb3VwX2J5KGNvdW50cnkpICU+JSAKICBmaWx0ZXIoZWxlY3RvcmFsX3N5c3RlbSAhPSBsYWcoZWxlY3RvcmFsX3N5c3RlbSkgfCByb3dfbnVtYmVyKCkgPT0gMSkgJT4lIAogIHVuZ3JvdXAoKSAlPiUgCiAgYXJyYW5nZSh5ZWFyLCBjb3VudHJ5KSAlPiUgCiAgbGVmdF9qb2luKGNvbnRpbmVudCwgYnkgPSAiY291bnRyeSIpICU+JSAKICBzZWxlY3QoY291bnRyeV9uYW1lLCBjb250aW5lbnQsIHllYXIsIGVsZWN0b3JhbF9zeXN0ZW0gPSBlbGVjdG9yYWxfc3lzdGVtX2FsbCkgJT4lIAogIERUOjpkYXRhdGFibGUoKQpgYGAKCg==