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

Data - INSEE

Info

source dataset .html .RData

insee

ip1815

2024-06-24 2023-10-05

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() + 
  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)

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)

Tous

Table

Code
ip1815 %>%
  filter(sheet == "fig6") %>%
  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
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
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") %>%
  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") %>%
  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)

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")