April 14, 2019

Visualisation with Archigos: Leaders of the World

Archigos

Is an amazing collaboration that produced a comprehensive dataset of world leaders going pretty far back; see Archigos on the web. For thinking about leadership, it is quite natural. In this post, I want to do some reshaping into country year and leader year datasets and explore the basic confines of Archigos. I also want to use gganimate for a few things. So what do we know?

library(lubridate)
library(tidyverse)
library(ggthemes)
library(stringr)
library(gganimate)
library(emoGG)
library(emojifont)
library(haven)
Archigos <- read_dta(url("http://www.rochester.edu/college/faculty/hgoemans/Archigos_4.1_stata14.dta"))
head(Archigos)
## # A tibble: 6 x 28
##   obsid leadid ccode idacr leader startdate eindate    enddate eoutdate   entry
##   <chr> <chr>  <dbl> <chr> <chr>  <chr>     <date>     <chr>   <date>     <chr>
## 1 USA-… 81dcc…     2 USA   Grant  1869-03-… 1869-03-04 1877-0… 1877-03-04 Regu…
## 2 USA-… 81dcc…     2 USA   Hayes  1877-03-… 1877-03-04 1881-0… 1881-03-04 Regu…
## 3 USA-… 81dcf…     2 USA   Garfi… 1881-03-… 1881-03-04 1881-0… 1881-09-19 Regu…
## 4 USA-… 81dcf…     2 USA   Arthur 1881-09-… 1881-09-19 1885-0… 1885-03-04 Regu…
## 5 USA-… 34fb1…     2 USA   Cleve… 1885-03-… 1885-03-04 1889-0… 1889-03-04 Regu…
## 6 USA-… 81dcf…     2 USA   Harri… 1889-03-… 1889-03-04 1893-0… 1893-03-04 Regu…
## # … with 18 more variables: exit <chr>, exitcode <chr>,
## #   prevtimesinoffice <dbl>, posttenurefate <chr>, gender <chr>, yrborn <dbl>,
## #   yrdied <dbl>, borndate <chr>, ebirthdate <date>, deathdate <chr>,
## #   edeathdate <date>, dbpediauri <chr>, numentry <dbl>, numexit <dbl>,
## #   numexitcode <dbl>, numposttenurefate <dbl>, fties <chr>, ftcur <chr>

That’s a pretty impressive span of leaders. Let me obtain a list of the countries. This is a link from the Archigos website to the work of Gleditsch and Ward. The dates that they store are colon rather than dash separated so that needs to be fixed, then I convert the dates to valid date format. There is also a problem with the text encoding [at least on this Linux workstation] for the Ivory Coast. I suspect it is an accent mark.

History of Countries: Gleditsch and Ward

iisystem <- read.delim(url("http://www.ksgleditsch.com/data/iisystem.dat"), col.names=c("ccode","idacr","CountryName","startD","endD"), stringsAsFactors = FALSE)
iisystem <- iisystem %>% mutate(startD = str_replace_all(startD, ":", "-"))
iisystem <- iisystem %>% mutate(endD = str_replace_all(endD, ":", "-"))
iisystem$CountryName[[108]] <- "Ivory Coast"
iisystem$startD <- as_date(dmy(iisystem$startD))
iisystem$endD <- as_date(dmy(iisystem$endD))
iisystem <- iisystem %>% mutate(IISstartYear = year(startD), IISendYear = year(endD))

Some Data Management

There are two datasets that I will want to create to use to analyse this. I am likely to want a dataset of country years and a dataset of leader years. After putting these together, I note that there is actually only one leader that leads two distinct country codes. I am putting this code at the top because others may find it useful.

Country Years

I want to create all valid years for each of the countries identified by the Gleditsch and Ward set of countries. This is a bit of a hack using apply and dimensions but it works. Basically, here is the idea. Use lapply over a list that is just a sequence of row length and apply a function. A row number is the input to the function, create a temporary named vector to operate on in tempd and create a data.frame to pass back with the appropriate sequence of years between the start and end years along with some useful identifiers. The result is a list. To collapse the list, do.call and rbind – binding the rows – do the trick. One can left join them (the result and iisystem) back together as a sanity check.

# Build a grid of countries and years
DI <- as.integer(dim(iisystem)[[1]])
tseq <-function(x) {
tempd <- iisystem[x,]
data.frame(ccode = tempd$ccode, CountryName = as.character(tempd$CountryName), idacr=as.character(tempd$idacr), year=seq(tempd$IISstartYear, tempd$IISendYear, by=1), IISstartYear = tempd$IISstartYear, IISendYear = tempd$IISendYear, startD = tempd$startD, endD = tempd$endD) 
}
CSTS <- lapply(seq(1,DI), function(x) { tseq(x) } )
CSTS.Data <- data.frame(do.call(rbind, CSTS))
CSTS.Data$CountryName <- as.character(CSTS.Data$CountryName)
CSTS.Data$idacr <- as.character(CSTS.Data$idacr)
# That gets it.  Down to nt=17565.

CSTS.Data is my result. It has been saved in a subdirectory Archigos-etc of my data on GitHub. You can load it with:

CSTS.Data <- readRDS(url("https://github.com/robertwwalker/academic-mymod/raw/master/data/Archigos-etc/GWCSTS.rds"))
CSTS.Data <- read.csv("https://github.com/robertwwalker/academic-mymod/raw/master/data/Archigos-etc/GWCSTS.csv", stringsAsFactors=FALSE)

Now I want to accomplish the same thing with a dataset of leaders. The unit here is the leader year. Each leader in Archigos will appear at least once. The method is identical.

Archigos <- Archigos %>% group_by(obsid) %>% mutate(startYear = year(startdate), endYear = year(enddate)) %>% ungroup()
Archigos$obsid <- as.character(Archigos$obsid)
DI <- dim(Archigos)[[1]]
tseq <-function(x) {
  tempd <- Archigos[x,]
  data.frame(obsid = tempd$obsid, leader = as.character(tempd$leader), leadid = as.character(tempd$leadid), idacr=as.character(tempd$idacr), year=seq(tempd$startYear, tempd$endYear, by=1), LSY=tempd$startYear, LEY = tempd$endYear)
}
LTS <- lapply(seq(1,DI), function(x) { tseq(x) } )
LTS.Data <- data.frame(do.call(rbind, LTS))
LTS.Data$idacr <- as.character(LTS.Data$idacr)
LTS.Data$obsid <- as.character(LTS.Data$obsid)
Archigos$obsid <- as.character(Archigos$obsid)
Full.LTS <- LTS.Data %>% left_join(Archigos, by=c("obsid" = "obsid"))
# One curiosity; does any leader lead two distinct countries?  Having the ccodes allows me to calculate the standard deviation by leader.
Full.LTS %>% group_by(leadid.x) %>% summarise(CC.sd = sd(ccode)) %>% arrange(desc(CC.sd)) %>% filter(CC.sd > 0)
## # A tibble: 2 x 2
##   leadid.x                             CC.sd
##   <chr>                                <dbl>
## 1 81de4823-1e42-11e4-b4cd-db5882bf8def  6.93
## 2 821be4de-1e42-11e4-b4cd-db5882bf8def  2.67
# If countries are a proper nesting operator, then things can be made much easier.  They 
Full.LTS %>% filter(leadid.x == "81de4823-1e42-11e4-b4cd-db5882bf8def") # This one seems to be an error with implications
##         obsid          leader.x                             leadid.x idacr.x
## 1    CAN-1921              King 81de4823-1e42-11e4-b4cd-db5882bf8def     CAN
## 2    CAN-1921              King 81de4823-1e42-11e4-b4cd-db5882bf8def     CAN
## 3    CAN-1921              King 81de4823-1e42-11e4-b4cd-db5882bf8def     CAN
## 4    CAN-1921              King 81de4823-1e42-11e4-b4cd-db5882bf8def     CAN
## 5    CAN-1921              King 81de4823-1e42-11e4-b4cd-db5882bf8def     CAN
## 6    CAN-1921              King 81de4823-1e42-11e4-b4cd-db5882bf8def     CAN
## 7  CAN-1926-2              King 81de4823-1e42-11e4-b4cd-db5882bf8def     CAN
## 8  CAN-1926-2              King 81de4823-1e42-11e4-b4cd-db5882bf8def     CAN
## 9  CAN-1926-2              King 81de4823-1e42-11e4-b4cd-db5882bf8def     CAN
## 10 CAN-1926-2              King 81de4823-1e42-11e4-b4cd-db5882bf8def     CAN
## 11 CAN-1926-2              King 81de4823-1e42-11e4-b4cd-db5882bf8def     CAN
## 12   CAN-1935              King 81de4823-1e42-11e4-b4cd-db5882bf8def     CAN
## 13   CAN-1935              King 81de4823-1e42-11e4-b4cd-db5882bf8def     CAN
## 14   CAN-1935              King 81de4823-1e42-11e4-b4cd-db5882bf8def     CAN
## 15   CAN-1935              King 81de4823-1e42-11e4-b4cd-db5882bf8def     CAN
## 16   CAN-1935              King 81de4823-1e42-11e4-b4cd-db5882bf8def     CAN
## 17   CAN-1935              King 81de4823-1e42-11e4-b4cd-db5882bf8def     CAN
## 18   CAN-1935              King 81de4823-1e42-11e4-b4cd-db5882bf8def     CAN
## 19   CAN-1935              King 81de4823-1e42-11e4-b4cd-db5882bf8def     CAN
## 20   CAN-1935              King 81de4823-1e42-11e4-b4cd-db5882bf8def     CAN
## 21   CAN-1935              King 81de4823-1e42-11e4-b4cd-db5882bf8def     CAN
## 22   CAN-1935              King 81de4823-1e42-11e4-b4cd-db5882bf8def     CAN
## 23   CAN-1935              King 81de4823-1e42-11e4-b4cd-db5882bf8def     CAN
## 24   CAN-1935              King 81de4823-1e42-11e4-b4cd-db5882bf8def     CAN
## 25   CAN-1935              King 81de4823-1e42-11e4-b4cd-db5882bf8def     CAN
## 26 DOM-1876-4 Buenaventura Baez 81de4823-1e42-11e4-b4cd-db5882bf8def     DOM
## 27 DOM-1876-4 Buenaventura Baez 81de4823-1e42-11e4-b4cd-db5882bf8def     DOM
## 28 DOM-1876-4 Buenaventura Baez 81de4823-1e42-11e4-b4cd-db5882bf8def     DOM
##    year  LSY  LEY                             leadid.y ccode idacr.y
## 1  1921 1921 1926 81de4823-1e42-11e4-b4cd-db5882bf8def    20     CAN
## 2  1922 1921 1926 81de4823-1e42-11e4-b4cd-db5882bf8def    20     CAN
## 3  1923 1921 1926 81de4823-1e42-11e4-b4cd-db5882bf8def    20     CAN
## 4  1924 1921 1926 81de4823-1e42-11e4-b4cd-db5882bf8def    20     CAN
## 5  1925 1921 1926 81de4823-1e42-11e4-b4cd-db5882bf8def    20     CAN
## 6  1926 1921 1926 81de4823-1e42-11e4-b4cd-db5882bf8def    20     CAN
## 7  1926 1926 1930 81de4823-1e42-11e4-b4cd-db5882bf8def    20     CAN
## 8  1927 1926 1930 81de4823-1e42-11e4-b4cd-db5882bf8def    20     CAN
## 9  1928 1926 1930 81de4823-1e42-11e4-b4cd-db5882bf8def    20     CAN
## 10 1929 1926 1930 81de4823-1e42-11e4-b4cd-db5882bf8def    20     CAN
## 11 1930 1926 1930 81de4823-1e42-11e4-b4cd-db5882bf8def    20     CAN
## 12 1935 1935 1948 81de4823-1e42-11e4-b4cd-db5882bf8def    20     CAN
## 13 1936 1935 1948 81de4823-1e42-11e4-b4cd-db5882bf8def    20     CAN
## 14 1937 1935 1948 81de4823-1e42-11e4-b4cd-db5882bf8def    20     CAN
## 15 1938 1935 1948 81de4823-1e42-11e4-b4cd-db5882bf8def    20     CAN
## 16 1939 1935 1948 81de4823-1e42-11e4-b4cd-db5882bf8def    20     CAN
## 17 1940 1935 1948 81de4823-1e42-11e4-b4cd-db5882bf8def    20     CAN
## 18 1941 1935 1948 81de4823-1e42-11e4-b4cd-db5882bf8def    20     CAN
## 19 1942 1935 1948 81de4823-1e42-11e4-b4cd-db5882bf8def    20     CAN
## 20 1943 1935 1948 81de4823-1e42-11e4-b4cd-db5882bf8def    20     CAN
## 21 1944 1935 1948 81de4823-1e42-11e4-b4cd-db5882bf8def    20     CAN
## 22 1945 1935 1948 81de4823-1e42-11e4-b4cd-db5882bf8def    20     CAN
## 23 1946 1935 1948 81de4823-1e42-11e4-b4cd-db5882bf8def    20     CAN
## 24 1947 1935 1948 81de4823-1e42-11e4-b4cd-db5882bf8def    20     CAN
## 25 1948 1935 1948 81de4823-1e42-11e4-b4cd-db5882bf8def    20     CAN
## 26 1876 1876 1878 81de4823-1e42-11e4-b4cd-db5882bf8def    42     DOM
## 27 1877 1876 1878 81de4823-1e42-11e4-b4cd-db5882bf8def    42     DOM
## 28 1878 1876 1878 81de4823-1e42-11e4-b4cd-db5882bf8def    42     DOM
##             leader.y  startdate    eindate    enddate   eoutdate     entry
## 1               King 1921-12-29 1921-12-29 1926-06-28 1926-06-28   Regular
## 2               King 1921-12-29 1921-12-29 1926-06-28 1926-06-28   Regular
## 3               King 1921-12-29 1921-12-29 1926-06-28 1926-06-28   Regular
## 4               King 1921-12-29 1921-12-29 1926-06-28 1926-06-28   Regular
## 5               King 1921-12-29 1921-12-29 1926-06-28 1926-06-28   Regular
## 6               King 1921-12-29 1921-12-29 1926-06-28 1926-06-28   Regular
## 7               King 1926-09-25 1926-09-25 1930-08-07 1930-08-07   Regular
## 8               King 1926-09-25 1926-09-25 1930-08-07 1930-08-07   Regular
## 9               King 1926-09-25 1926-09-25 1930-08-07 1930-08-07   Regular
## 10              King 1926-09-25 1926-09-25 1930-08-07 1930-08-07   Regular
## 11              King 1926-09-25 1926-09-25 1930-08-07 1930-08-07   Regular
## 12              King 1935-10-23 1935-10-23 1948-11-15 1948-11-15   Regular
## 13              King 1935-10-23 1935-10-23 1948-11-15 1948-11-15   Regular
## 14              King 1935-10-23 1935-10-23 1948-11-15 1948-11-15   Regular
## 15              King 1935-10-23 1935-10-23 1948-11-15 1948-11-15   Regular
## 16              King 1935-10-23 1935-10-23 1948-11-15 1948-11-15   Regular
## 17              King 1935-10-23 1935-10-23 1948-11-15 1948-11-15   Regular
## 18              King 1935-10-23 1935-10-23 1948-11-15 1948-11-15   Regular
## 19              King 1935-10-23 1935-10-23 1948-11-15 1948-11-15   Regular
## 20              King 1935-10-23 1935-10-23 1948-11-15 1948-11-15   Regular
## 21              King 1935-10-23 1935-10-23 1948-11-15 1948-11-15   Regular
## 22              King 1935-10-23 1935-10-23 1948-11-15 1948-11-15   Regular
## 23              King 1935-10-23 1935-10-23 1948-11-15 1948-11-15   Regular
## 24              King 1935-10-23 1935-10-23 1948-11-15 1948-11-15   Regular
## 25              King 1935-10-23 1935-10-23 1948-11-15 1948-11-15   Regular
## 26 Buenaventura Baez 1876-12-26 1876-12-26 1878-03-02 1878-03-02 Irregular
## 27 Buenaventura Baez 1876-12-26 1876-12-26 1878-03-02 1878-03-02 Irregular
## 28 Buenaventura Baez 1876-12-26 1876-12-26 1878-03-02 1878-03-02 Irregular
##                         exit exitcode prevtimesinoffice posttenurefate gender
## 1                    Regular  Regular                 0             OK      M
## 2                    Regular  Regular                 0             OK      M
## 3                    Regular  Regular                 0             OK      M
## 4                    Regular  Regular                 0             OK      M
## 5                    Regular  Regular                 0             OK      M
## 6                    Regular  Regular                 0             OK      M
## 7                    Regular  Regular                 1             OK      M
## 8                    Regular  Regular                 1             OK      M
## 9                    Regular  Regular                 1             OK      M
## 10                   Regular  Regular                 1             OK      M
## 11                   Regular  Regular                 1             OK      M
## 12 Retired Due to Ill Health  Regular                 2             OK      M
## 13 Retired Due to Ill Health  Regular                 2             OK      M
## 14 Retired Due to Ill Health  Regular                 2             OK      M
## 15 Retired Due to Ill Health  Regular                 2             OK      M
## 16 Retired Due to Ill Health  Regular                 2             OK      M
## 17 Retired Due to Ill Health  Regular                 2             OK      M
## 18 Retired Due to Ill Health  Regular                 2             OK      M
## 19 Retired Due to Ill Health  Regular                 2             OK      M
## 20 Retired Due to Ill Health  Regular                 2             OK      M
## 21 Retired Due to Ill Health  Regular                 2             OK      M
## 22 Retired Due to Ill Health  Regular                 2             OK      M
## 23 Retired Due to Ill Health  Regular                 2             OK      M
## 24 Retired Due to Ill Health  Regular                 2             OK      M
## 25 Retired Due to Ill Health  Regular                 2             OK      M
## 26                 Irregular  Unknown                 4          Exile      M
## 27                 Irregular  Unknown                 4          Exile      M
## 28                 Irregular  Unknown                 4          Exile      M
##    yrborn yrdied   borndate ebirthdate  deathdate edeathdate
## 1    1874   1951         NA       <NA>         NA       <NA>
## 2    1874   1951         NA       <NA>         NA       <NA>
## 3    1874   1951         NA       <NA>         NA       <NA>
## 4    1874   1951         NA       <NA>         NA       <NA>
## 5    1874   1951         NA       <NA>         NA       <NA>
## 6    1874   1951         NA       <NA>         NA       <NA>
## 7    1874   1951         NA       <NA>         NA       <NA>
## 8    1874   1951         NA       <NA>         NA       <NA>
## 9    1874   1951         NA       <NA>         NA       <NA>
## 10   1874   1951         NA       <NA>         NA       <NA>
## 11   1874   1951         NA       <NA>         NA       <NA>
## 12   1874   1951         NA       <NA>         NA       <NA>
## 13   1874   1951         NA       <NA>         NA       <NA>
## 14   1874   1951         NA       <NA>         NA       <NA>
## 15   1874   1951         NA       <NA>         NA       <NA>
## 16   1874   1951         NA       <NA>         NA       <NA>
## 17   1874   1951         NA       <NA>         NA       <NA>
## 18   1874   1951         NA       <NA>         NA       <NA>
## 19   1874   1951         NA       <NA>         NA       <NA>
## 20   1874   1951         NA       <NA>         NA       <NA>
## 21   1874   1951         NA       <NA>         NA       <NA>
## 22   1874   1951         NA       <NA>         NA       <NA>
## 23   1874   1951         NA       <NA>         NA       <NA>
## 24   1874   1951         NA       <NA>         NA       <NA>
## 25   1874   1951         NA       <NA>         NA       <NA>
## 26   1812   1884 1812-07-14 1812-07-14 1884-03-14 1884-03-14
## 27   1812   1884 1812-07-14 1812-07-14 1884-03-14 1884-03-14
## 28   1812   1884 1812-07-14 1812-07-14 1884-03-14 1884-03-14
##                                                                                                                                                                                                                                                                                                   dbpediauri
## 1                                                                                                                                                                                                                                                                                                         NA
## 2                                                                                                                                                                                                                                                                                                         NA
## 3                                                                                                                                                                                                                                                                                                         NA
## 4                                                                                                                                                                                                                                                                                                         NA
## 5                                                                                                                                                                                                                                                                                                         NA
## 6                                                                                                                                                                                                                                                                                                         NA
## 7                                                                                                                                                                                                                                                                                                         NA
## 8                                                                                                                                                                                                                                                                                                         NA
## 9                                                                                                                                                                                                                                                                                                         NA
## 10                                                                                                                                                                                                                                                                                                        NA
## 11                                                                                                                                                                                                                                                                                                        NA
## 12                                                                                                                                                                                                                                                                                                        NA
## 13                                                                                                                                                                                                                                                                                                        NA
## 14                                                                                                                                                                                                                                                                                                        NA
## 15                                                                                                                                                                                                                                                                                                        NA
## 16                                                                                                                                                                                                                                                                                                        NA
## 17                                                                                                                                                                                                                                                                                                        NA
## 18                                                                                                                                                                                                                                                                                                        NA
## 19                                                                                                                                                                                                                                                                                                        NA
## 20                                                                                                                                                                                                                                                                                                        NA
## 21                                                                                                                                                                                                                                                                                                        NA
## 22                                                                                                                                                                                                                                                                                                        NA
## 23                                                                                                                                                                                                                                                                                                        NA
## 24                                                                                                                                                                                                                                                                                                        NA
## 25                                                                                                                                                                                                                                                                                                        NA
## 26 https://urldefense.proofpoint.com/v2/url?u=http-3A__dbpedia.org_resource_Buenaventura-5FB-25C3-25A1ez&d=BQID-g&c=kbmfwr1Yojg42sGEpaQh5ofMHBeTl9EI2eaqQZhHbOU&r=ZliGVSRwfirWoETOrKCh2RSnoygzVPWEk95Me9L-Kwo&m=EaKyFx9mpkhPdFxsxzvW_fiM3jbYwM3xYLjVbSFoDAg&s=BB0NoTztXPjJv_-VzVIsQU7ReKv8HdKXcPFxUvG2w68&e=
## 27 https://urldefense.proofpoint.com/v2/url?u=http-3A__dbpedia.org_resource_Buenaventura-5FB-25C3-25A1ez&d=BQID-g&c=kbmfwr1Yojg42sGEpaQh5ofMHBeTl9EI2eaqQZhHbOU&r=ZliGVSRwfirWoETOrKCh2RSnoygzVPWEk95Me9L-Kwo&m=EaKyFx9mpkhPdFxsxzvW_fiM3jbYwM3xYLjVbSFoDAg&s=BB0NoTztXPjJv_-VzVIsQU7ReKv8HdKXcPFxUvG2w68&e=
## 28 https://urldefense.proofpoint.com/v2/url?u=http-3A__dbpedia.org_resource_Buenaventura-5FB-25C3-25A1ez&d=BQID-g&c=kbmfwr1Yojg42sGEpaQh5ofMHBeTl9EI2eaqQZhHbOU&r=ZliGVSRwfirWoETOrKCh2RSnoygzVPWEk95Me9L-Kwo&m=EaKyFx9mpkhPdFxsxzvW_fiM3jbYwM3xYLjVbSFoDAg&s=BB0NoTztXPjJv_-VzVIsQU7ReKv8HdKXcPFxUvG2w68&e=
##    numentry numexit numexitcode numposttenurefate
## 1         0     1.0           0                 0
## 2         0     1.0           0                 0
## 3         0     1.0           0                 0
## 4         0     1.0           0                 0
## 5         0     1.0           0                 0
## 6         0     1.0           0                 0
## 7         0     1.0           0                 0
## 8         0     1.0           0                 0
## 9         0     1.0           0                 0
## 10        0     1.0           0                 0
## 11        0     1.0           0                 0
## 12        0     2.1           0                 0
## 13        0     2.1           0                 0
## 14        0     2.1           0                 0
## 15        0     2.1           0                 0
## 16        0     2.1           0                 0
## 17        0     2.1           0                 0
## 18        0     2.1           0                 0
## 19        0     2.1           0                 0
## 20        0     2.1           0                 0
## 21        0     2.1           0                 0
## 22        0     2.1           0                 0
## 23        0     2.1           0                 0
## 24        0     2.1           0                 0
## 25        0     2.1           0                 0
## 26        1     3.0        -999                 1
## 27        1     3.0        -999                 1
## 28        1     3.0        -999                 1
##                                                        fties ftcur startYear
## 1  Father of Ramon Baez%81e1556e-1e42-11e4-b4cd-db5882bf8def     1      1921
## 2  Father of Ramon Baez%81e1556e-1e42-11e4-b4cd-db5882bf8def     1      1921
## 3  Father of Ramon Baez%81e1556e-1e42-11e4-b4cd-db5882bf8def     1      1921
## 4  Father of Ramon Baez%81e1556e-1e42-11e4-b4cd-db5882bf8def     1      1921
## 5  Father of Ramon Baez%81e1556e-1e42-11e4-b4cd-db5882bf8def     1      1921
## 6  Father of Ramon Baez%81e1556e-1e42-11e4-b4cd-db5882bf8def     1      1921
## 7  Father of Ramon Baez%81e1556e-1e42-11e4-b4cd-db5882bf8def     1      1926
## 8  Father of Ramon Baez%81e1556e-1e42-11e4-b4cd-db5882bf8def     1      1926
## 9  Father of Ramon Baez%81e1556e-1e42-11e4-b4cd-db5882bf8def     1      1926
## 10 Father of Ramon Baez%81e1556e-1e42-11e4-b4cd-db5882bf8def     1      1926
## 11 Father of Ramon Baez%81e1556e-1e42-11e4-b4cd-db5882bf8def     1      1926
## 12 Father of Ramon Baez%81e1556e-1e42-11e4-b4cd-db5882bf8def     1      1935
## 13 Father of Ramon Baez%81e1556e-1e42-11e4-b4cd-db5882bf8def     1      1935
## 14 Father of Ramon Baez%81e1556e-1e42-11e4-b4cd-db5882bf8def     1      1935
## 15 Father of Ramon Baez%81e1556e-1e42-11e4-b4cd-db5882bf8def     1      1935
## 16 Father of Ramon Baez%81e1556e-1e42-11e4-b4cd-db5882bf8def     1      1935
## 17 Father of Ramon Baez%81e1556e-1e42-11e4-b4cd-db5882bf8def     1      1935
## 18 Father of Ramon Baez%81e1556e-1e42-11e4-b4cd-db5882bf8def     1      1935
## 19 Father of Ramon Baez%81e1556e-1e42-11e4-b4cd-db5882bf8def     1      1935
## 20 Father of Ramon Baez%81e1556e-1e42-11e4-b4cd-db5882bf8def     1      1935
## 21 Father of Ramon Baez%81e1556e-1e42-11e4-b4cd-db5882bf8def     1      1935
## 22 Father of Ramon Baez%81e1556e-1e42-11e4-b4cd-db5882bf8def     1      1935
## 23 Father of Ramon Baez%81e1556e-1e42-11e4-b4cd-db5882bf8def     1      1935
## 24 Father of Ramon Baez%81e1556e-1e42-11e4-b4cd-db5882bf8def     1      1935
## 25 Father of Ramon Baez%81e1556e-1e42-11e4-b4cd-db5882bf8def     1      1935
## 26 Father of Ramon Baez%81e1556e-1e42-11e4-b4cd-db5882bf8def     0      1876
## 27 Father of Ramon Baez%81e1556e-1e42-11e4-b4cd-db5882bf8def     0      1876
## 28 Father of Ramon Baez%81e1556e-1e42-11e4-b4cd-db5882bf8def     0      1876
##    endYear
## 1     1926
## 2     1926
## 3     1926
## 4     1926
## 5     1926
## 6     1926
## 7     1930
## 8     1930
## 9     1930
## 10    1930
## 11    1930
## 12    1948
## 13    1948
## 14    1948
## 15    1948
## 16    1948
## 17    1948
## 18    1948
## 19    1948
## 20    1948
## 21    1948
## 22    1948
## 23    1948
## 24    1948
## 25    1948
## 26    1878
## 27    1878
## 28    1878
Full.LTS %>% filter(leadid.x == "821be4de-1e42-11e4-b4cd-db5882bf8def") # Cool, someone led two countries.
##      obsid  leader.x                             leadid.x idacr.x year  LSY
## 1 SER-2006 Kostunica 821be4de-1e42-11e4-b4cd-db5882bf8def     SER 2006 2006
## 2 SER-2006 Kostunica 821be4de-1e42-11e4-b4cd-db5882bf8def     SER 2007 2006
## 3 SER-2006 Kostunica 821be4de-1e42-11e4-b4cd-db5882bf8def     SER 2008 2006
## 4 YUG-2000 Kostunica 821be4de-1e42-11e4-b4cd-db5882bf8def     YUG 2000 2000
## 5 YUG-2000 Kostunica 821be4de-1e42-11e4-b4cd-db5882bf8def     YUG 2001 2000
## 6 YUG-2000 Kostunica 821be4de-1e42-11e4-b4cd-db5882bf8def     YUG 2002 2000
## 7 YUG-2000 Kostunica 821be4de-1e42-11e4-b4cd-db5882bf8def     YUG 2003 2000
##    LEY                             leadid.y ccode idacr.y  leader.y  startdate
## 1 2008 821be4de-1e42-11e4-b4cd-db5882bf8def   340     SER Kostunica 2006-06-04
## 2 2008 821be4de-1e42-11e4-b4cd-db5882bf8def   340     SER Kostunica 2006-06-04
## 3 2008 821be4de-1e42-11e4-b4cd-db5882bf8def   340     SER Kostunica 2006-06-04
## 4 2003 821be4de-1e42-11e4-b4cd-db5882bf8def   345     YUG Kostunica 2000-10-08
## 5 2003 821be4de-1e42-11e4-b4cd-db5882bf8def   345     YUG Kostunica 2000-10-08
## 6 2003 821be4de-1e42-11e4-b4cd-db5882bf8def   345     YUG Kostunica 2000-10-08
## 7 2003 821be4de-1e42-11e4-b4cd-db5882bf8def   345     YUG Kostunica 2000-10-08
##      eindate    enddate   eoutdate   entry    exit exitcode prevtimesinoffice
## 1 2006-06-04 2008-07-07 2008-07-07 Regular Regular  Regular                 1
## 2 2006-06-04 2008-07-07 2008-07-07 Regular Regular  Regular                 1
## 3 2006-06-04 2008-07-07 2008-07-07 Regular Regular  Regular                 1
## 4 2000-10-08 2003-03-07 2003-03-07 Regular Regular  Regular                 0
## 5 2000-10-08 2003-03-07 2003-03-07 Regular Regular  Regular                 0
## 6 2000-10-08 2003-03-07 2003-03-07 Regular Regular  Regular                 0
## 7 2000-10-08 2003-03-07 2003-03-07 Regular Regular  Regular                 0
##   posttenurefate gender yrborn yrdied   borndate ebirthdate deathdate
## 1             OK      M   1944   -777 1944-03-24 1944-03-24        NA
## 2             OK      M   1944   -777 1944-03-24 1944-03-24        NA
## 3             OK      M   1944   -777 1944-03-24 1944-03-24        NA
## 4             OK      M   1944   -777 1944-03-24 1944-03-24        NA
## 5             OK      M   1944   -777 1944-03-24 1944-03-24        NA
## 6             OK      M   1944   -777 1944-03-24 1944-03-24        NA
## 7             OK      M   1944   -777 1944-03-24 1944-03-24        NA
##   edeathdate
## 1       <NA>
## 2       <NA>
## 3       <NA>
## 4       <NA>
## 5       <NA>
## 6       <NA>
## 7       <NA>
##                                                                                                                                                                                                                                                                                                   dbpediauri
## 1 https://urldefense.proofpoint.com/v2/url?u=http-3A__dbpedia.org_resource_Vojislav-5FKo-25C5-25A1tunica&d=BQID-g&c=kbmfwr1Yojg42sGEpaQh5ofMHBeTl9EI2eaqQZhHbOU&r=ZliGVSRwfirWoETOrKCh2RSnoygzVPWEk95Me9L-Kwo&m=EaKyFx9mpkhPdFxsxzvW_fiM3jbYwM3xYLjVbSFoDAg&s=mT2yDCuPIXn2Eb5KrEt4NY-wAdwyFfCy5PRtU7bwmJk&e=
## 2 https://urldefense.proofpoint.com/v2/url?u=http-3A__dbpedia.org_resource_Vojislav-5FKo-25C5-25A1tunica&d=BQID-g&c=kbmfwr1Yojg42sGEpaQh5ofMHBeTl9EI2eaqQZhHbOU&r=ZliGVSRwfirWoETOrKCh2RSnoygzVPWEk95Me9L-Kwo&m=EaKyFx9mpkhPdFxsxzvW_fiM3jbYwM3xYLjVbSFoDAg&s=mT2yDCuPIXn2Eb5KrEt4NY-wAdwyFfCy5PRtU7bwmJk&e=
## 3 https://urldefense.proofpoint.com/v2/url?u=http-3A__dbpedia.org_resource_Vojislav-5FKo-25C5-25A1tunica&d=BQID-g&c=kbmfwr1Yojg42sGEpaQh5ofMHBeTl9EI2eaqQZhHbOU&r=ZliGVSRwfirWoETOrKCh2RSnoygzVPWEk95Me9L-Kwo&m=EaKyFx9mpkhPdFxsxzvW_fiM3jbYwM3xYLjVbSFoDAg&s=mT2yDCuPIXn2Eb5KrEt4NY-wAdwyFfCy5PRtU7bwmJk&e=
## 4 https://urldefense.proofpoint.com/v2/url?u=http-3A__dbpedia.org_resource_Vojislav-5FKo-25C5-25A1tunica&d=BQID-g&c=kbmfwr1Yojg42sGEpaQh5ofMHBeTl9EI2eaqQZhHbOU&r=ZliGVSRwfirWoETOrKCh2RSnoygzVPWEk95Me9L-Kwo&m=EaKyFx9mpkhPdFxsxzvW_fiM3jbYwM3xYLjVbSFoDAg&s=mT2yDCuPIXn2Eb5KrEt4NY-wAdwyFfCy5PRtU7bwmJk&e=
## 5 https://urldefense.proofpoint.com/v2/url?u=http-3A__dbpedia.org_resource_Vojislav-5FKo-25C5-25A1tunica&d=BQID-g&c=kbmfwr1Yojg42sGEpaQh5ofMHBeTl9EI2eaqQZhHbOU&r=ZliGVSRwfirWoETOrKCh2RSnoygzVPWEk95Me9L-Kwo&m=EaKyFx9mpkhPdFxsxzvW_fiM3jbYwM3xYLjVbSFoDAg&s=mT2yDCuPIXn2Eb5KrEt4NY-wAdwyFfCy5PRtU7bwmJk&e=
## 6 https://urldefense.proofpoint.com/v2/url?u=http-3A__dbpedia.org_resource_Vojislav-5FKo-25C5-25A1tunica&d=BQID-g&c=kbmfwr1Yojg42sGEpaQh5ofMHBeTl9EI2eaqQZhHbOU&r=ZliGVSRwfirWoETOrKCh2RSnoygzVPWEk95Me9L-Kwo&m=EaKyFx9mpkhPdFxsxzvW_fiM3jbYwM3xYLjVbSFoDAg&s=mT2yDCuPIXn2Eb5KrEt4NY-wAdwyFfCy5PRtU7bwmJk&e=
## 7 https://urldefense.proofpoint.com/v2/url?u=http-3A__dbpedia.org_resource_Vojislav-5FKo-25C5-25A1tunica&d=BQID-g&c=kbmfwr1Yojg42sGEpaQh5ofMHBeTl9EI2eaqQZhHbOU&r=ZliGVSRwfirWoETOrKCh2RSnoygzVPWEk95Me9L-Kwo&m=EaKyFx9mpkhPdFxsxzvW_fiM3jbYwM3xYLjVbSFoDAg&s=mT2yDCuPIXn2Eb5KrEt4NY-wAdwyFfCy5PRtU7bwmJk&e=
##   numentry numexit numexitcode numposttenurefate fties ftcur startYear endYear
## 1        0       1           0                 0    NA    NA      2006    2008
## 2        0       1           0                 0    NA    NA      2006    2008
## 3        0       1           0                 0    NA    NA      2006    2008
## 4        0       1           0                 0    NA    NA      2000    2003
## 5        0       1           0                 0    NA    NA      2000    2003
## 6        0       1           0                 0    NA    NA      2000    2003
## 7        0       1           0                 0    NA    NA      2000    2003

There are two leaders that led multiple countries. The rest are nested. One of them makes sense, the other seems to be a bad hash.

# Not run
Full.LTS <- Full.LTS %>% mutate(TenureY = endYear - startYear)
Sanity.Check <- Full.LTS %>% group_by(obsid) %>% summarise(TenureY = mean(TenureY), CountYm1 = n() - 1)
Sanity.Check <- Sanity.Check %>% mutate(ShouldBeZero = TenureY - CountYm1)
table(Sanity.Check$ShouldBeZero)
#    0 
# 3409 

Full.LTS is my result. It has been saved in a subdirectory Archigos-etc of my data on GitHub. It contains some merged back sanity checks also. You can load it with:

Full.LTS <- readRDS(url("https://github.com/robertwwalker/academic-mymod/raw/master/data/Archigos-etc/Archigos-LTS.rds"))
Full.LTS <- read.csv("https://github.com/robertwwalker/academic-mymod/raw/master/data/Archigos-etc/Archigos-LTS.csv", stringsAsFactors=FALSE)

On Leaders

The tidyverse will make this workable. The first step is to visualise some features. Using the R equivalent of a pivot table, let’s summarise the frequency of leaders. Because the leader is the basic unit of analysis, we want to group the data by country and then count the number of leaders for each country. The resulting dataset should be collapsed to the number of countries.

Shorty <- Archigos %>% group_by(idacr) %>% summarise(count=n())
skimr::skim(Shorty)
Table 1: Data summary
Name Shorty
Number of rows 189
Number of columns 2
_______________________
Column type frequency:
character 1
numeric 1
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
idacr 0 1 3 3 0 189 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
count 0 1 18.04 20.39 1 6 11 24 141 ▇▂▁▁▁

Hmm, there are countries that only had one leader. I wonder who they are.

Shorty %>% filter(count==1)
## # A tibble: 8 x 2
##   idacr count
##   <chr> <int>
## 1 BAV       1
## 2 BRU       1
## 3 ERI       1
## 4 KZK       1
## 5 MNG       1
## 6 SSD       1
## 7 UZB       1
## 8 VIE       1

The names are not extremely informative but two are post-Soviet republics, Eritrea is very young, and that some are countries that ceased to exist shortly after the start point of the data. What are the other extremum? What countries have had more than 50 leaders?

Shorty %>% filter(count > 50) %>%   ggplot(aes(x=idacr, y=count, label=idacr, fill=cut_interval(count, 5))) + geom_label(color="white") + scale_fill_colorblind(guide=FALSE) + theme_minimal() + ggtitle("Countries with More than 50 Leaders") + labs(x="", y="Number of Leaders") + theme(axis.text.x = element_blank())

France, Greece, Japan, and Switzerland have had a large number of leaders during this period. All of the top 50 are in Europe or Latin America, save Japan. What does the overall data look like?

ggplot(data = Shorty) +
    aes(x = count) +
    geom_histogram(bins = 100, fill = '#9c179e') +
    labs(title = 'How Many Leaders since 1875?',
         x = 'Number of Leaders',
         y = 'Number of Countries',
         caption = 'data from Archigos') +
    theme_economist_white()

On Duration

Archigos %>% mutate(Duration = difftime(enddate, startdate, units="weeks")/52) %>% ggplot(aes(Duration)) + geom_histogram(bins=50, fill = '#9c179e') + theme_economist_white() + labs(y="Frequency", x="Tenure of Leader in Weeks [divided by 52]")
## Don't know how to automatically pick scale for object of type difftime. Defaulting to continuous.

Who leads longest?

Archigos %>% mutate(Duration = difftime(enddate, startdate, units="weeks")) %>% select(leader,Duration) %>% arrange(desc(Duration)) %>% mutate(DurationInYears = Duration / 52)
## # A tibble: 3,409 x 3
##    leader                      Duration       DurationInYears
##    <chr>                       <drtn>         <drtn>         
##  1 Francis Joseph I            3546.429 weeks 68.20056 weeks 
##  2 Nikola I Petrovic-Njegos    2944.286 weeks 56.62089 weeks 
##  3 George I                    2607.144 weeks 50.13738 weeks 
##  4 Pedro II                    2573.144 weeks 49.48353 weeks 
##  5 Castro                      2564.286 weeks 49.31319 weeks 
##  6 Carol I                     2524.572 weeks 48.54946 weeks 
##  7 Hassanal Bolkiah            2517.149 weeks 48.40671 weeks 
##  8 Nasir Ad-Din                2485.286 weeks 47.79397 weeks 
##  9 Tz'u Hsi                    2464.429 weeks 47.39287 weeks 
## 10 Hussein Ibn Talal El-Hashim 2425.863 weeks 46.65121 weeks 
## # … with 3,399 more rows

What happens to leaders?

The data includes the post tenure fate of all leaders. For now, I will take the data and build a bar graph of their fates as they are recorded.

Archigos %>% ggplot(., aes(posttenurefate)) + geom_bar(fill="purple") + coord_flip() + labs(y="Frequency", x="") + theme(axis.text.y = element_text(color = "purple", size = 8))

Discrete Annual Data

Now I want to analyse this as discrete data in annual form. I will use the lovely lubridate to extract the components of the date and then create a pivot table of sorts. It is important to note that there are a few problems here. There are some -999 values in the birth year.

Archigos <- Archigos %>% mutate(YearBorn = na_if(yrborn, -999))
Archigos <- Archigos %>% mutate(ExitAge = endYear - YearBorn)

How Old are Leaders When They Exit?

The smooth of these values is messy, but I will plot a simple static graph.

Archigos %>% filter(ExitAge > 12) %>% group_by(ExitAge) %>% summarise(countS=n()) %>% ggplot(., aes(x=ExitAge, y=countS))+ geom_point() + geom_smooth(method = "loess", span=0.25) + labs(title="Age at End of Tenure", x="Age in Years", y="Count") 
## `geom_smooth()` using formula 'y ~ x'

Or as a barplot.

Archigos %>% filter(ExitAge > 12) %>% ggplot(., aes(x=ExitAge, fill=cut_number(ExitAge, n=5))) + geom_bar() + scale_fill_viridis_d(guide=FALSE) + labs(title="Age at End of Tenure", x="Age in Years", y="Count") 

Yearly Turnovers

Now I can visualise turnovers on a yearly basis. NB: THis needs reworking.

YearlyD <- Archigos %>% group_by(endYear) %>% summarise(Endeds = n()) %>% filter(endYear < 2015)
YearlyD$label <- emoji("pencil2")
p <- YearlyD %>% ggplot(., aes(x=endYear, y=Endeds, label=label, colour="steelblue")) + geom_text(family="EmojiOne", size=10, position=position_nudge(x = 5, y = 5), color="steelblue") + geom_line(colour="steelblue") + theme_minimal() + labs(x="Year", y="Number of Leader-Tenures Ending")
panim <- p +  transition_reveal(endYear)
animate(panim, nframes=200)

gganimate is a very neat tool. Now on to looking at what is happening at the country year and year level. In some ways, the previous is deceiving because the number of countries is widely varying over time. I build the country year and leader year data in the beginning. I will just recreate the Archigos version with the new variables that we have created in the interim.

Archigos <- Archigos %>% mutate(startYear = year(startdate), endYear = year(enddate))
DI <- dim(Archigos)[[1]]
tseq <-function(x) {
  tempd <- Archigos[x,]
  data.frame(obsid = tempd$obsid, leaderL = as.character(tempd$leader), leadidL = as.character(tempd$leadid), year=seq(tempd$startYear, tempd$endYear, by=1), LSY=tempd$startYear, LEY = tempd$endYear)
}
LTS <- lapply(seq(1,DI), function(x) { tseq(x) } )
LTS.Data <- data.frame(do.call(rbind, LTS))
LTS.Data$obsid <- as.character(LTS.Data$obsid)
Archigos$obsid <- as.character(Archigos$obsid)
Full.LTS <- LTS.Data %>% left_join(Archigos, by=c("obsid" = "obsid"))
# One curiosity; does any leader lead two distinct countries?  Having the ccodes allows me to calculate the standard deviation by leader.

So that gives me the basic country year dataset that defines the various existence years from countries. Neat. Now I need to create the leader year version of Archigos and merge it into my country year template for existence.

Full.LTS$Event <- (Full.LTS$year==Full.LTS$endYear)
Keepers <- Full.LTS %>% filter(year>1874 & year < 2015) 
Shorty2 <- Keepers %>% group_by(year) %>% summarise(FailRate = mean(Event))
Shorty2$label <- emoji("pencil2")
p <- Shorty2 %>% ggplot(., aes(x=year, y=FailRate, label=label, colour='steelblue')) + geom_text(family="EmojiOne", size=10, position=position_nudge(x = 5, y = 0.03), color='steelblue') + geom_line(color='steelblue') + theme_minimal() + labs(x="Year", y="Proportion of Leaders Ending") + ylim(c(0,0.5))
panim <- p +  transition_reveal(year)
animate(panim, nframes=200)

Averaging Turnover?

What if we decided to group the countries in the aforementioned data of Keepers and, instead, think about the cross-section nature of turnover?

library(ggrepel)
PlotSet <- Keepers %>% filter(year>1874 & year < 2015) %>% group_by(idacr) %>% summarise(Turnover.Pct = mean(Event)) %>% arrange(desc(Turnover.Pct)) %>% mutate(id=row_number(), facetID = cut_number(Turnover.Pct, n=4)) 
NameAbb <- iisystem %>% select(idacr, CountryName)
PlotSet <- PlotSet %>% left_join(NameAbb, by=c("idacr"="idacr"))
knitr::kable(PlotSet)
idacr Turnover.Pct id facetID CountryName
SWZ 0.9929078 1 (0.212,0.993] Switzerland
BOS 0.4791667 2 (0.212,0.993] Bosnia-Herzegovina
FRN 0.4588235 3 (0.212,0.993] France
LAT 0.4102564 4 (0.212,0.993] Latvia
LAT 0.4102564 4 (0.212,0.993] Latvia
ZAN 0.4000000 5 (0.212,0.993] Zanzibar
EST 0.3947368 6 (0.212,0.993] Estonia
EST 0.3947368 6 (0.212,0.993] Estonia
JPN 0.3693694 7 (0.212,0.993] Japan
GRC 0.3657407 8 (0.212,0.993] Greece
SPN 0.3518519 9 (0.212,0.993] Spain
ITA 0.3396226 10 (0.212,0.993] Italy/Sardinia
VIE 0.3333333 11 (0.212,0.993] NA
ECU 0.3301435 12 (0.212,0.993] Ecuador
RVN 0.3225806 13 (0.212,0.993] Vietnam, Republic of
CZR 0.3125000 14 (0.212,0.993] Czech Republic
BEL 0.2931937 15 (0.212,0.993] Belgium
PAN 0.2911392 16 (0.212,0.993] Panama
SOL 0.2884615 17 (0.212,0.993] Solomon Islands
BOL 0.2871795 18 (0.212,0.993] Bolivia
SLV 0.2857143 19 (0.212,0.993] Slovenia
MAC 0.2812500 20 (0.212,0.993] Macedonia (Former Yugoslav Republic of)
NOR 0.2810458 21 (0.212,0.993] Norway
HAI 0.2771084 22 (0.212,0.993] Haiti
HAI 0.2771084 22 (0.212,0.993] Haiti
PAK 0.2688172 23 (0.212,0.993] Pakistan
PAR 0.2670157 24 (0.212,0.993] Paraguay
DOM 0.2666667 25 (0.212,0.993] Dominican Republic
URU 0.2592593 26 (0.212,0.993] Uruguay
ARG 0.2553191 27 (0.212,0.993] Argentina
CHL 0.2553191 28 (0.212,0.993] Chile
PER 0.2473118 29 (0.212,0.993] Peru
COM 0.2452830 30 (0.212,0.993] Comoros
GNB 0.2452830 31 (0.212,0.993] Guinea-Bissau
ICE 0.2446809 32 (0.212,0.993] Iceland
SAL 0.2432432 33 (0.212,0.993] El Salvador
BNG 0.2413793 34 (0.212,0.993] Bangladesh
COL 0.2391304 35 (0.212,0.993] Colombia
ETM 0.2352941 36 (0.212,0.993] East Timor
SWD 0.2349727 37 (0.212,0.993] Sweden
GRG 0.2258065 38 (0.212,0.993] Georgia
GMY 0.2247191 39 (0.212,0.993] Germany (Prussia)
AUL 0.2244898 40 (0.212,0.993] Australia
COS 0.2191011 41 (0.212,0.993] Costa Rica
HON 0.2178771 42 (0.212,0.993] Honduras
AUS 0.2155172 43 (0.212,0.993] Austria
SLO 0.2142857 44 (0.212,0.993] Slovakia
THI 0.2134831 45 (0.212,0.993] Thailand
VEN 0.2134831 46 (0.212,0.993] Venezuela
ALB 0.2131148 47 (0.212,0.993] Albania
ISR 0.2117647 48 (0.146,0.212] Israel
DEN 0.2114286 49 (0.146,0.212] Denmark
BRA 0.2102273 50 (0.146,0.212] Brazil
GUA 0.2102273 51 (0.146,0.212] Guatemala
YPR 0.2068966 52 (0.146,0.212] Yemen, People’s Republic of
OFS 0.2045455 53 (0.146,0.212] Orange Free State
TRA 0.2045455 54 (0.146,0.212] Transvaal
BEN 0.2028986 55 (0.146,0.212] Benin
TUR 0.2011494 56 (0.146,0.212] Turkey (Ottoman Empire)
AZE 0.2000000 57 (0.146,0.212] Azerbaijan
IND 0.2000000 58 (0.146,0.212] India
LAO 0.2000000 59 (0.146,0.212] Laos
LIT 0.2000000 60 (0.146,0.212] Lithuania
LIT 0.2000000 60 (0.146,0.212] Lithuania
PNG 0.2000000 61 (0.146,0.212] Papua New Guinea
NTH 0.1964286 62 (0.146,0.212] Netherlands
MLD 0.1935484 63 (0.146,0.212] Moldova
NIG 0.1911765 64 (0.146,0.212] Nigeria
UKG 0.1907514 65 (0.146,0.212] United Kingdom
IRE 0.1880342 66 (0.146,0.212] Ireland
NIC 0.1867470 67 (0.146,0.212] Nicaragua
NEP 0.1860465 68 (0.146,0.212] Nepal
BUI 0.1846154 69 (0.146,0.212] Burundi
FJI 0.1818182 70 (0.146,0.212] Fiji
SYR 0.1818182 71 (0.146,0.212] Syria
NEW 0.1742424 72 (0.146,0.212] New Zealand
SIE 0.1692308 73 (0.146,0.212] Sierra Leone
SUD 0.1690141 74 (0.146,0.212] Sudan
YUG 0.1683168 75 (0.146,0.212] Yugoslavia
MAA 0.1666667 76 (0.146,0.212] Mauritania
SUR 0.1666667 77 (0.146,0.212] Surinam
UKR 0.1666667 78 (0.146,0.212] Ukraine
HUN 0.1652174 79 (0.146,0.212] Hungary
POL 0.1636364 80 (0.146,0.212] Poland
LEB 0.1627907 81 (0.146,0.212] Lebanon
AFG 0.1626506 82 (0.146,0.212] Afghanistan
AFG 0.1626506 82 (0.146,0.212] Afghanistan
ROK 0.1625000 83 (0.146,0.212] Korea, Republic of
SRI 0.1625000 84 (0.146,0.212] Sri Lanka (Ceylon)
SER 0.1600000 85 (0.146,0.212] Serbia
SER 0.1600000 85 (0.146,0.212] Serbia
JAM 0.1587302 86 (0.146,0.212] Jamaica
USA 0.1566265 87 (0.146,0.212] NA
BFO 0.1538462 88 (0.146,0.212] Burkina Faso (Upper Volta)
IRQ 0.1530612 89 (0.146,0.212] Iraq
MEX 0.1524390 90 (0.146,0.212] Mexico
BUL 0.1523179 91 (0.146,0.212] Bulgaria
CAN 0.1515152 92 (0.146,0.212] Canada
CZE 0.1494253 93 (0.146,0.212] Czechoslovakia
GHA 0.1486486 94 (0.146,0.212] Ghana
MYA 0.1428571 95 (0.0844,0.146] Myanmar (Burma)
MYA 0.1428571 95 (0.0844,0.146] Myanmar (Burma)
VNM 0.1428571 96 (0.0844,0.146] Vietnam (Annam/Cochin China/Tonkin)
LBR 0.1419753 97 (0.0844,0.146] Liberia
RUM 0.1419753 98 (0.0844,0.146] Rumania
CYP 0.1406250 99 (0.0844,0.146] Cyprus
SAF 0.1393443 100 (0.0844,0.146] South Africa
CRO 0.1379310 101 (0.0844,0.146] Croatia
CHN 0.1366460 102 (0.0844,0.146] China
BHU 0.1359223 103 (0.0844,0.146] Bhutan
CUB 0.1338583 104 (0.0844,0.146] Cuba
ALG 0.1311475 105 (0.0844,0.146] Algeria
ALG 0.1311475 105 (0.0844,0.146] Algeria
MAG 0.1279070 106 (0.0844,0.146] Madagascar (Malagasy)
MAG 0.1279070 106 (0.0844,0.146] Madagascar
CEN 0.1269841 107 (0.0844,0.146] Central African Republic
NIR 0.1269841 108 (0.0844,0.146] Niger
PHI 0.1265823 109 (0.0844,0.146] Philippines
BAR 0.1250000 110 (0.0844,0.146] Barbados
KOS 0.1250000 111 (0.0844,0.146] Kosovo
LES 0.1250000 112 (0.0844,0.146] Lesotho
POR 0.1250000 113 (0.0844,0.146] Portugal
LUX 0.1233766 114 (0.0844,0.146] Luxembourg
MON 0.1214953 115 (0.0844,0.146] Mongolia
FIN 0.1171171 116 (0.0844,0.146] Finland
MLT 0.1166667 117 (0.0844,0.146] Malta
UGA 0.1166667 118 (0.0844,0.146] Uganda
INS 0.1139241 119 (0.0844,0.146] Indonesia
MAS 0.1132075 120 (0.0844,0.146] Mauritius
CON 0.1129032 121 (0.0844,0.146] Congo
MLI 0.1129032 122 (0.0844,0.146] Mali
BHM 0.1111111 123 (0.0844,0.146] Bahamas
BLR 0.1111111 124 (0.0844,0.146] Belarus (Byelorussia)
TAJ 0.1111111 125 (0.0844,0.146] Tajikistan
GUY 0.1090909 126 (0.0844,0.146] Guyana
MAL 0.1076923 127 (0.0844,0.146] Malaysia
KYR 0.1071429 128 (0.0844,0.146] Kyrgyz Republic
GDR 0.1020408 129 (0.0844,0.146] German Democratic Republic
TRI 0.1016949 130 (0.0844,0.146] Trinidad and Tobago
LIB 0.0985915 131 (0.0844,0.146] Libya
LIB 0.0985915 131 (0.0844,0.146] Libya
TOG 0.0983607 132 (0.0844,0.146] Togo
GFR 0.0958904 133 (0.0844,0.146] German Federal Republic
GUI 0.0952381 134 (0.0844,0.146] Guinea
DRV 0.0909091 135 (0.0844,0.146] Vietnam, Democratic Republic of
ZAM 0.0892857 136 (0.0844,0.146] Zambia
CAM 0.0882353 137 (0.0844,0.146] Cambodia (Kampuchea)
EGY 0.0882353 138 (0.0844,0.146] Egypt
EGY 0.0882353 138 (0.0844,0.146] Egypt
KUW 0.0857143 139 (0.0844,0.146] Kuwait
IRN 0.0849673 140 (0.0844,0.146] Iran (Persia)
BLZ 0.0847458 141 (0.0844,0.146] Belize
DRC 0.0833333 142 [0,0.0844] Congo, Democratic Republic of (Zaire)
GAB 0.0833333 143 [0,0.0844] Gabon
TAW 0.0833333 144 [0,0.0844] Taiwan
TUN 0.0813953 145 [0,0.0844] Tunisia
TUN 0.0813953 145 [0,0.0844] Tunisia
SOM 0.0810811 146 [0,0.0844] Somalia
RUS 0.0794702 147 [0,0.0844] Russia (Soviet Union)
ETH 0.0789474 148 [0,0.0844] Ethiopia
ARM 0.0769231 149 [0,0.0844] Armenia
YEM 0.0750000 150 [0,0.0844] Yemen (Arab Republic of Yemen)
MAD 0.0746269 151 [0,0.0844] Maldives
TBT 0.0731707 152 [0,0.0844] Tibet
MAW 0.0727273 153 [0,0.0844] Malawi
CAP 0.0697674 154 [0,0.0844] Cape Verde
CDI 0.0677966 155 [0,0.0844] Ivory Coast
CHA 0.0677966 156 [0,0.0844] Chad
QAT 0.0638298 157 [0,0.0844] Qatar
SWA 0.0600000 158 [0,0.0844] Swaziland
BOT 0.0576923 159 [0,0.0844] Botswana
KEN 0.0545455 160 [0,0.0844] Kenya
KOR 0.0540541 161 [0,0.0844] Korea
SAU 0.0537634 162 [0,0.0844] Saudi Arabia
RWA 0.0526316 163 [0,0.0844] Rwanda
SEN 0.0526316 164 [0,0.0844] Senegal
TAZ 0.0526316 165 [0,0.0844] Tanzania/Tanganyika
MZM 0.0476190 166 [0,0.0844] Mozambique
AUH 0.0444444 167 [0,0.0844] Austria-Hungary
MOR 0.0416667 168 [0,0.0844] Morocco
MOR 0.0416667 168 [0,0.0844] Morocco
JOR 0.0408163 169 [0,0.0844] Jordan
ZIM 0.0392157 170 [0,0.0844] Zimbabwe (Rhodesia)
NAM 0.0384615 171 [0,0.0844] Namibia
TKM 0.0384615 172 [0,0.0844] Turkmenistan
EQG 0.0370370 173 [0,0.0844] Equatorial Guinea
SIN 0.0344828 174 [0,0.0844] Singapore
PRK 0.0289855 175 [0,0.0844] Korea, People’s Republic of
OMA 0.0277778 176 [0,0.0844] Oman
DJI 0.0256410 177 [0,0.0844] Djibouti
ANG 0.0243902 178 [0,0.0844] Angola
MNG 0.0232558 179 [0,0.0844] Montenegro
MNG 0.0232558 179 [0,0.0844] Montenegro
BAH 0.0222222 180 [0,0.0844] Bahrain
UAE 0.0222222 181 [0,0.0844] United Arab Emirates
GAM 0.0196078 182 [0,0.0844] Gambia
CAO 0.0178571 183 [0,0.0844] Cameroon
BRU 0.0000000 184 [0,0.0844] Brunei
ERI 0.0000000 185 [0,0.0844] Eritrea
KZK 0.0000000 186 [0,0.0844] Kazakhstan
SSD 0.0000000 187 [0,0.0844] South Sudan
UZB 0.0000000 188 [0,0.0844] Uzbekistan

Now a picture.

PlotSet %>% ggplot(., aes(x=Turnover.Pct)) + geom_histogram(fill="purple", binwidth=0.05) + ggtitle("Turnover by Country")

Switzerland turnover is 1.

The Fun Stuff: Durations

Richard Tucker did some work on binary time series cross section data for their paper 20! years ago [his with Neal Beck, Jonathan Katz]. David Armstrong’s btscs takes a binary time series and turns it into a set of discrete time durations. Grouped duration data is their name for it. There’s a rather neat stats feature to the fact that these grouped duration data are exactly the same as a discrete time Cox proportional hazards model. In a related paper, two of the most clever people that I know – David Carter and Curt Signorino – showed that a Taylor-series approximation to the cubic polynomial in that duration approximates just about anything reasonable because it can embed two inflection points for the baseline hazard. Of course, there are assumptions to the model but let’s explore. First, a static picture.

Even easier

It turns out that the leader-year data have duration data embedded in them. Two conditions create the data that we need. First, the actual duration is created by taking calendar year minus startYear. Second, the events are one if calendar year is equal to endYear. Plus, leader-spells are properly nested in countries so we can measure this easily.

Full.LTS$spell <- Full.LTS$year - Full.LTS$startYear
p <- Full.LTS %>% filter(!is.na(posttenurefate)) %>% mutate(howEndedF = factor(posttenurefate)) %>% ggplot(aes(x=spell)) + geom_density(aes(color=howEndedF)) + scale_color_viridis_d(guide=FALSE)+ theme_minimal() + labs(title="How Long Do Leaders Last Given Fates?", x="Leader Duration in Years") 
p

Animate it.

panim <- Full.LTS %>% filter(!is.na(posttenurefate)) %>% mutate(howEndedF = factor(posttenurefate)) %>% ggplot(aes(x=spell)) + geom_density(aes(color=howEndedF, fill=howEndedF)) + scale_color_viridis_d(guide=FALSE) + scale_fill_viridis_d(guide=FALSE) + theme_minimal() + labs(title="How Long Do Leaders Last Given Fates?", subtitle = "Ended in: {closest_state}", x="Leader Duration in Years") + transition_states(howEndedF, transition_length = 10, state_length = 40) + enter_fade() + exit_fade()
animate(panim, nframes=400)