Inequality in Austria

Author

Peter Baumgartner

Published

2024-09-01 21:22

Preface

WATCH OUT: This is work in progress

This is my personal learning material and is therefore neither a scientific peer reviewed article nor an authoritative textbook.

With this book I want to apply my statistical knowledge using the R language to investigate social inequality for Austria, my country of birth and where I am living.

I am writing this book as a text for others to read because that forces me to become explicit and explain all my learning outcomes more carefully.

Please keep in mind that this text is not written by an expert but by a learner.

Glossary

I am using the {glossary} package to create links to glossary entries.]

R Code 1 : Load glossary

Listing / Output 1: Install and load the glossary package with the appropriate glossary.yml file
## 1. Install the glossary package:
## https://debruine.github.io/glossary/

library(glossary)

## If you want to use my glossary.yml file:

## 1. fork my repo
##    https://github.com/petzi53/glossary-pb

## 2. Download the `glossary.yml` file from
##    https://github.com/petzi53/glossary-pb/blob/master/glossary.yml)

## 3. Store the file on your hard disk
##    and change the following path accordingly

glossary::glossary_path("../glossary-pb/glossary.yml")

If you hover with your mouse over the double underlined links it opens an window with the appropriate glossary text. Try this example: Z-Score.

To apply the glossary into this text I have used the {glossary} package by Lisa DeBruine.

WATCH OUT! No guarantee for correct information in Glossary

There is no guarantee that the glossary text – as well as the whole book – contains correct information. Whenever possible I have mentioned the source of the glossary entry. (You will find active links to the source in the original glossary file at GitHub)

Sometimes I have used abbreviation for the source, but I need still to provide a key what this short references mean.

If you fork the repository of this quarto book then the glossary will not work out of the box. Load down the glossary.yml file from my glossary-pb GitHub repo, store it on your hard disk and change the path in the code chunk Listing / Output 1.

In any case I am the only responsible person for this text.

R Code

For R code I am using mainly the Tidyverse Style Guide with some additions from Google’s R Style Guide. These additons are:

  • Start the names of private functions with a dot.
  • Don’t use base::attach().
  • No right-hand assignments.
  • Qualify namespace.

Especially the last point (qualifying namespace) is important for my learning. Besides preventing conflicts with functions of identical names from different packages it helps me to learn (or remember) which function belongs to which package. I think this justifies the small overhead and helps to make R code chunks self-sufficient. (No previous package loading, or library calls in the setup chunk.) To foster learning the relation between function and package I embrace the package name with curly brakes and format it in bold. Additionally I will add a special annex file “Used packages” with an alphabetically sorted list of short package descriptions.

I am mentioning package name explicitly also for the default installation of base R. This wouldn’t be necessary but it helps me to understand where the base R functions come from. What follows is a list of base R packages of the system library included into every installation and attached (opened) by default:

  • {base}: The R Base Package
  • {datsets}: The R Datasets Package
  • {graphics}: The R Graphics Package
  • {grDevices}: The R Graphics Devices and Support for Colours and Fonts
  • {methods}: Formal Methods and Classes
  • {stats}: The R Stats Package
  • {utils}: The R Utils Package

But I will not always mention the name of the argument inside a function. When it is clear then I will follow the advice from Hadley Wickham:

When you call a function, you typically omit the names of data arguments, because they are used so commonly. If you overridethe default value of an argument, use the full name (tidyverse style guide).

Get data

Example 1 : Get Austrian Data

R Code 2 : List and meaning of all country and region codes

Listing / Output 2: Get list and meaning of all country and region codes and save it to WID_countries.
Code
url <- "_archive/datasets/WID_fulldataset_AT_27-06-2024_14_57_47/WID_countries.csv"

WID_countries <- readr::read_delim(
    file = url, 
    delim = ";", 
    col_types = "ccccc",
    escape_double = FALSE, 
    trim_ws = TRUE
    )

save_data_file("chap0", WID_countries, "WID_countries.rds")

(For this R code chunk is no output available)

R Code 3 : Austria data file

Listing / Output 3: Get Austria data from the WID_data_AT.csv file
Code
url <-  "_archive/datasets/WID_fulldataset_AT_27-06-2024_14_57_47/WID_data_AT.csv"

WID_data_AT <- readr::read_delim(
    file = url, 
    delim = ";", 
    col_types = "cccddcc",
    escape_double = FALSE, 
    trim_ws = TRUE
    )

save_data_file("chap0", WID_data_AT, "WID_data_AT.rds")

(For this R code chunk is no output available)

R Code 4 : Get metadata

Listing / Output 4: Get Austrian metadata from the WID_metadata_AT.csv file
Code
url <- "_archive/datasets/WID_fulldataset_AT_27-06-2024_14_57_47/WID_metadata_AT.csv"

WID_metadata_AT <- read_delim(
    file = url, 
    delim = ";", 
    col_types = "ccccccccccccccccccc", # 19 character columns
    escape_double = FALSE, 
    trim_ws = TRUE
    )

save_data_file("chap0", WID_metadata_AT, "WID_metadata_AT.rds")

(For this R code chunk is no output available)

Inspect data

Example 2 : Inspect Austrian data

R Code 5 : Inspect country codes

Listing / Output 5: List and meaning of all country and region codes
Code
WID_countries <- base::readRDS("data/chap0/WID_countries.rds")

glue::glue("############################################################")
glue::glue("Glimpse first rows")
glue::glue("############################################################")
glue::glue(" ")
dplyr::glimpse(WID_countries)

glue::glue(" ")
glue::glue("############################################################")
glue::glue("Display first and last row and 8 random rows between")
glue::glue("############################################################")
glue::glue(" ")
my_glance_data(WID_countries, seed = 420)

glue::glue(" ")
glue::glue("############################################################")
glue::glue("Display rows for Austria and Germany")
glue::glue("############################################################")
glue::glue(" ")
WID_countries |> 
    dplyr::filter(alpha2 == "AT" | alpha2 == "DE")
#> ############################################################
#> Glimpse first rows
#> ############################################################
#>  
#> Rows: 388
#> Columns: 5
#> $ alpha2    <chr> "AD", "AE", "AF", "AG", "AI", "AL", "AM", "AN", "AO", "AR", …
#> $ titlename <chr> "Andorra", "the United Arab Emirates", "Afghanistan", "Antig…
#> $ shortname <chr> "Andorra", "United Arab Emirates", "Afghanistan", "Antigua a…
#> $ region    <chr> "Europe", "Asia", "Asia", "Americas", "Americas", "Europe", …
#> $ region2   <chr> "Western Europe", "West Asia", "South Asia", "Caribbean", "C…
#>  
#> ############################################################
#> Display first and last row and 8 random rows between
#> ############################################################
#>  
#> # A tibble: 10 × 6
#>      obs alpha2 titlename                      shortname          region region2
#>    <int> <chr>  <chr>                          <chr>              <chr>  <chr>  
#>  1     1 AD     Andorra                        Andorra            Europe Wester…
#>  2    21 BG     Bulgaria                       Bulgaria           Europe Easter…
#>  3    73 EG     Egypt                          Egypt              Africa North …
#>  4   101 HN     Honduras                       Honduras           Ameri… Centra…
#>  5   165 NE     Niger                          Niger              Africa West A…
#>  6   170 NP     Nepal                          Nepal              Asia   South …
#>  7   261 SE     Sweden                         Sweden             Europe Wester…
#>  8   349 UZ     Uzbekistan                     Uzbekistan         Asia   Centra…
#>  9   376 XN-MER MENA (at market exchange rate) MENA (at market e… <NA>   <NA>   
#> 10   388 ZZ     Zanzibar                       Zanzibar           Africa East A…
#>  
#> ############################################################
#> Display rows for Austria and Germany
#> ############################################################
#>  
#> # A tibble: 2 × 5
#>   alpha2 titlename shortname region region2       
#>   <chr>  <chr>     <chr>     <chr>  <chr>         
#> 1 AT     Austria   Austria   Europe Western Europe
#> 2 DE     Germany   Germany   Europe Western Europe

  • alpha2: the 2-letter country/region code 1.
  • titlename: the name of the country/region, including the definite article, if any.
  • shortname: the name of the country/region, excluding the definite article.
  • region: broad world region to which the country belongs.
  • region2: detailed world region to which the country belongs.

R Code 6 : Inspect metadata

Listing / Output 6: Inspect metadata for Austrian data file
Code
WID_metadata_AT <- base::readRDS("data/chap0/WID_metadata_AT.rds")

glue::glue("############################################################")
glue::glue("Glimpse first rows")
glue::glue("############################################################")
glue::glue(" ")
dplyr::glimpse(WID_metadata_AT)

glue::glue(" ")
glue::glue("############################################################")
glue::glue("Get useful summary statistics")
glue::glue("############################################################")
glue::glue(" ")
skimr::skim(WID_metadata_AT)
#> ############################################################
#> Glimpse first rows
#> ############################################################
#>  
#> Rows: 944
#> Columns: 19
#> $ country       <chr> "AT", "AT", "AT", "AT", "AT", "AT", "AT", "AT", "AT", "A…
#> $ variable      <chr> "acaincj992", "accmhni992", "accmhni999", "accmhoi992", …
#> $ age           <chr> "992", "992", "999", "992", "999", "992", "999", "992", …
#> $ pop           <chr> "j", "i", "i", "i", "i", "i", "i", "i", "i", "i", "i", "…
#> $ countryname   <chr> "Austria", "Austria", "Austria", "Austria", "Austria", "…
#> $ shortname     <chr> "Post-tax disposable income", "Consumption of fixed capi…
#> $ simpledes     <chr> "Post-tax private income corresponds to all sources of i…
#> $ technicaldes  <chr> "Post-tax disposable income=Pre-tax income-Taxes on prod…
#> $ shorttype     <chr> "Average", "Average", "Average", "Average", "Average", "…
#> $ longtype      <chr> "Average income or wealth between two percentiles. When …
#> $ shortpop      <chr> "equal-split adults", "individuals", "individuals", "ind…
#> $ longpop       <chr> "The base unit is the individual (rather than the househ…
#> $ shortage      <chr> "Adults", "Adults", "All Ages", "Adults", "All Ages", "A…
#> $ longage       <chr> "The population is comprised of individuals over age 20.…
#> $ unit          <chr> "EUR", "EUR", "EUR", "EUR", "EUR", "EUR", "EUR", "EUR", …
#> $ source        <chr> "[URL][URL_LINK]https://wid.world/document/why-is-europe…
#> $ method        <chr> "Summary of data construction by year (see source for de…
#> $ extrapolation <chr> "[[1980, 2003], [2020, 2022]]", NA, NA, NA, NA, NA, NA, …
#> $ data_points   <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
#>  
#> ############################################################
#> Get useful summary statistics
#> ############################################################
#> 
Data summary
Name WID_metadata_AT
Number of rows 944
Number of columns 19
_______________________
Column type frequency:
character 19
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
country 0 1.00 2 2 0 1 0
variable 0 1.00 10 10 0 944 0
age 0 1.00 3 3 0 38 0
pop 0 1.00 1 1 0 4 0
countryname 0 1.00 7 7 0 1 0
shortname 0 1.00 6 118 0 237 0
simpledes 722 0.24 33 990 0 33 0
technicaldes 645 0.32 61 283 0 85 0
shorttype 0 1.00 5 34 0 14 0
longtype 0 1.00 7 425 0 14 0
shortpop 0 1.00 4 18 0 4 0
longpop 0 1.00 63 131 0 4 0
shortage 0 1.00 4 8 0 38 0
longage 0 1.00 55 73 0 38 0
unit 14 0.99 3 35 0 8 0
source 301 0.68 104 597 0 25 0
method 323 0.66 53 1439 0 48 0
extrapolation 876 0.07 14 28 0 6 0
data_points 936 0.01 24 24 0 1 0

The dataset contains seventeen (+ two) variables:

  • country: the country/region code.
  • variable: the variable code to which the metadata refer.
  • age: the code of the age group to which the population refer.
  • pop: the code of the population unit to which the population refer.
  • countryname: the name of the country/region as it would appear in an English sentence.
  • shortname: the name of the country/region as it would appear on its own in English.
  • simpledes: decription of the variable in plain English.
  • technicaldes: description of the variable via accounting identities.
  • shorttype: short description of the variable type (average, aggregate, share, index, etc.) in plain English.
  • longtype: longer, more detailed description of the variable type in plain English.
  • shortpop: short description of the population unit (individuals, tax units, equal-split, etc.) in plain English.
  • longpop: longer, more detailed description of the population unit in plain English.
  • shortage: short description of the age group (adults, full population, etc.) in plain English.
  • longage: longer, more detailed description of the age group in plain English.
  • unit: unit of the variable (the 3-letter currency code for monetary amounts).
  • source: The source(s) used to compute the data.
  • method: Methological details describing how the data was constructed and/or caveats.
  • extrapolation: Not explained in the “README.md” file. Just the first row contains data.
  • data_points: Not explained in the “README.md” file, but does not data.

There is an explanation for the last two columns in the WID vignette:

In some countries, many data points are the result of interpolations or extrapolations. For example, estimates in most African countries are based on surveys that are only realized every few years, which we interpolate to produce yearly series and perform regional aggregations.

R Code 7 : Inspect Austrian data

Listing / Output 7: Variables of the Austrian data file
Code
WID_data_AT <- base::readRDS("data/chap0/WID_data_AT.rds")

glue::glue("############################################################")
glue::glue("Glimpse first rows")
glue::glue("############################################################")
glue::glue(" ")
dplyr::glimpse(WID_data_AT)

glue::glue(" ")
glue::glue("############################################################")
glue::glue("Display first and last row and 8 random rows between")
glue::glue("############################################################")
glue::glue(" ")
my_glance_data(WID_data_AT)

glue::glue(" ")
glue::glue("############################################################")
glue::glue("Get useful summary statistics")
glue::glue("############################################################")
glue::glue(" ")
skimr::skim(WID_data_AT)
#> ############################################################
#> Glimpse first rows
#> ############################################################
#>  
#> Rows: 226,643
#> Columns: 7
#> $ country    <chr> "AT", "AT", "AT", "AT", "AT", "AT", "AT", "AT", "AT", "AT",…
#> $ variable   <chr> "ehfcari999", "ehfcari999", "ehfcari999", "ehfcari999", "eh…
#> $ percentile <chr> "p0p100", "p0p100", "p0p100", "p0p100", "p0p100", "p0p100",…
#> $ year       <dbl> 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,…
#> $ value      <dbl> 35.38029, 35.36562, 37.71131, 35.39840, 35.05839, 36.70093,…
#> $ age        <chr> "999", "999", "999", "999", "999", "999", "999", "999", "99…
#> $ pop        <chr> "i", "i", "i", "i", "i", "i", "i", "i", "i", "i", "i", "i",…
#>  
#> ############################################################
#> Display first and last row and 8 random rows between
#> ############################################################
#>  
#> # A tibble: 10 × 8
#>       obs country variable   percentile  year      value age   pop  
#>     <int> <chr>   <chr>      <chr>      <dbl>      <dbl> <chr> <chr>
#>  1      1 AT      ehfcari999 p0p100      1990     35.4   999   i    
#>  2  46208 AT      adiincj992 p76p77      2009  57135.    992   j    
#>  3  54425 AT      asacgei999 p0p100      2013   3570.    999   i    
#>  4  61413 AT      lcfghgi999 p50p90      1995     12.3   999   i    
#>  5  61605 AT      lcfghgi999 p57p58      2012     10.3   999   i    
#>  6  74362 AT      lpfghgi999 p13p14      2019      6.18  999   i    
#>  7  99556 AT      aptincj992 p0p93       2018 559153.    992   j    
#>  8 147812 AT      wtbmpxi999 p0p100      2021      0.550 999   i    
#>  9 178200 AT      tcaincj992 p79p100     2018  41333.    992   j    
#> 10 226643 AT      tptincj992 p9p100      2022   7024.    992   j    
#>  
#> ############################################################
#> Get useful summary statistics
#> ############################################################
#> 
Data summary
Name WID_data_AT
Number of rows 226643
Number of columns 7
_______________________
Column type frequency:
character 5
numeric 2
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
country 0 1 2 2 0 1 0
variable 0 1 10 10 0 944 0
percentile 0 1 4 14 0 388 0
age 0 1 3 3 0 38 0
pop 0 1 1 1 0 4 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
year 0 1 2.00172e+03 1.305000e+01 1950 1993.00 2003.00 2012.00 2.023000e+03 ▁▁▅▇▇
value 0 1 2.38163e+09 3.793671e+10 -81807966208 0.65 680.99 56968.25 2.533468e+12 ▇▁▁▁▁
  • country: country/region code (see Listing / Output 5).
  • variable: WID variable code (see Variable codes).
  • percentile: WID percentile code (see Percentile Codes).
  • year: the year of the data point.
  • value: the value of the data point.
  • age: code indicating the age group to which the data point refers to.
  • pop: code indicating the population unit to which the data point refers to.

How interpreting the data codes?

Variable codes

The meaning of each variable is described in the metadata files. The complete WID variable codes (i.e. sptinc992j) obey to the following logic:

  • the first letter indicates the variable type (i.e. “s” for share).
  • the next five letters indicate the income/wealth/other concept (i.e. “ptinc” for pre-tax national income).
  • the next three digits indicate the age group (i.e. “992” for adults).
  • the last letter indicate the population unit (i.e. “j” for equal-split).

Percentile Codes

There are two types of percentiles on WID.world : (1) group percentiles and (2) generalized percentiles. The interpretation of income (or wealth) average, share or threshold series depends on which type of percentile is looked at.

Group Percentiles

Group percentiles are defined as follows:

Bottom and top

  • p0p50 (bottom 50% of the population),
  • p50p90 (next 40%),
  • p90p100 (top 10%),
  • p99p100 (top 1%),
  • p0p90 (bottom 90%),
  • p0p99 (bottom 99% of the population),
  • p99.9p100 (top 0.1%),
  • p99.99p100 (top 0.01%)

Deciles

  • p0p10 (bottom 10% of the population, i.e. first decile),
  • p10p20 (next 10%, i.e. second decile),
  • p20p30 (next 10%, i.e. third decile),
  • p30p40 (next 10%, i.e. fourth decile),
  • p40p50 (next 10%, i.e. fifth decile),
  • p50p60 (next 10%, i.e. sixth decile),
  • p60p70 (next 10%, i.e. seventh decile),
  • p70p80 (next 10%, i.e. eighth decile),
  • p80p90 (next 10%, i.e. ninth decile),

For each group percentiles, we provide the associated income or wealth shares, averages and thresholds.

  • group percentile shares correspond to the income (or wealth) share held by a given group percentile. For instance, the fiscal income share of group p0p50 is the share of total fiscal income captured by the bottom 50% group.
  • group percentile averages correspond to the income or wealth annual income (or wealth) average within a given group percentile group. For instance, the fiscal income average of group p0p50 is the average annual fiscal income of the bottom 50% group.
  • group percentile thresholds correspond to the minimum income (or wealth) level required to belong to a given group percentile. For instance, the fiscal income threshold of group p90p100 is the minimum annual fiscal income required to belong to the top 10% group.
Important 1

When the data allows, the WID.world website makes it possible to produce shares, averages and thresholds for any group percentile (say, for instance, average income of p43p99.92). These are not stored in bulk data tables.

For certain countries, because of data limitations, we are not able to provide the list of group percentiles described above. We instead store specific group percentiles (these can be, depending on the countries p90p95, p95p100, p95p99, p99.5p100, p99.5p99.9, p99.75p100, p99.95p100, p99.95p99.99, p99.995p100, p99.9p99.95, p99.9p99.99 or p99p99.5).

Generalized Percentiles

Generalized percentiles (g-percentiles) are defined to as follows: p0, p1, p2, …, p99, p99.1, p99.2, …, p99.9, p99.91, p99.92, …, p99.99, p99.991, p99.992 ,…, p99.999. There are 127 g-percentiles in total.

For each g-percentiles, we provide shares, averages, top averages and thresholds.

g-percentile shares

correspond to the income (or wealth) share captured by the population group above a given g-percentile value.

Note 1: Examples for g-percentile shares
  • The fiscal income share of g-percentile p90 corresponds to the fiscal income share held by the top 10% group.
  • The fiscal income share of g-percentile p99.9 corresponds to the fiscal income share of the top 0.1% income group and so on.

By construction, the fiscal income share of g-percentile p0 corresponds to the share held by 100% of the population and is equal to 100%. Formally, the g-percentile share at g-percentile pX corresponds to the share of the top (100-X)% group.

g-percentile averages

correspond to the average income or wealth between two consecutive g-percentiles.

  • Average income of g-percentile p0 corresponds to the average annual income of the bottom 1% group, p2 corresponds to the next 1% group and so on until p98 (the 1% population group below the top 1%).
  • Average income of g-percentile p99 corresponds to average annual of group percentile p99p99.1 (i.e. the bottom 10% group of earners within the top 1% group of earners), p99.1 corresponds to the next 0.1% group, p99.2 corresponds to the next 0.1% group and so on until p99.8.
  • Average income of p99.9 corresponds to the average annual income of group percentile p99.9p99.91 (i.e. the bottom 10% group of earners within the top 0.1% group of earners), p99.91 corresponds to the next 0.01% group, p99.92 corresponds to the next 0.01% group and so on until p99.98.
  • Average income of p99.99, corresponds to the average annual income of group percentile p99.99p99.991 (i.e. the bottom 10% group within the top 0.01% group of earners), p99.991 corresponds to the next 0.001%, p99.992 corresponds to the next 0.001% group and so on until p99.999 (average income of the top 0.001% group).
Note 2: Examples for the g-percentile-averages
  • The average fiscal income of g-percentile p50 is equal to the average annual fiscal income of the p50p51 group percentile (i.e. the average annual income of the population group earning more than 50% of the population and less than the top 49% of the population).
  • The average fiscal income of g-percentile p99 is equal to the average annual fiscal income within group percentile p99p99.1 (i.e. a group representing 0.1% of the total population earning more than 99% of the population but less than the top 0.9% of the population).

g-percentile top-averages

correspond to the average income or wealth above a given g-percentile threshold.

Note 3: Examples for the g-percentile-top-averages
  • The top average fiscal income at g-percentile p50 corresponds to the average annual fiscal income of individuals earning more than 50% of the population.
  • The top average fiscal income at g-percentile p90 corresponds to the average annual fiscal income of the top 10% group.

g-percentile thresholds

correspond to minimum income (or wealth) level required to belong to the population group above a given g-percentile value.

Note 4: Examples for the g-percentile-thresholds
  • The fiscal income threshold at g-percentile p90 corresponds to the minimum annual fiscal income required to belong to the top 10% group.
  • The fiscal income threshold at g-percentile p99.9 corresponds to the minimum annual fiscal income required to belong to the top 0.1% group.

Formally, the g-percentile threshold at g-percentile pX corresponds to the threshold of the top (100-X)% group.

Resources

Resource 1 : Resources used for this Quarto book

Literature

  • Alvaredo, F., Chancel, L., Piketty, T., Saez, E., & Zucman, G. (2018). The World Inequality Report 2018. Harvard University Press. (Alvaredo et al. 2018)
  • Chancel, L., Piketty, T., Saez, E., Zucman, G., & Duflo, E. (2022). World Inequality Report 2022. Harvard University Press. (Chancel et al. 2022)
  • Gethin, A., Martínez-toleda, C., & Piketty, T. (2021). Political Cleavages and Social Inequalities - A Study of Fifty Democracies, 1948-2020: A Study of Fifty Democracies, 1948–2020. Harvard University Press. (Gethin, Martínez-Toleda, and Piketty 2021)
  • Piketty, T. (2020). Capital and Ideology (A. Goldhammer, Trans.; Illustrated Edition). Harvard University Press. (Piketty 2020)
  • Piketty, T. (2022). A Brief History of Equality (S. Rendall, Trans.). Harvard University Press. (Piketty 2022)
  • Piketty, T., & Goldhammer, A. (2017). Capital in the Twenty-First Century. Harvard University Press. (Piketty and Goldhammer 2017)

Websites

  • Author Collective “World Inequality Lab”. (2024). WID - World Inequality Database. WID. The source for global inequality data. Open access, high quality wealth and income inequality data developed by an international academic consortium. (Author Collective ’World Inequality Lab’ 2024)
  • Gethin, A., Martinez-Toledo, C., & Piketty, T. (2024). WPID - World Political Cleavages and Inequality Database. Who votes for whom? The WPID provides the most comprehensive available data on the structure of the vote in contemporary democracies, drawing on a rich set of electoral surveys conducted since 1948. (Gethin, Martinez-Toledono, and Piketty 2024)

Methodology

  • World Inequality Lab. (2024). Distributional National Accounts Guidelines. (World Inequality Lab 2024d)
  • Codes Dictionary. (n.d.). WID - World Inequality Database. Retrieved June 28, 2024, from https://wid.world/codes-dictionary/. (World Inequality Lab 2024a)
  • Summary table. (n.d.). WID - World Inequality Database. Retrieved June 28, 2024, from https://wid.world/summary-table/. (World Inequality Lab 2024c)
  • World Inequality Lab. (2024). Generalized Pareto interpolation. WID - World Inequality Database. https://wid.world/gpinter/. (World Inequality Lab 2024b)

R Packages

  • Blanchet, T. (2024). Thomasblanchet/gpinter [R]. https://github.com/thomasblanchet/gpinter (Original work published 2016). R package for generalized Pareto interpolation. (Blanchet, Fournier, and Piketty 2017).
  • Blanchet, T. (2024). Thomasblanchet/wid-r-tool [R]. https://github.com/thomasblanchet/wid-r-tool (Original work published 2017). R package to download data from the WID.world database. (Blanchet 2024)

Icons

  • Austria fav icon by Icons8 But I have used many other icons by Icons8 for the Quarto callout boxes.
  • Favicon.io — The Ultimate Favicon Generator (Free). (n.d.). Retrieved June 26, 2024.

Session Info

Session Info

Code
sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value
#>  version  R version 4.4.1 (2024-06-14)
#>  os       macOS Sonoma 14.6.1
#>  system   x86_64, darwin20
#>  ui       X11
#>  language (EN)
#>  collate  en_US.UTF-8
#>  ctype    en_US.UTF-8
#>  tz       Europe/Vienna
#>  date     2024-08-29
#>  pandoc   3.3 @ /usr/local/bin/ (via rmarkdown)
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package     * version    date (UTC) lib source
#>  base64enc     0.1-3      2015-07-28 [1] CRAN (R 4.4.0)
#>  cli           3.6.3      2024-06-21 [1] CRAN (R 4.4.1)
#>  commonmark    1.9.1      2024-01-30 [1] CRAN (R 4.4.0)
#>  crayon        1.5.3      2024-06-20 [1] CRAN (R 4.4.0)
#>  curl          5.2.1      2024-03-01 [1] CRAN (R 4.4.0)
#>  digest        0.6.36     2024-06-23 [1] CRAN (R 4.4.0)
#>  dplyr         1.1.4      2023-11-17 [1] CRAN (R 4.4.0)
#>  evaluate      0.24.0     2024-06-10 [1] CRAN (R 4.4.0)
#>  fansi         1.0.6      2023-12-08 [1] CRAN (R 4.4.0)
#>  fastmap       1.2.0      2024-05-15 [1] CRAN (R 4.4.0)
#>  generics      0.1.3      2022-07-05 [1] CRAN (R 4.4.0)
#>  glossary    * 1.0.0.9003 2024-08-05 [1] Github (debruine/glossary@05e4a61)
#>  glue          1.7.0      2024-01-09 [1] CRAN (R 4.4.0)
#>  htmltools     0.5.8.1    2024-04-04 [1] CRAN (R 4.4.0)
#>  htmlwidgets   1.6.4      2023-12-06 [1] CRAN (R 4.4.0)
#>  jsonlite      1.8.8      2023-12-04 [1] CRAN (R 4.4.0)
#>  knitr         1.48       2024-07-07 [1] CRAN (R 4.4.0)
#>  lifecycle     1.0.4      2023-11-07 [1] CRAN (R 4.4.0)
#>  magrittr      2.0.3      2022-03-30 [1] CRAN (R 4.4.0)
#>  markdown      1.13       2024-06-04 [1] CRAN (R 4.4.0)
#>  pillar        1.9.0      2023-03-22 [1] CRAN (R 4.4.0)
#>  pkgconfig     2.0.3      2019-09-22 [1] CRAN (R 4.4.0)
#>  purrr         1.0.2      2023-08-10 [1] CRAN (R 4.4.0)
#>  R6            2.5.1      2021-08-19 [1] CRAN (R 4.4.0)
#>  repr          1.1.7      2024-03-22 [1] CRAN (R 4.4.0)
#>  rlang         1.1.4      2024-06-04 [1] CRAN (R 4.4.0)
#>  rmarkdown     2.27       2024-05-17 [1] CRAN (R 4.4.0)
#>  rstudioapi    0.16.0     2024-03-24 [1] CRAN (R 4.4.0)
#>  rversions     2.1.2      2022-08-31 [1] CRAN (R 4.4.0)
#>  sessioninfo   1.2.2      2021-12-06 [1] CRAN (R 4.4.0)
#>  skimr         2.1.5      2022-12-23 [1] CRAN (R 4.4.0)
#>  stringi       1.8.4      2024-05-06 [1] CRAN (R 4.4.0)
#>  stringr       1.5.1      2023-11-14 [1] CRAN (R 4.4.0)
#>  tibble        3.2.1      2023-03-20 [1] CRAN (R 4.4.0)
#>  tidyr         1.3.1      2024-01-24 [1] CRAN (R 4.4.0)
#>  tidyselect    1.2.1      2024-03-11 [1] CRAN (R 4.4.0)
#>  utf8          1.2.4      2023-10-22 [1] CRAN (R 4.4.0)
#>  vctrs         0.6.5      2023-12-01 [1] CRAN (R 4.4.0)
#>  withr         3.0.1      2024-07-31 [1] CRAN (R 4.4.0)
#>  xfun          0.46       2024-07-18 [1] CRAN (R 4.4.0)
#>  xml2          1.3.6      2023-12-04 [1] CRAN (R 4.4.0)
#>  yaml          2.3.10     2024-07-26 [1] CRAN (R 4.4.0)
#> 
#>  [1] /Library/Frameworks/R.framework/Versions/4.4-x86_64/Resources/library
#> 
#> ──────────────────────────────────────────────────────────────────────────────

References

Alvaredo, Facundo, Lucas Chancel, Thomas Piketty, Emmanuel Saez, and Gabriel Zucman. 2018. The World Inequality Report 2018. Cambridge, Massachusetts London: Harvard University Press.
Author Collective ’World Inequality Lab’. 2024. “WID - World Inequality Database.” https://wid.world/.
Blanchet, Thomas. 2024. “Wid: Download Data from WID.world.” https://github.com/WIDworld/wid-r-tool.
Blanchet, Thomas, Juliette Fournier, and Thomas Piketty. 2017. “Generalized Pareto Curves: Theory and Applications.” http://wid.world/document/blanchet-t-fournier-j-piketty-t-generalized-pareto-curves-theory-applications-2017/.
Chancel, Lucas, Thomas Piketty, Emmanuel Saez, Gabriel Zucman, and Esther Duflo. 2022. World Inequality Report 2022, World Inequality Lab. Cambridge, Massachusetts London, England: Harvard University Press. https://wir2022.wid.world/.
Gethin, Amory, Clara Martínez-Toleda, and Thomas Piketty. 2021. Political Cleavages and Social Inequalities - a Study of Fifty Democracies, 1948-2020: A Study of Fifty Democracies, 19482020. Cambridge, Massachusetts London, England: Harvard University Press.
Gethin, Amory, Clara Martinez-Toledono, and Thomas Piketty. 2024. “WPID - World Political Cleavages and Inequality Database.” https://wpid.world/.
Piketty, Thomas. 2020. Capital and Ideology. Illustrated Edition. Cambridge, Massachusetts ; London, England: Harvard University Press.
———. 2022. A Brief History of Equality. Cambridge, Massachusetts: Harvard University Press.
Piketty, Thomas, and Arthur Goldhammer. 2017. Capital in the Twenty-First Century. Harvard University Press.
World Inequality Lab. 2024a. “Codes Dictionary.” https://wid.world/codes-dictionary/.
———. 2024b. “Generalized Pareto Interpolation.” https://wid.world/gpinter/.
———. 2024c. “Summary Table.” https://wid.world/summary-table/.
———. 2024d. “Distributional National Accounts Guidelines,” February.

  1. Regions within country XX are indicated as XX-YY, where YY is the region code. World regions are indicated as XX and XX-MER, the first one using purchasing power parities (the default) and the second one using market exchange rates. See the technical note “Prices and currency conversions in WID.world” for details.↩︎