Aggregate propensity to consume by age of the reference person - experimental statistics - icw_sr_08

Data - Eurostat

age

Code
icw_sr_08 %>%
  left_join(age, by = "age") %>%
  group_by(age, Age) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
age Age Nobs
TOTAL Total 85
Y_LT30 Less than 30 years 84
Y30-39 From 30 to 39 years 81
Y35-44 From 35 to 44 years 81
Y40-49 From 40 to 49 years 81
Y45-54 From 45 to 54 years 81
Y50-59 From 50 to 59 years 81
Y55-64 From 55 to 64 years 81
Y60-69 From 60 to 69 years 81
Y65-74 From 65 to 74 years 81
Y_GE70 70 years or over 81
Y_GE75 75 years or over 81
Y_LT35 Less than 35 years 81
Y30-44 From 30 to 44 years 27
Y45-59 From 45 to 59 years 27
Y_GE60 60 years or over 27
UNK Unknown 6

unit

Code
icw_sr_08 %>%
  left_join(unit, by = "unit") %>%
  group_by(unit, Unit) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
unit Unit Nobs
PC_DI Percentage of disposable income 1147

geo

Code
icw_sr_08 %>%
  left_join(geo, by = "geo") %>%
  group_by(geo, Geo) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

time

Code
icw_sr_08 %>%
  group_by(time) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
time Nobs
2010 405
2015 404
2020 338

2010

Code
icw_sr_08 %>%
  filter(time == "2010") %>%
  select(age, geo, values) %>%
  left_join(geo, by = "geo") %>%
  spread(age, values) %>%
  select(geo, Geo, TOTAL, everything()) %>%
  {if (is_html_output()) print_table(.) else .}
geo Geo TOTAL UNK Y_GE60 Y_GE70 Y_GE75 Y_LT30 Y_LT35 Y30-39 Y30-44 Y35-44 Y40-49 Y45-54 Y45-59 Y50-59 Y55-64 Y60-69 Y65-74
AT Austria 89.1 NA 83.2 79.3 79.2 125.1 117.2 96.8 85.7 88.6 85.8 84.9 77.8 85.1 88.3 90.6 87.5
BE Belgium 89.3 NA 98.8 106.6 105.0 90.6 90.2 86.2 86.7 87.9 87.7 82.2 79.3 78.0 80.7 92.7 100.6
BG Bulgaria 54.9 NA 65.7 NA NA 72.9 NA NA 62.7 NA NA NA 50.1 NA NA NA NA
CY Cyprus 93.0 NA 76.3 76.5 77.1 114.5 107.8 105.1 106.0 104.8 100.8 96.2 91.1 86.7 74.5 72.9 78.9
CZ Czechia NA NA 73.3 NA NA 64.5 NA NA 71.5 NA NA NA 65.4 NA NA NA NA
DE Germany 82.9 NA 92.6 94.3 91.7 98.5 84.2 78.3 78.7 77.1 76.4 76.7 77.7 79.0 83.3 92.1 95.7
DK Denmark 95.1 NA 92.6 96.3 104.5 135.2 109.2 96.4 94.8 95.9 94.2 90.7 89.5 85.0 86.7 88.8 88.7
EE Estonia 67.2 NA 66.1 67.4 66.1 76.9 69.1 65.9 66.6 69.0 63.2 65.1 66.6 71.5 68.1 64.2 66.3
EL Greece 116.5 NA 97.3 90.7 92.1 227.7 183.0 150.1 128.7 140.3 130.1 124.4 110.6 111.7 97.2 103.9 92.9
ES Spain 84.4 NA 76.5 76.5 74.4 118.9 98.3 86.8 88.8 87.8 92.2 90.3 86.4 83.5 77.3 76.4 75.6
FI Finland 79.3 NA 71.8 66.4 62.6 101.2 90.8 82.0 80.8 79.0 81.0 78.3 78.5 77.1 76.2 76.6 77.9
FR France 71.1 NA 65.2 61.9 60.1 90.6 84.1 78.7 78.2 77.1 73.6 68.5 66.8 65.2 65.7 68.3 66.7
HR Croatia 91.9 NA 93.5 93.4 89.9 105.4 98.0 95.2 96.1 97.4 97.9 92.4 89.8 87.1 87.4 92.7 97.7
HU Hungary 82.0 NA 80.8 79.9 77.8 92.5 87.6 82.8 82.6 82.2 82.3 80.7 80.4 79.9 79.6 80.9 82.8
IE Ireland 82.5 NA 76.5 67.8 66.8 103.3 85.7 74.5 76.8 76.0 80.0 85.8 82.9 84.1 80.3 82.0 73.5
IT Italy 77.4 NA 68.6 69.4 66.6 113.6 98.7 89.9 89.3 87.5 84.9 80.6 76.8 73.5 68.9 66.3 67.8
LT Lithuania 75.3 NA 79.9 82.6 82.3 84.4 75.8 68.3 71.7 70.6 75.0 73.5 72.9 69.6 69.9 73.0 79.5
LU Luxembourg 70.5 NA 66.3 61.5 56.0 81.1 77.4 76.1 75.0 74.5 72.5 70.2 69.5 68.0 69.4 69.1 66.9
LV Latvia 87.8 NA 86.4 86.4 86.3 90.4 86.2 81.1 85.7 87.0 92.9 87.7 86.2 83.3 84.0 84.4 86.2
MT Malta 92.9 NA 86.1 88.7 86.0 92.1 89.9 96.0 98.0 102.6 104.0 95.6 88.3 81.9 79.0 83.5 87.3
PL Poland 73.5 NA 71.6 74.7 75.0 82.9 77.5 77.2 75.9 75.8 73.2 68.7 68.4 66.7 67.3 67.9 71.0
PT Portugal 91.8 NA 77.9 76.8 79.9 121.3 115.2 107.4 106.7 105.0 103.8 94.9 89.1 83.9 79.0 76.8 70.0
RO Romania 98.5 NA 93.6 95.6 96.4 128.3 107.5 98.6 99.5 98.2 103.8 98.8 93.6 87.9 89.2 91.1 92.1
SE Sweden 82.5 NA 78.5 89.7 89.4 113.3 100.9 81.7 76.2 77.8 79.9 76.1 69.5 69.0 68.0 71.6 73.6
SI Slovenia 82.7 NA 78.7 76.0 76.0 110.1 99.6 95.5 92.0 89.1 82.6 78.4 77.3 75.7 77.3 80.7 79.8
SK Slovakia 70.8 NA 69.4 66.9 64.7 72.0 69.0 74.1 76.5 78.9 75.7 69.3 66.7 64.1 62.2 68.2 72.2
UK United Kingdom NA NA 76.4 NA NA 101.5 NA NA 74.1 NA NA NA 77.3 NA NA NA NA

2015

Code
icw_sr_08 %>%
  filter(time == "2015") %>%
  select(age, geo, values) %>%
  left_join(geo, by = "geo") %>%
  spread(age, values) %>%
  arrange(Geo) %>%
  select(geo, Geo, TOTAL, everything()) %>%
  {if (is_html_output()) print_table(.) else .}
geo Geo TOTAL Y_GE70 Y_GE75 Y_LT30 Y_LT35 Y30-39 Y35-44 Y40-49 Y45-54 Y50-59 Y55-64 Y60-69 Y65-74
AT Austria 80.1 76.2 71.6 111.3 97.7 83.3 84.1 81.9 74.5 73.1 75.2 81.9 87.1
BE Belgium 81.8 106.0 106.5 92.8 79.6 75.3 77.0 78.3 78.0 73.8 73.9 80.0 88.2
BG Bulgaria 72.6 86.7 90.8 109.4 93.4 87.4 89.7 78.6 65.0 64.2 63.7 65.4 74.4
HR Croatia 93.9 92.2 87.0 111.1 99.8 91.9 94.0 100.2 92.0 84.9 86.9 90.5 96.6
CY Cyprus 88.1 80.1 81.6 109.5 104.2 99.3 85.2 86.7 96.5 92.4 81.5 72.1 73.2
CZ Czechia 66.9 79.2 73.5 72.6 64.8 69.0 66.7 66.1 65.8 61.4 63.2 69.8 76.5
DK Denmark 70.5 73.0 73.1 120.4 97.9 70.5 65.2 62.7 60.2 58.2 62.7 71.8 74.2
EE Estonia 66.6 71.3 74.4 74.7 78.7 76.4 71.0 68.8 61.9 56.1 58.9 63.8 65.1
EA Euro area (EA11-1999, EA12-2001, EA13-2007, EA15-2008, EA16-2009, EA17-2011, EA18-2014, EA19-2015, EA20-2023) 78.4 77.6 75.8 100.1 89.7 81.3 79.1 78.0 76.3 75.4 74.2 76.2 79.7
EA20 Euro area – 20 countries (from 2023) 78.6 77.8 76.0 100.1 89.8 81.4 79.3 78.3 76.4 75.5 74.4 76.4 79.9
EU European Union (EU6-1958, EU9-1973, EU10-1981, EU12-1986, EU15-1995, EU25-2004, EU27-2007, EU28-2013, EU27-2020) 79.2 79.8 78.3 97.9 88.0 80.7 79.6 78.9 76.8 75.6 75.1 77.0 80.5
EU27_2020 European Union - 27 countries (from 2020) 78.0 78.5 77.2 99.1 87.8 80.3 79.1 77.8 75.6 74.3 73.4 75.3 78.8
FI Finland 81.3 73.1 71.3 106.8 98.8 87.3 83.9 81.6 79.4 76.5 73.1 75.2 77.3
FR France 67.5 59.1 60.2 91.5 83.8 75.2 72.3 70.2 66.3 64.3 60.4 60.5 61.5
DE Germany 81.2 89.3 84.0 94.0 86.1 79.5 78.3 76.6 74.9 76.4 80.5 87.3 95.0
EL Greece 110.2 85.1 84.5 186.3 149.4 126.0 125.8 126.9 117.7 111.4 101.2 95.9 93.1
HU Hungary 84.6 86.2 84.4 106.5 93.5 85.9 84.9 81.3 79.5 82.1 82.2 81.4 85.7
IE Ireland 74.5 71.7 74.0 98.8 82.1 73.0 71.7 71.5 72.3 71.4 73.8 77.0 74.3
IT Italy 76.2 NA NA NA NA NA NA NA NA NA NA NA NA
LV Latvia 72.4 84.9 82.7 78.0 75.0 73.2 74.3 72.8 67.5 64.4 65.7 69.1 74.2
LT Lithuania 62.6 66.1 69.2 87.7 66.9 65.3 63.8 59.1 58.9 60.5 59.1 58.6 58.8
LU Luxembourg 73.3 69.4 63.7 76.6 72.9 78.8 76.8 70.5 73.0 74.1 72.8 75.3 75.6
MT Malta 85.3 76.2 72.5 99.6 95.2 88.6 85.7 88.5 90.0 82.1 77.1 84.1 87.7
NL Netherlands 79.4 92.4 92.7 119.7 96.2 74.4 68.7 68.6 73.7 74.8 73.6 79.0 86.5
PL Poland 68.5 67.8 67.7 77.9 70.9 69.4 70.9 70.6 65.6 63.1 64.7 66.2 66.4
PT Portugal 84.1 75.3 75.1 116.8 98.7 85.9 87.4 88.9 90.8 83.9 76.1 76.8 75.0
RO Romania 95.0 95.7 97.4 109.1 86.2 93.4 101.9 97.7 95.7 88.2 84.9 86.9 90.3
SK Slovakia 81.3 74.8 75.6 86.8 83.6 88.1 90.2 86.7 78.2 75.3 71.7 69.5 70.6
SI Slovenia 80.4 72.9 72.3 113.7 98.0 90.5 85.3 80.1 76.6 75.9 77.4 77.9 76.8
ES Spain 80.4 71.6 70.4 115.5 101.4 88.8 81.4 82.2 83.2 81.5 77.6 74.1 73.6
SE Sweden 74.9 84.5 88.2 95.8 87.3 77.2 70.5 64.8 65.9 71.1 68.4 64.5 67.2
UK United Kingdom 86.1 88.2 85.9 93.3 88.8 82.8 82.3 85.3 84.0 83.3 86.5 88.4 91.0

Germany, France, United Kingdom

Code
icw_sr_08 %>%
  filter(time == "2015",
         geo %in% c("UK", "FR", "DE"),
         grepl("-", age) | age %in% c("Y_GE75", "Y_LT30")) %>%
  mutate(age = ifelse(age == "Y_GE75", "Y75+", age),
         age = ifelse(age == "Y_LT30", "Y30-", age)) %>%
  mutate(age = ifelse(age == "Y_GE75", "Y75+", age)) %>%
  left_join(geo, by = "geo") %>%
  ggplot + geom_line(aes(x = age, y = values/100, color = Geo, group = Geo, linetype = Geo)) +
  scale_color_manual(values = viridis(4)[1:3]) + theme_minimal() +
  theme(legend.position = c(0.25, 0.15),
        legend.title = element_blank()) +
  xlab("Age") + ylab("Aggregate Penpens. to Consume by age") +
  scale_y_continuous(breaks = 0.01*seq(-30, 100, 5),
                     labels = percent_format(accuracy = 1))

Portugal, Spain, United Kingdom

Code
icw_sr_08 %>%
  filter(time == "2015",
         geo %in% c("UK", "ES", "PT"),
         grepl("-", age) | age %in% c("Y_GE75", "Y_LT30")) %>%
  mutate(age = ifelse(age == "Y_GE75", "Y75+", age),
         age = ifelse(age == "Y_LT30", "Y30-", age)) %>%
  left_join(geo, by = "geo") %>%
  ggplot + geom_line(aes(x = age, y = values/100, color = Geo, group = Geo, linetype = Geo)) +
  scale_color_manual(values = viridis(4)[1:3]) + theme_minimal() +
  theme(legend.position = c(0.2, 0.9),
        legend.title = element_blank()) +
  xlab("Age") + ylab("Median saving rate by age of the reference person") +
  scale_y_continuous(breaks = 0.01*seq(-30, 200, 5),
                     labels = percent_format(accuracy = 1))

Austria, Belgium, Bulgaria

Code
icw_sr_08 %>%
  filter(time == "2015",
         geo %in% c("AT", "BE", "BG"),
         grepl("-", age) | age %in% c("Y_GE75", "Y_LT30")) %>%
  mutate(age = ifelse(age == "Y_GE75", "Y75+", age),
         age = ifelse(age == "Y_LT30", "Y30-", age)) %>%
  mutate(age = ifelse(age == "Y_GE75", "Y75+", age)) %>%
  left_join(geo, by = "geo") %>%
  ggplot + geom_line(aes(x = age, y = values/100, color = Geo, group = Geo, linetype = Geo)) +
  scale_color_manual(values = viridis(4)[1:3]) + theme_minimal() +
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank()) +
  xlab("Age") + ylab("Median saving rate by age of the reference person") +
  scale_y_continuous(breaks = 0.01*seq(-30, 200, 5),
                     labels = percent_format(accuracy = 1))

Estonia, Spain, Croatia

Code
icw_sr_08 %>%
  filter(time == "2015",
         geo %in% c("EE", "ES", "HR"),
         grepl("-", age) | age %in% c("Y_GE75", "Y_LT30")) %>%
  mutate(age = ifelse(age == "Y_GE75", "Y75+", age),
         age = ifelse(age == "Y_LT30", "Y30-", age)) %>%
  mutate(age = ifelse(age == "Y_GE75", "Y75+", age)) %>%
  left_join(geo, by = "geo") %>%
  ggplot + geom_line(aes(x = age, y = values/100, color = Geo, group = Geo, linetype = Geo)) +
  scale_color_manual(values = viridis(4)[1:3]) + theme_minimal() +
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank()) +
  xlab("Age") + ylab("Median saving rate by age of the reference person") +
  scale_y_continuous(breaks = 0.01*seq(-30, 200, 5),
                     labels = percent_format(accuracy = 1))

Hungary, Ireland, Lithuania

Code
icw_sr_08 %>%
  filter(time == "2015",
         geo %in% c("HU", "IE", "LT"),
         grepl("-", age) | age %in% c("Y_GE75", "Y_LT30")) %>%
  mutate(age = ifelse(age == "Y_GE75", "Y75+", age),
         age = ifelse(age == "Y_LT30", "Y30-", age)) %>%
  mutate(age = ifelse(age == "Y_GE75", "Y75+", age)) %>%
  left_join(geo, by = "geo") %>%
  ggplot + geom_line(aes(x = age, y = values/100, color = Geo, group = Geo, linetype = Geo)) +
  scale_color_manual(values = viridis(4)[1:3]) + theme_minimal() +
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank()) +
  xlab("Age") + ylab("Median saving rate by age of the reference person") +
  scale_y_continuous(breaks = 0.01*seq(-30, 200, 5),
                     labels = percent_format(accuracy = 1))