L’inflation alimentaire modifie-t-elle le comportement des consommateurs ? - IA113

Données - INSEE

Figure 1 : glissement annuel d’indices de prix alimentaires, 2021-2022

Code
fig1 |>
  pivot_longer(-mois, names_to = "indice", values_to = "valeur") |>
  mutate(indice = recode(indice, ipc_alimentation = "IPC alimentation",
                          indice_groupe = "Indice du groupe considéré")) |>
  ggplot(aes(x = mois, y = valeur, color = indice, group = indice)) +
  geom_line(linewidth = 1) +
  geom_point() +
  scale_color_manual(values = c("IPC alimentation" = "#1B3F8B",
                                 "Indice du groupe considéré" = "#E8737A"), name = NULL) +
  theme_minimal(base_size = 11) +
  labs(x = NULL, y = "%",
       title = "Glissement annuel d'indices de prix alimentaires",
       subtitle = "2021-2022") +
  theme(legend.position = "bottom", panel.grid.minor = element_blank(),
        axis.text.x = element_text(angle = 45, hjust = 1))

Figure 2 : répartition des produits selon la variation de leur prix

Code
fig2 |>
  ggplot(aes(x = variation_prix, y = part_produits)) +
  geom_col(fill = "#1B3F8B") +
  theme_minimal(base_size = 11) +
  labs(x = NULL, y = "% des produits",
       title = "Répartition des produits selon la variation de leur prix",
       subtitle = "moyenne annuelle, 2021-2022") +
  theme(panel.grid.minor = element_blank(),
        axis.text.x = element_text(angle = 30, hjust = 1))

Figure 3 : évolution des prix et quantités selon la catégorie de produits

Code
fig3 |>
  mutate(categorie = fct_reorder(categorie, variation_prix_unitaire)) |>
  pivot_longer(-categorie, names_to = "serie", values_to = "valeur") |>
  mutate(serie = recode(serie, variation_prix_unitaire = "Variation de prix unitaire",
                         variation_nb_articles = "Variation du nombre d'articles")) |>
  ggplot(aes(x = categorie, y = valeur, fill = serie)) +
  geom_col(position = "dodge") +
  geom_hline(yintercept = 0, color = "grey40") +
  coord_flip() +
  scale_fill_manual(values = c("Variation de prix unitaire" = "#1B3F8B",
                                "Variation du nombre d'articles" = "#E8737A"), name = NULL) +
  theme_minimal(base_size = 11) +
  labs(x = NULL, y = "%",
       title = "Évolution des prix et des quantités achetées",
       subtitle = "selon la catégorie de produits, 2021-2022") +
  theme(legend.position = "bottom", panel.grid.minor = element_blank())

Figure 4a : élasticité-prix selon la catégorie de produits

Code
fig4a |>
  mutate(categorie = fct_reorder(categorie, elasticite)) |>
  ggplot(aes(x = categorie, y = elasticite)) +
  geom_pointrange(aes(ymin = borne_inf, ymax = borne_sup), color = "#1B3F8B") +
  geom_hline(yintercept = 0, linetype = "dashed", color = "grey50") +
  coord_flip() +
  theme_minimal(base_size = 11) +
  labs(x = NULL, y = "Élasticité-prix",
       title = "Élasticité-prix de la demande selon la catégorie de produits",
       subtitle = "avec intervalle de confiance, 2021-2022") +
  theme(panel.grid.minor = element_blank())

Figure 4b : élasticité-prix selon la position dans l’échelle de prix

Code
fig4b |>
  mutate(position = fct_inorder(position)) |>
  ggplot(aes(x = position, y = elasticite)) +
  geom_pointrange(aes(ymin = borne_inf, ymax = borne_sup), color = "#1B3F8B") +
  geom_hline(yintercept = 0, linetype = "dashed", color = "grey50") +
  coord_flip() +
  theme_minimal(base_size = 11) +
  labs(x = NULL, y = "Élasticité-prix",
       title = "Élasticité-prix de la demande selon la position dans l'échelle des prix",
       subtitle = "au sein de la catégorie de produits, avec intervalle de confiance, 2021-2022") +
  theme(panel.grid.minor = element_blank())

Tableau complémentaire 1 : modification du comportement d’achat

Code
tc1 |>
  mutate(ecart_type = paste0("(", format(ecart_type, decimal.mark = ","), ")")) |>
  gt() |>
  tab_header(title = "Effet d'une hausse de l'IPC alimentation (en log) sur le comportement d'achat",
             subtitle = "coefficients de régression, écart-type clusterisé au niveau magasin entre parenthèses") |>
  cols_label(variable_dependante = "Variable dépendante (en log)",
             coefficient_ipc_alimentation = "Coefficient",
             ecart_type = "Écart-type",
             observations = "Observations") |>
  fmt_number(columns = coefficient_ipc_alimentation, decimals = 2) |>
  fmt_number(columns = observations, decimals = 0)
Effet d'une hausse de l'IPC alimentation (en log) sur le comportement d'achat
coefficients de régression, écart-type clusterisé au niveau magasin entre parenthèses
Variable dépendante (en log) Coefficient Écart-type Observations
Chiffre d'affaires du magasin 0.40 (0,04) 45,144
Montant moyen d'un ticket de caisse 0.11 (0,02) 45,144
Nombre de passages en caisse 0.29 (0,03) 45,144
Nombre d'articles par ticket −0.82 (0,02) 45,144
Part des remises en caisse dans le chiffre d'affaire 0.38 (0,10) 35,514