Niveau de vie selon l’âge - Données annuelles de 1996 à 2019

Data - INSEE

Info

  • Niveau de vie selon l’âge. Données annuelles de 1996 à 2019. html

year

Code
`reve-niv-vie-individu-age-moy` %>%
  group_by(year) %>%
  summarise(Nobs = n()) %>%
  print_table_conditional()
year Nobs
1996 8
1997 8
1998 8
1999 8
2000 8
2001 8
2002 8
2003 8
2004 8
2005 8
2006 8
2007 8
2008 8
2009 8
2010 8
20101 8
2011 8
2012 8
20122 8
2013 8
2014 8
2015 8
2016 8
2017 8
2018 8
2019 8

variable

Code
`reve-niv-vie-individu-age-moy` %>%
  left_join(age, by = "Age") %>%
  group_by(age, Age) %>%
  summarise(Nobs = n()) %>%
  print_table_conditional()
age Age Nobs
18- Moins de 18 ans 26
18-29 De 18 à 29 ans 26
30-39 De 30 à 39 ans 26
40-49 De 40 à 49 ans 26
50-64 De 50 à 64 ans 26
65-74 De 65 à 74 ans 26
75+ 75 ans et plus 26
NA Ensemble 26

Niveau de vie moyen

Table 1996-2008, 2008-2019

Javascript

Code
`reve-niv-vie-individu-age-moy` %>%
  left_join(age, by = "Age") %>%
  mutate(year = as.numeric(year)) %>%
  filter(year %in% c(1996, 2008, 2019)) %>%
  select(age, Age, year, value) %>%
  spread(year, value) %>%
  mutate(`1996-2008` = round(100*((`2008`/`1996`)^(1/12)-1), 2),
         `2008-2019` = round(100*((`2019`/`2008`)^(1/11)-1), 2)) %>%
  print_table_conditional()
age Age 1996 2008 2019 1996-2008 2008-2019
18- Moins de 18 ans 18560 22540 22530 1.63 0.00
18-29 De 18 à 29 ans 18330 22110 23000 1.57 0.36
30-39 De 30 à 39 ans 20170 24290 24930 1.56 0.24
40-49 De 40 à 49 ans 21830 25120 25360 1.18 0.09
50-64 De 50 à 64 ans 23760 28890 28740 1.64 -0.05
65-74 De 65 à 74 ans 21200 25970 27050 1.71 0.37
75+ 75 ans et plus 20810 24130 24940 1.24 0.30
NA Ensemble 20430 24720 25190 1.60 0.17

png

Code
i_g("bib/insee/reve-niv-vie-individu-age_1.png")

Graph

Code
`reve-niv-vie-individu-age-moy` %>%
  left_join(age, by = "Age") %>%
  filter(!is.na(age)) %>%
  mutate(year = as.numeric(year)) %>%
  filter(year %in% c(1996, 2008, 2019)) %>%
  spread(year, value) %>%
  transmute(age,
            `1996-2008` = (`2008`/`1996`)^(1/12)-1,
            `2008-2019` = (`2019`/`2008`)^(1/11)-1) %>%
  gather(variable, value, -age) %>%
  ggplot + geom_line(aes(x = age, y = value, color = variable, group = variable)) +
  theme_minimal() +
  theme(legend.position = c(0.15, 0.55),
        legend.title = element_blank()) +
  xlab("Age") + ylab("Gain de niveau de vie moyen en € 'constants' / an, INSEE") +
  scale_y_continuous(breaks = 0.01*seq(-30, 50, 0.1),
                     labels = percent_format(accuracy = .1)) + 
  geom_hline(yintercept = 0, linetype = "dashed",  color = "black")

75 ans et plus, 30-39 ans, 65-74 ans, Ensemble

IPC

Code
`reve-niv-vie-individu-age-moy` %>%
  year_to_date2 %>%
  filter(Age %in% c("75 ans et plus", "De 30 à 39 ans",  "De 65 à 74 ans", "Ensemble")) %>%
  group_by(Age) %>%
  mutate(value = 100*value/value[1]) %>%
  ggplot() + ylab("Indice de niveau de vie") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = value, color = Age)) +
  
  scale_x_date(breaks = seq(1920, 2025, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.15, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = ""))

IPCH

Code
IPC_IPCH_adjustment <- `IPCH-IPC-2015-ensemble` %>%
  group_by(date) %>%
  summarise(OBS_VALUE = 100*OBS_VALUE[INDICATEUR == "IPCH"]/OBS_VALUE[INDICATEUR == "IPC"]) %>%
  filter(month(date) == 1,
         date <= as.Date("2019-01-01")) %>%
  select(date, IPC_IPCH_adjustment = OBS_VALUE)


`reve-niv-vie-individu-age-moy` %>%
  year_to_date2 %>%
  filter(Age %in% c("75 ans et plus", "De 30 à 39 ans",  "De 65 à 74 ans", "Ensemble")) %>%
  group_by(Age) %>%
  mutate(value = 100*value/value[1]) %>%
  left_join(IPC_IPCH_adjustment, by = "date") %>%
  ggplot() + ylab("Indice de niveau de vie (IPCH)") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = 100*value/IPC_IPCH_adjustment, color = Age)) +
  
  scale_x_date(breaks = seq(1920, 2025, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.15, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = ""))

Niveau de vie médian

Table 1996-2008, 2008-2019

Code
`reve-niv-vie-individu-age-med` %>%
  mutate(year = as.numeric(year)) %>%
  filter(year %in% c(1996, 2008, 2019)) %>%
  select_if(~ n_distinct(.) > 1) %>%
  spread(year, value) %>%
  mutate(`1996-2008` = round(100*((`2008`/`1996`)^(1/12)-1), 2),
         `2008-2019` = round(100*((`2019`/`2008`)^(1/11)-1), 2)) %>%
  print_table_conditional()
Age 1996 2008 2019 1996-2008 2008-2019
75 ans et plus 17750 19550 21580 0.81 0.90
De 18 à 29 ans 16820 20220 20920 1.55 0.31
De 30 à 39 ans 18130 21970 22530 1.61 0.23
De 40 à 49 ans 19370 21980 22490 1.06 0.21
De 50 à 64 ans 20490 24030 24450 1.34 0.16
De 65 à 74 ans 18800 21370 23220 1.07 0.76
Ensemble 17970 21230 22040 1.40 0.34
Moins de 18 ans 16310 19720 19830 1.59 0.05

Graph

Code
`reve-niv-vie-individu-age-med` %>%
  left_join(age, by = "Age") %>%
  filter(!is.na(age)) %>%
  mutate(year = as.numeric(year)) %>%
  filter(year %in% c(1996, 2008, 2019)) %>%
  spread(year, value) %>%
  transmute(age,
            `1996-2008` = (`2008`/`1996`)^(1/12)-1,
            `2008-2019` = (`2019`/`2008`)^(1/11)-1) %>%
  gather(variable, value, -age) %>%
  ggplot + geom_line(aes(x = age, y = value, color = variable, group = variable)) +
  theme_minimal() +
  theme(legend.position = c(0.15, 0.55),
        legend.title = element_blank()) +
  xlab("Age") + ylab("Gain de niveau de vie median en € 'constants' / an, INSEE") +
  scale_y_continuous(breaks = 0.01*seq(-30, 50, 0.1),
                     labels = percent_format(accuracy = .1)) + 
  geom_hline(yintercept = 0, linetype = "dashed",  color = "black")

75 ans et plus, 30-39 ans, 65-74 ans, Ensemble

IPC

Code
`reve-niv-vie-individu-age-med` %>%
  year_to_date2 %>%
  filter(Age %in% c("75 ans et plus", "De 30 à 39 ans",  "De 65 à 74 ans", "Ensemble")) %>%
  group_by(Age) %>%
  mutate(value = 100*value/value[1]) %>%
  ggplot() + ylab("Indice de niveau de vie médian") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = value, color = Age)) +
  scale_x_date(breaks = seq(1920, 2025, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.15, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = ""))

IPCH

Code
IPC_IPCH_adjustment <- `IPCH-IPC-2015-ensemble` %>%
  group_by(date) %>%
  summarise(OBS_VALUE = 100*OBS_VALUE[INDICATEUR == "IPCH"]/OBS_VALUE[INDICATEUR == "IPC"]) %>%
  filter(month(date) == 1,
         date <= as.Date("2019-01-01")) %>%
  select(date, IPC_IPCH_adjustment = OBS_VALUE)


`reve-niv-vie-individu-age-med` %>%
  year_to_date2 %>%
  filter(Age %in% c("75 ans et plus", "De 30 à 39 ans",  "De 65 à 74 ans", "Ensemble")) %>%
  group_by(Age) %>%
  mutate(value = 100*value/value[1]) %>%
  left_join(IPC_IPCH_adjustment, by = "date") %>%
  ggplot() + ylab("Indice de niveau de vie médian (IPCH)") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = 100*value/IPC_IPCH_adjustment, color = Age)) +
  scale_x_date(breaks = seq(1920, 2025, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.15, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = ""))