Plus d’épargne chez les plus aisés, plus de dépenses contraintes chez les plus modestes - ip1815

Data - INSEE

Info

source dataset .html .RData

insee

ip1815

2024-09-06 2023-10-05

Lien

  • Plus d’épargne chez les plus aisés, plus de dépenses contraintes chez les plus modestes. Insee Première n°1815. html / pdf / xlsx

Par catégorie

Age

Table

Code
ip1815 %>%
  filter(sheet == "fig6",
         grepl(" ans", type)) %>%
  mutate(`taux d'épargne` = round(100*(1-`Consommation / UC` / `Revenu Disponible Brut / UC`), 1)) %>%
  select(-sheet) %>%
  print_table_conditional
type Consommation / UC Revenu Disponible Brut / UC taux d'épargne
Moins de 30 ans 17924 19562 8.4
30-39 ans 23865 26210 8.9
40-49 ans 25270 28509 11.4
50-59 ans 27276 33169 17.8
60-69 ans 27215 33150 17.9
70 ans ou plus 25689 34346 25.2

Graph

Code
ip1815 %>%
  filter(sheet == "fig6",
         grepl(" ans", type)) %>%
  ggplot(., aes(x = `Revenu Disponible Brut / UC`, y = `Consommation / UC`)) + geom_point() + 
  theme_minimal() + geom_abline(slope = 1) + 
  scale_x_continuous(breaks = seq(0, 100000, 2000),
                     labels = dollar_format(pre = "", su = " €")) + 
  scale_y_continuous(breaks = seq(0, 100000, 2000),
                     labels = dollar_format(pre = "", su = " €")) +
  geom_text_repel(aes(x = `Revenu Disponible Brut / UC`, y = `Consommation / UC`, label = type), 
                  fontface ="plain", color = "black", size = 3)

Taux d’épargne

Code
ip1815 %>%
  filter(sheet == "fig6",
         grepl(" ans", type)) %>%
  ggplot(., aes(x = `Revenu Disponible Brut / UC`, y = 1-`Consommation / UC` / `Revenu Disponible Brut / UC`)) + geom_point(size = 3) + 
  theme_minimal() + geom_abline(slope = 1) + ylab("Taux d'épargne (%)") +
  xlab("Revenu Disponible Brut par Unité de Consommation") +
  theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  scale_x_continuous(breaks = seq(0, 100000, 1000),
                     labels = dollar_format(pre = "", su = " €")) + 
  scale_y_continuous(breaks = 0.01*seq(0, 100, 1),
                     labels = percent_format(acc = 1)) +
  geom_text_repel(aes(x = `Revenu Disponible Brut / UC`, y = 1-`Consommation / UC` / `Revenu Disponible Brut / UC`-0.005, label = type), 
                  fontface ="plain", color = "red", size = 5)

Quintile

Table

Code
ip1815 %>%
  filter(sheet == "fig6",
         grepl("quintile", type)) %>%
  mutate(`taux d'épargne` = round(100*(1-`Consommation / UC` / `Revenu Disponible Brut / UC`), 1)) %>%
  select(-sheet) %>%
  print_table_conditional
type Consommation / UC Revenu Disponible Brut / UC taux d'épargne
1er quintile 12816 13173 2.7
2e quintile 19262 20273 5.0
3e quintile 23592 26112 9.7
4e quintile 29029 32702 11.2
5e quintile 40222 56153 28.4

Fonction de consommation

Code
ip1815 %>%
  filter(sheet == "fig6",
         grepl("quintile", type)) %>%
  ggplot(., aes(x = `Revenu Disponible Brut / UC`, y = `Consommation / UC`)) + geom_point() + 
  theme_minimal() + geom_abline(slope = 1) + 
  scale_x_continuous(breaks = seq(0, 100000, 5000),
                     labels = dollar_format(pre = "", su = " €")) + 
  scale_y_continuous(breaks = seq(0, 100000, 5000),
                     labels = dollar_format(pre = "", su = " €")) +
  geom_text_repel(aes(x = `Revenu Disponible Brut / UC`, y = `Consommation / UC`, label = type), 
                  fontface ="plain", color = "black", size = 3)

Taux d’épargne

Code
ip1815 %>%
  filter(sheet == "fig6",
         grepl("quintile", type)) %>%
  ggplot(., aes(x = `Revenu Disponible Brut / UC`, y = 1-`Consommation / UC` / `Revenu Disponible Brut / UC`)) + geom_point() + 
  theme_minimal() + geom_abline(slope = 1) + ylab("Taux d'épargne (%)") +
  scale_x_continuous(breaks = seq(0, 100000, 5000),
                     labels = dollar_format(pre = "", su = " €")) + 
  scale_y_continuous(breaks = 0.01*seq(0, 100, 2),
                     labels = percent_format(acc = 1)) +
  geom_text_repel(aes(x = `Revenu Disponible Brut / UC`, y = 1-`Consommation / UC` / `Revenu Disponible Brut / UC`, label = type), 
                  fontface ="plain", color = "black", size = 3)

Categories sociales

Table

Code
ip1815 %>%
  filter(sheet == "fig6",
         !grepl("quintile", type),
         !grepl(" ans", type)) %>%
  mutate(`taux d'épargne` = round(100*(1-`Consommation / UC` / `Revenu Disponible Brut / UC`), 1)) %>%
  select(-sheet) %>%
  print_table_conditional
type Consommation / UC Revenu Disponible Brut / UC taux d'épargne
Agriculteurs 21698 28937 25.0
Indépendants et professions libérales 25307 38739 34.7
Cadres 35946 42659 15.7
Professions intermédiaires 27910 32360 13.8
Employés 22178 18895 -17.4
Ouvriers 20064 22894 12.4
Retraités Agriculteurs 19783 30303 34.7
Retraités indépendants 24533 35366 30.6
Retraités cadres 37112 44940 17.4
Retraités professions intermédiaires 28222 31441 10.2
Retraités employés 20931 23485 10.9
Retraités ouvriers 18495 21622 14.5
Autres inactifs 15417 22113 30.3
Ensemble 25184 29954 15.9

Fonction de consommation

Code
ip1815 %>%
  filter(sheet == "fig6",
         !grepl("quintile", type),
         !grepl(" ans", type)) %>%
  ggplot(., aes(x = `Revenu Disponible Brut / UC`, y = `Consommation / UC`)) + geom_point() + 
  theme_minimal() + geom_abline(slope = 1) + 
  scale_x_continuous(breaks = seq(0, 100000, 5000),
                     labels = dollar_format(pre = "", su = " €")) + 
  scale_y_continuous(breaks = seq(0, 100000, 5000),
                     labels = dollar_format(pre = "", su = " €")) +
  geom_text_repel(aes(x = `Revenu Disponible Brut / UC`, y = `Consommation / UC`, label = type), 
                  fontface ="plain", color = "black", size = 3)

Taux d’épargne

Code
ip1815 %>%
  filter(sheet == "fig6",
         !grepl("quintile", type),
         !grepl(" ans", type)) %>%
  ggplot(., aes(x = `Revenu Disponible Brut / UC`, y = 1-`Consommation / UC` / `Revenu Disponible Brut / UC`)) + geom_point() + 
  theme_minimal() + geom_abline(slope = 1) + ylab("Taux d'épargne (%)") +
  scale_x_continuous(breaks = seq(0, 100000, 5000),
                     labels = dollar_format(pre = "", su = " €")) + 
  scale_y_continuous(breaks = 0.01*seq(-100, 100, 5),
                     labels = percent_format(acc = 1)) +
  geom_text_repel(aes(x = `Revenu Disponible Brut / UC`, y = 1-`Consommation / UC` / `Revenu Disponible Brut / UC`, label = type), 
                  fontface ="plain", color = "black", size = 3)

Quintile + age

Taux d’épargne

Code
ip1815 %>%
  filter(sheet == "fig6") %>%
  mutate(classe = case_when(grepl("quintile", type) ~ "Quintiles",
                            grepl(" ans", type) ~ "Age",
                            T ~ "Classe")) %>%
  filter(classe != "Classe") %>%
  ggplot(., aes(x = `Revenu Disponible Brut / UC`, y = 1-`Consommation / UC` / `Revenu Disponible Brut / UC`,color = classe)) + geom_point() + 
  theme_minimal() + geom_abline(slope = 1) + ylab("Taux d'épargne (%)") +
  theme(legend.position = c(0.2, 0.8),
        legend.title = element_blank()) +
  theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  scale_x_continuous(breaks = seq(0, 100000, 2000),
                     labels = dollar_format(pre = "", su = " €")) + 
  scale_y_continuous(breaks = 0.01*seq(-100, 100, 1),
                     labels = percent_format(acc = 1)) +
  geom_text_repel(aes(x = `Revenu Disponible Brut / UC`, y = 1-`Consommation / UC` / `Revenu Disponible Brut / UC`, label = paste0(type, "\nTaux d'épargne: ",  percent(1-`Consommation / UC` / `Revenu Disponible Brut / UC`, acc = 1)), color = classe), 
                  fontface ="plain", size = 3) +
  scale_color_manual(values = c("blue", "red"))

Tous

Table

Code
ip1815 %>%
  filter(sheet == "fig6") %>%
  mutate(classe = case_when(grepl("quintile", type) ~ "Quintiles",
                            grepl(" ans", type) ~ "Age",
                            T ~ "Classe")) %>%
  mutate(`taux d'épargne` = round(100*(1-`Consommation / UC` / `Revenu Disponible Brut / UC`), 1)) %>%
  select(-sheet) %>%
  print_table_conditional
type Consommation / UC Revenu Disponible Brut / UC classe taux d'épargne
1er quintile 12816 13173 Quintiles 2.7
2e quintile 19262 20273 Quintiles 5.0
3e quintile 23592 26112 Quintiles 9.7
4e quintile 29029 32702 Quintiles 11.2
5e quintile 40222 56153 Quintiles 28.4
Moins de 30 ans 17924 19562 Age 8.4
30-39 ans 23865 26210 Age 8.9
40-49 ans 25270 28509 Age 11.4
50-59 ans 27276 33169 Age 17.8
60-69 ans 27215 33150 Age 17.9
70 ans ou plus 25689 34346 Age 25.2
Agriculteurs 21698 28937 Classe 25.0
Indépendants et professions libérales 25307 38739 Classe 34.7
Cadres 35946 42659 Classe 15.7
Professions intermédiaires 27910 32360 Classe 13.8
Employés 22178 18895 Classe -17.4
Ouvriers 20064 22894 Classe 12.4
Retraités Agriculteurs 19783 30303 Classe 34.7
Retraités indépendants 24533 35366 Classe 30.6
Retraités cadres 37112 44940 Classe 17.4
Retraités professions intermédiaires 28222 31441 Classe 10.2
Retraités employés 20931 23485 Classe 10.9
Retraités ouvriers 18495 21622 Classe 14.5
Autres inactifs 15417 22113 Classe 30.3
Ensemble 25184 29954 Classe 15.9

Fonction de consommation

Code
ip1815 %>%
  filter(sheet == "fig6") %>%
  mutate(classe = case_when(grepl("quintile", type) ~ "Quintiles",
                            grepl(" ans", type) ~ "Age",
                            T ~ "Classe")) %>%
  ggplot(., aes(x = `Revenu Disponible Brut / UC`, y = `Consommation / UC`, color = classe)) + geom_point() + 
  theme_minimal() + geom_abline(slope = 1) + 
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank()) +
  scale_x_continuous(breaks = seq(0, 100000, 5000),
                     labels = dollar_format(pre = "", su = " €")) + 
  scale_y_continuous(breaks = seq(0, 100000, 5000),
                     labels = dollar_format(pre = "", su = " €")) +
  geom_text_repel(aes(x = `Revenu Disponible Brut / UC`, y = `Consommation / UC`, label = type, color = classe), 
                  fontface ="plain", size = 3)

Taux d’épargne

Code
ip1815 %>%
  filter(sheet == "fig6") %>%
  mutate(classe = case_when(grepl("quintile", type) ~ "Quintiles",
                            grepl(" ans", type) ~ "Age",
                            T ~ "Classe")) %>%
  ggplot(., aes(x = `Revenu Disponible Brut / UC`, y = 1-`Consommation / UC` / `Revenu Disponible Brut / UC`,color = classe)) + geom_point() + 
  theme_minimal() + geom_abline(slope = 1) + ylab("Taux d'épargne (%)") +
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank()) +
  scale_x_continuous(breaks = seq(0, 100000, 5000),
                     labels = dollar_format(pre = "", su = " €")) + 
  scale_y_continuous(breaks = 0.01*seq(-100, 100, 5),
                     labels = percent_format(acc = 1)) +
  geom_text_repel(aes(x = `Revenu Disponible Brut / UC`, y = 1-`Consommation / UC` / `Revenu Disponible Brut / UC`, label = type, color = classe), 
                  fontface ="plain", size = 3)

Données Insee Première

Composition de la dépense de consommation

Code
ig_b("insee", "ip1815", "bind")

Taux d’épargne par quintile

Code
ig_b("insee", "ip1815", "fig5")