En 2017, les ménages consacrent 11 % de leur revenu disponible à la voiture - IP1855

Données - INSEE

Figure 1 : dépense de transports et part dans le revenu disponible, 2005-2017

Code
fig1 |>
  select(annee, all_of(postes_depense)) |>
  pivot_longer(-annee, names_to = "poste", values_to = "depense") |>
  mutate(poste = recode(poste, !!!postes_labels), poste = fct_relevel(poste, postes_labels)) |>
  ggplot(aes(x = factor(annee), y = depense, fill = poste)) +
  geom_col() +
  scale_fill_brewer(palette = "Set2", name = NULL) +
  theme_minimal(base_size = 11) +
  labs(x = NULL, y = "€ 2017",
       title = "Dépense de transports des ménages",
       subtitle = "2005, 2011, 2017") +
  theme(legend.position = "bottom", panel.grid.minor = element_blank()) +
  guides(fill = guide_legend(ncol = 2))

Code
fig1 |>
  ggplot(aes(x = annee, y = part_revenu_disponible)) +
  geom_col(fill = "#1B3F8B") +
  theme_minimal(base_size = 12) +
  labs(x = NULL, y = "%",
       title = "Part de la dépense de transports dans le revenu disponible",
       subtitle = "2005, 2011, 2017") +
  theme(panel.grid.minor = element_blank())

Figure 2 : selon la taille de l’aire d’attraction des villes, 2017

Code
ordre_aires <- c("Aire de Paris", "700 000 habitants ou plus (hors Paris)",
                  "200 000 à moins de 700 000 habitants", "50 000 à moins de 200 000 habitants",
                  "Moins de 50 000 habitants", "Communes hors attraction des villes")
fig2 |>
  select(groupe, all_of(postes_depense)) |>
  pivot_longer(-groupe, names_to = "poste", values_to = "depense") |>
  mutate(poste = recode(poste, !!!postes_labels), poste = fct_relevel(poste, postes_labels),
         groupe = fct_relevel(groupe, ordre_aires)) |>
  ggplot(aes(x = groupe, y = depense, fill = poste)) +
  geom_col() +
  coord_flip() +
  scale_fill_brewer(palette = "Set2", name = NULL) +
  theme_minimal(base_size = 10) +
  labs(x = NULL, y = "€",
       title = "Dépense de transports selon la taille de l'aire d'attraction des villes",
       subtitle = "2017") +
  theme(legend.position = "bottom", panel.grid.minor = element_blank()) +
  guides(fill = guide_legend(ncol = 2))

Code
fig2 |>
  mutate(groupe = fct_relevel(groupe, ordre_aires)) |>
  ggplot(aes(x = groupe, y = part_revenu_disponible)) +
  geom_col(fill = "#1B3F8B") +
  coord_flip() +
  theme_minimal(base_size = 10) +
  labs(x = NULL, y = "%",
       title = "Part de la dépense de transports dans le revenu disponible",
       subtitle = "selon la taille de l'aire d'attraction des villes, 2017") +
  theme(panel.grid.minor = element_blank())

Figure 3 : selon la catégorie de commune de résidence, 2017

Code
ordre_communes <- c("Communes des pôles", "dont communes-centres", "dont autres communes en pôle",
                     "Communes des couronnes", "Communes hors attraction des villes")
fig3 |>
  mutate(groupe = fct_relevel(groupe, ordre_communes)) |>
  ggplot(aes(x = groupe, y = depense_transports)) +
  geom_col(fill = "#1B3F8B") +
  coord_flip() +
  theme_minimal(base_size = 10) +
  labs(x = NULL, y = "€",
       title = "Dépense de transports selon la catégorie de commune de résidence",
       subtitle = "2017") +
  theme(panel.grid.minor = element_blank())

Figure 4 : selon le niveau de vie et la catégorie socioprofessionnelle, 2017

Code
fig4 |>
  filter(section == "Selon le niveau de vie du ménage") |>
  select(groupe, all_of(postes_depense)) |>
  mutate(groupe = fct_inorder(groupe)) |>
  pivot_longer(-groupe, names_to = "poste", values_to = "depense") |>
  mutate(poste = recode(poste, !!!postes_labels), poste = fct_relevel(poste, postes_labels)) |>
  ggplot(aes(x = groupe, y = depense, fill = poste)) +
  geom_col() +
  scale_fill_brewer(palette = "Set2", name = NULL) +
  theme_minimal(base_size = 9) +
  labs(x = NULL, y = "€",
       title = "Dépense de transports selon le niveau de vie du ménage",
       subtitle = "2017") +
  theme(legend.position = "bottom", axis.text.x = element_text(angle = 30, hjust = 1),
        panel.grid.minor = element_blank()) +
  guides(fill = guide_legend(ncol = 2))

Code
fig4 |>
  filter(section == "Selon la catégorie socioprofessionnelle du ménage") |>
  mutate(groupe = fct_reorder(groupe, depense_transports)) |>
  ggplot(aes(x = groupe, y = depense_transports)) +
  geom_col(fill = "#1B3F8B") +
  coord_flip() +
  theme_minimal(base_size = 10) +
  labs(x = NULL, y = "€",
       title = "Dépense de transports selon la catégorie socioprofessionnelle du ménage",
       subtitle = "2017") +
  theme(panel.grid.minor = element_blank())

Figure 5 : selon la configuration familiale et le nombre de personnes, 2017

Code
fig5 |>
  filter(section == "Selon le type de ménage") |>
  mutate(groupe = fct_inorder(groupe)) |>
  ggplot(aes(x = groupe, y = part_revenu_disponible)) +
  geom_col(fill = "#1B3F8B") +
  theme_minimal(base_size = 11) +
  labs(x = NULL, y = "%",
       title = "Part de la dépense de transports dans le revenu disponible",
       subtitle = "selon la configuration familiale, 2017") +
  theme(axis.text.x = element_text(angle = 20, hjust = 1), panel.grid.minor = element_blank())

Code
fig5 |>
  filter(section == "Selon le nombre de personnes du ménage") |>
  mutate(groupe = fct_inorder(groupe)) |>
  ggplot(aes(x = groupe, y = depense_transports)) +
  geom_col(fill = "#1B3F8B") +
  theme_minimal(base_size = 11) +
  labs(x = NULL, y = "€",
       title = "Dépense de transports selon le nombre de personnes du ménage",
       subtitle = "2017") +
  theme(axis.text.x = element_text(angle = 20, hjust = 1), panel.grid.minor = element_blank())

Figure complémentaire 1 : équipement automobile des ménages, 2017

Code
plot_figurec1_section <- function(section_filtre, titre) {
  figc1 |>
    filter(section == section_filtre) |>
    select(groupe, part_aucune_voiture, part_une_voiture, part_deux_voitures_ou_plus) |>
    pivot_longer(-groupe, names_to = "nb_voitures", values_to = "part") |>
    mutate(nb_voitures = recode(nb_voitures, part_aucune_voiture = "Aucune voiture",
                                 part_une_voiture = "Une voiture",
                                 part_deux_voitures_ou_plus = "Deux voitures ou plus"),
           nb_voitures = fct_relevel(nb_voitures, "Aucune voiture", "Une voiture", "Deux voitures ou plus"),
           groupe = fct_rev(fct_inorder(groupe))) |>
    ggplot(aes(x = groupe, y = part, fill = nb_voitures)) +
    geom_col() +
    coord_flip() +
    scale_fill_manual(values = c("Aucune voiture" = "#E8737A", "Une voiture" = "#8FA8D8",
                                  "Deux voitures ou plus" = "#1B3F8B"), name = NULL) +
    theme_minimal(base_size = 11) +
    labs(x = NULL, y = "%", title = "Équipement automobile des ménages", subtitle = titre) +
    theme(legend.position = "bottom", panel.grid.minor = element_blank())
}
Code
plot_figurec1_section("Taille de l’aire d’attraction des villes",
                       "selon la taille de l'aire d'attraction des villes, 2017")

Code
plot_figurec1_section("Niveau de vie", "selon le niveau de vie, 2017")

Code
plot_figurec1_section("Catégorie socioprofessionnelle du ménage",
                       "selon la catégorie socioprofessionnelle du ménage, 2017")

Code
figc1 |>
  select(section, groupe, or_pas_de_voiture_modele1, or_pas_de_voiture_modele2) |>
  filter(!is.na(or_pas_de_voiture_modele1) | !is.na(or_pas_de_voiture_modele2)) |>
  gt(groupname_col = "section") |>
  tab_header(title = "Probabilité de ne pas avoir de voiture (odds ratio)",
             subtitle = "modèle 1 (catégorie de commune ou taille d'aire), modèle 2 (autres caractéristiques), 2017") |>
  cols_label(groupe = "", or_pas_de_voiture_modele1 = "Modèle 1", or_pas_de_voiture_modele2 = "Modèle 2") |>
  sub_missing(missing_text = "")
Probabilité de ne pas avoir de voiture (odds ratio)
modèle 1 (catégorie de commune ou taille d'aire), modèle 2 (autres caractéristiques), 2017
Modèle 1 Modèle 2
Catégorie de commune dans l’aire d’attraction des villes
Pôles 4.1849999999999996
Communes-centres 4.2560000000000002
Autres communes en pôle 4.0750000000000002
Communes des couronnes 1.0820000000000001
Communes hors attraction des villes Réf.
Taille de l’aire d’attraction des villes
Aire de Paris
9.7479999999999993
700 000 habitants ou plus (hors Paris)
2.8519999999999999
200 000 à moins de 700 000 habitants
2.2309999999999999
50 000 à moins de 200 000 habitants
1.1499999999999999
Moins de 50 000 habitants
1.3080000000000001
Commune hors attraction des villes
Réf.
Niveau de vie
Inférieur au 1er décile (10 % les plus modestes) 2.4319999999999999 2.6339999999999999
Du 1er au 2e décile 2.2559999999999998 2.3719999999999999
Du 2e au 3e décile 1.657 1.788
Du 3e au 4e décile 1.4590000000000001 1.5029999999999999
Du 4e au 5e décile Réf. Réf.
Du 5e au 6e décile 0.97699999999999998 0.85
Du 6e au 7e décile 0.95299999999999996 0.84599999999999997
Du 7e au 8e décile 0.92 0.77500000000000002
Du 8e au 9e décile 0.88200000000000001 0.68500000000000005
Supérieur au 9e décile (10 % les plus aisés) 1.1890000000000001 0.91600000000000004
Catégorie socioprofessionnelle du ménage
Ménages à dominante cadre 2.0459999999999998 1.806
Ménages à dominante intermédiaire ou cadre 1.869 1.7050000000000001
Ménages à dominante employée ou intermédiaire 1.2569999999999999 1.234
Ménages à dominante petit indépendant 1.3049999999999999 1.214
Ménages à dominante ouvrière Réf. Réf.
Ménages mono-actifs d’employé ou d’ouvrier 2.024 2.137
Ménages inactifs 3.63 4.1159999999999997
Âge de la personne de référence
Moins de 30 ans 1.2589999999999999 1.3959999999999999
De 30 à moins de 50 ans Réf. Réf.
De 50 à moins de 65 ans 0.59799999999999998 0.56699999999999995
65 ans ou plus 0.81599999999999995 0.78
En couple
Non (personne seule ou famille monoparentale) Réf. Réf.
Oui (couple avec ou sans enfant) 0.23499999999999999 0.23
Autres types de ménage 0.81200000000000006 0.76500000000000001
Nombre d’enfants
Aucun Réf. Réf.
1 0.66700000000000004 0.64400000000000002
2 0.54600000000000004 0.47599999999999998
3 ou plus 0.68100000000000005 0.61
Nombre de personnes en emploi
Aucune Réf. Réf.
1 0.66500000000000004 0.61299999999999999
2 0.64700000000000002 0.57699999999999996
3 ou plus 0.623 0.48299999999999998
Diplôme de la personne de référence
Bac + 2 ou supérieur 1.351 1.294
Baccalauréat ou équivalent Réf. Réf.
CAP, BEP, Brevet des collèges 1.18 1.1579999999999999
Aucun diplôme ou CEP ou diplôme inconnu 2.6779999999999999 2.484