Carte des loyers — appartements

Données - Carte des loyers (DHUP)

Code
source(here::here("_rinit.R"))
invisible(Sys.setlocale("LC_TIME", "fr_FR.UTF-8"))
# cd ~/iCloud/website/data/dhup; /usr/local/bin/R -e 'quarto::quarto_render("loyers-appartements.qmd")'
# sh ~/iCloud/website/website_short.sh; open https://fgeerolf.com/data/dhup/loyers-appartements.html

source(here::here("data", "dhup", "_dhup.R"))

knitr::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE,
                      fig.width = 8, fig.height = 7, dpi = 150)

dat_path <- here::here("data", "dhup", "loyers-appartements.parquet")
dat <- arrow::read_parquet(dat_path)

departements         <- arrow::read_parquet(here::here("data", "maps", "departements.parquet"))
departements_details <- arrow::read_parquet(here::here("data", "maps", "departements_details.parquet"))
communes              <- arrow::read_parquet(here::here("data", "maps", "communes.parquet"))
communes_details      <- arrow::read_parquet(here::here("data", "maps", "communes_details.parquet"))

idf <- c("75", "77", "78", "91", "92", "93", "94", "95")
part_maille <- mean(dhup_metropole(dat)$typpred == "maille")

Loyer d’annonce prédit au m² (hors charges, par mois) pour la location d’un appartement, tous nombres de pièces confondus, estimé commune par commune par la DHUP à partir des annonces immobilières. 34 900 communes couvertes ; pour 86% d’entre elles, trop peu d’annonces sont disponibles pour une estimation propre et la valeur provient d’une maille regroupant plusieurs communes voisines (colonne typpred).

Code
dat |>
  dplyr::filter(dep %in% c("75", "92")) |>
  dplyr::arrange(dplyr::desc(loypredm2)) |>
  dplyr::transmute(Commune = libgeo, Département = dep,
                   `Loyer prédit` = round(loypredm2, 1),
                   `Intervalle` = sprintf("%.1f – %.1f", lwr, upr), Type = typpred) |>
  head(10) |>
  gt::gt() |>
  gt::tab_header(title = "Aperçu — communes les plus chères de Paris et des Hauts-de-Seine") |>
  gt::tab_options(table.width = "100%")
Aperçu — communes les plus chères de Paris et des Hauts-de-Seine
Commune Département Loyer prédit Intervalle Type
Paris 6e Arrondissement 75 37.9 28.6 – 50.2 commune
Paris 4e Arrondissement 75 37.8 28.2 – 50.6 commune
Paris 7e Arrondissement 75 36.5 28.3 – 47.2 commune
Paris 3e Arrondissement 75 36.3 28.0 – 47.1 commune
Paris 8e Arrondissement 75 36.1 27.3 – 47.8 commune
Paris 1er Arrondissement 75 35.4 21.9 – 57.2 commune
Paris 2e Arrondissement 75 35.0 27.1 – 45.1 commune
Paris 5e Arrondissement 75 34.6 27.4 – 43.8 commune
Neuilly-sur-Seine 92 34.1 26.5 – 43.8 commune
Paris 9e Arrondissement 75 33.6 26.3 – 42.8 commune

Carte de France — par département

Code
dhup_dept_map(dat, departements, departements_details,
             title = "Loyer prédit des appartements, par département",
             subtitle = "Moyenne pondérée par le nombre d'observations — DHUP, Carte des loyers")

Code
dhup_dept_summary(dat) |>
  dplyr::left_join(departements_details, by = c("dep" = "CODE_DEPT")) |>
  dplyr::arrange(dplyr::desc(loypredm2)) |>
  dplyr::transmute(Département = paste0(dep, " — ", NOM_DEPT), `Loyer prédit` = loypredm2) |>
  head(15) |>
  gt::gt() |>
  gt::fmt_number(columns = `Loyer prédit`, decimals = 1) |>
  gt::data_color(columns = `Loyer prédit`, palette = "OrRd") |>
  gt::tab_header(title = "Les 15 départements les plus chers") |>
  gt::tab_options(table.width = "100%")
Les 15 départements les plus chers
Département Loyer prédit
75 — PARIS 32.1
92 — HAUTS-DE-SEINE 26.1
94 — VAL-DE-MARNE 22.1
93 — SEINE-SAINT-DENIS 20.1
06 — ALPES-MARITIMES 20.0
74 — HAUTE-SAVOIE 17.6
78 — YVELINES 17.4
95 — VAL-D'OISE 17.3
91 — ESSONNE 16.7
13 — BOUCHES-DU-RHONE 16.6
77 — SEINE-ET-MARNE 15.0
69 — RHONE 14.2
2A — CORSE-DU-SUD 14.2
83 — VAR 14.1
73 — SAVOIE 13.4

Île-de-France, commune par commune

Le zoom communal fait apparaître le très fort gradient centre-périphérie : Paris intra-muros, puis les Hauts-de-Seine à l’ouest, se détachent nettement du reste de la région.

Code
dhup_commune_map(dat, communes, communes_details, idf,
                 title = "Loyer prédit des appartements — Île-de-France",
                 subtitle = "Une valeur par commune (Paris : par arrondissement)")

Paris (75), par arrondissement

Code
dhup_commune_map(dat, communes, communes_details, "75",
                 title = "Loyer prédit des appartements — Paris",
                 subtitle = "Un arrondissement = une commune INSEE (75101 à 75120)")

Code
dhup_classement(dat, "75", n = 20,
                caption = "Loyer prédit en €/m²/mois. Source : DHUP, Carte des loyers.")
Commune Département Loyer prédit Intervalle Type Obs. (maille)
Paris 6e Arrondissement 75 37.9 28.6 – 50.2 commune 6501
Paris 4e Arrondissement 75 37.8 28.2 – 50.6 commune 4942
Paris 7e Arrondissement 75 36.5 28.3 – 47.2 commune 9637
Paris 3e Arrondissement 75 36.3 28.0 – 47.1 commune 5198
Paris 8e Arrondissement 75 36.1 27.3 – 47.8 commune 8293
Paris 1er Arrondissement 75 35.4 21.9 – 57.2 commune 3451
Paris 2e Arrondissement 75 35.0 27.1 – 45.1 commune 4463
Paris 5e Arrondissement 75 34.6 27.4 – 43.8 commune 7975
Paris 9e Arrondissement 75 33.6 26.3 – 42.8 commune 7870
Paris 16e Arrondissement 75 33.4 26.3 – 42.5 commune 24208
Paris 17e Arrondissement 75 32.7 26.0 – 41.2 commune 24365
Paris 11e Arrondissement 75 31.7 25.2 – 40.0 commune 17411
Paris 15e Arrondissement 75 31.7 25.9 – 38.8 commune 37153
Paris 14e Arrondissement 75 31.3 25.2 – 38.7 commune 16820
Paris 10e Arrondissement 75 31.2 24.5 – 39.8 commune 12038
Paris 13e Arrondissement 75 30.4 24.4 – 37.8 commune 14211
Paris 12e Arrondissement 75 30.3 24.5 – 37.4 commune 15569
Paris 18e Arrondissement 75 29.8 23.1 – 38.5 commune 22857
Paris 20e Arrondissement 75 28.6 23.0 – 35.7 commune 13525
Paris 19e Arrondissement 75 27.7 21.9 – 35.0 commune 13305
Loyer prédit en €/m²/mois. Source : DHUP, Carte des loyers.

Hauts-de-Seine (92)

Code
dhup_commune_map(dat, communes, communes_details, "92",
                 title = "Loyer prédit des appartements — Hauts-de-Seine",
                 subtitle = "36 communes")

Code
dhup_classement(dat, "92", n = 15,
                caption = "Loyer prédit en €/m²/mois. Source : DHUP, Carte des loyers.")
Commune Département Loyer prédit Intervalle Type Obs. (maille)
Neuilly-sur-Seine 92 34.1 26.5 – 43.8 commune 10604
Levallois-Perret 92 30.7 24.5 – 38.6 commune 11181
Boulogne-Billancourt 92 29.7 24.0 – 36.9 commune 20474
Issy-les-Moulineaux 92 27.9 22.6 – 34.4 commune 12404
Puteaux 92 27.5 21.6 – 35.0 commune 6401
Courbevoie 92 27.3 21.6 – 34.4 commune 12287
Suresnes 92 26.7 21.5 – 33.2 commune 7394
Montrouge 92 26.5 21.6 – 32.6 commune 6027
Saint-Cloud 92 26.4 21.3 – 32.6 commune 5056
Vanves 92 26.3 21.4 – 32.2 commune 3043
Clichy 92 26.2 21.0 – 32.7 commune 7743
Malakoff 92 25.4 20.7 – 31.3 commune 2510
La Garenne-Colombes 92 25.3 20.9 – 30.5 commune 4452
Bois-Colombes 92 25.1 20.5 – 30.9 commune 4489
Sèvres 92 25.0 19.7 – 31.7 commune 2549
Loyer prédit en €/m²/mois. Source : DHUP, Carte des loyers.

Paris et la petite couronne (75, 92, 93, 94)

Code
dhup_commune_map(dat, communes, communes_details, c("75", "92", "93", "94"),
                 title = "Loyer prédit des appartements — Paris et la petite couronne",
                 subtitle = "Paris (75), Hauts-de-Seine (92), Seine-Saint-Denis (93), Val-de-Marne (94)")

Code
dhup_classement(dat, c("75", "92", "93", "94"), n = 15,
                caption = "Loyer prédit en €/m²/mois. Source : DHUP, Carte des loyers.")
Commune Département Loyer prédit Intervalle Type Obs. (maille)
Paris 6e Arrondissement 75 37.9 28.6 – 50.2 commune 6501
Paris 4e Arrondissement 75 37.8 28.2 – 50.6 commune 4942
Paris 7e Arrondissement 75 36.5 28.3 – 47.2 commune 9637
Paris 3e Arrondissement 75 36.3 28.0 – 47.1 commune 5198
Paris 8e Arrondissement 75 36.1 27.3 – 47.8 commune 8293
Paris 1er Arrondissement 75 35.4 21.9 – 57.2 commune 3451
Paris 2e Arrondissement 75 35.0 27.1 – 45.1 commune 4463
Paris 5e Arrondissement 75 34.6 27.4 – 43.8 commune 7975
Neuilly-sur-Seine 92 34.1 26.5 – 43.8 commune 10604
Paris 9e Arrondissement 75 33.6 26.3 – 42.8 commune 7870
Paris 16e Arrondissement 75 33.4 26.3 – 42.5 commune 24208
Paris 17e Arrondissement 75 32.7 26.0 – 41.2 commune 24365
Paris 11e Arrondissement 75 31.7 25.2 – 40.0 commune 17411
Paris 15e Arrondissement 75 31.7 25.9 – 38.8 commune 37153
Saint-Mandé 94 31.4 25.4 – 38.7 commune 2630
Loyer prédit en €/m²/mois. Source : DHUP, Carte des loyers.

Ce que révèlent les données

Code
m75 <- mean(dat$loypredm2[dat$dep == "75"])
m92 <- mean(dat$loypredm2[dat$dep == "92"])
mfr <- stats::weighted.mean(dhup_metropole(dat)$loypredm2, dhup_metropole(dat)$nbobs_mail)
cat(sprintf(
  "\nÀ **%.1f €/m²** en moyenne, Paris (75) se loue **%s** plus cher que la\nmoyenne de la France métropolitaine (**%.1f €/m²**) ; les Hauts-de-Seine\n(92), à **%.1f €/m²**, se situent **%s** plus cher que cette même moyenne\nnationale.\n",
  m75, scales::percent(m75 / mfr - 1, 1), mfr, m92, scales::percent(m92 / mfr - 1, 1)))

À 33.1 €/m² en moyenne, Paris (75) se loue 200% plus cher que la moyenne de la France métropolitaine (11.0 €/m²) ; les Hauts-de-Seine (92), à 25.0 €/m², se situent 127% plus cher que cette même moyenne nationale.

Code
dhup_metropole(dat) |>
  dplyr::mutate(zone = dplyr::case_when(dep == "75" ~ "Paris (75)",
                                        dep %in% idf ~ "Reste Île-de-France",
                                        TRUE ~ "Autres départements")) |>
  ggplot2::ggplot(ggplot2::aes(loypredm2, fill = zone)) +
  ggplot2::geom_density(alpha = 0.6, colour = NA) +
  ggplot2::scale_fill_viridis_d(option = "rocket", begin = 0.15, end = 0.85, name = NULL) +
  ggplot2::scale_x_continuous(labels = scales::label_number(suffix = " €")) +
  ggplot2::labs(title = "Distribution du loyer prédit par commune",
               subtitle = "Appartements, France métropolitaine", x = "€/m²/mois", y = NULL) +
  ggplot2::theme_minimal(base_size = 12) +
  ggplot2::theme(plot.title = ggplot2::element_text(face = "bold"),
                plot.subtitle = ggplot2::element_text(colour = "grey35"),
                axis.text.y = ggplot2::element_blank())

Source & données

Code
tibble::tibble(
  ` ` = c("Jeu de données", "Producteur", "Fichier", "Mise à jour", "Observations"),
  `  ` = c(
    "[Carte des loyers — indicateurs de loyers d'annonce par commune](https://www.data.gouv.fr/datasets/carte-des-loyers-indicateurs-de-loyers-dannonce-par-commune-en-2023/)",
    "Direction de l'habitat, de l'urbanisme et des paysages (DHUP), ministère du Logement",
    sprintf("`data/dhup/loyers-appartements.parquet` (%s ko)", round(file.size(dat_path) / 1024)),
    format(as.Date(file.mtime(dat_path)), "%d %B %Y"),
    sprintf("%s communes / mailles", format(nrow(dat), big.mark = " "))
  )
) |>
  gt::gt() |>
  gt::fmt_markdown(columns = `  `) |>
  gt::tab_options(table.width = "100%", column_labels.hidden = TRUE)
Jeu de données Carte des loyers — indicateurs de loyers d’annonce par commune
Producteur Direction de l’habitat, de l’urbanisme et des paysages (DHUP), ministère du Logement
Fichier data/dhup/loyers-appartements.parquet (1110 ko)
Mise à jour 24 septembre 2026
Observations 34 900 communes / mailles