SECTEURS_LOYERS
Code
INDICES_LOYERS |>
group_by (SECTEURS_LOYERS, Secteurs_loyers) |>
summarise (Nobs = n ()) |>
arrange (- Nobs) %>%
{if (is_html_output ()) print_table (.) else .}
TOUS_SECTEURS
Tous secteurs
1869
SECTEUR_SOCIAL
Secteur social
1793
SECTEUR_LIBRE
Secteur libre
1784
NATURE
Code
INDICES_LOYERS |>
group_by (NATURE, Nature) |>
summarise (Nobs = n ()) |>
arrange (- Nobs) %>%
{if (is_html_output ()) print_table (.) else .}
INDICE
Indice
1839
GLISSEMENT_TRIMESTRIEL
Glissement trimestriel
1829
GLISSEMENT_ANNUEL
Glissement annuel
1778
REF_AREA
Code
INDICES_LOYERS |>
group_by (REF_AREA, Ref_area) |>
summarise (Nobs = n ()) |>
arrange (- Nobs) %>%
{if (is_html_output ()) print_table (.) else .}
FM
France métropolitaine
1410
AGGLO_PARIS
NA
1314
PR
NA
1314
D971
Guadeloupe
549
D972
Martinique
258
D974
La Réunion
258
FR-D976
France hors Mayotte (France métropolitaine + 4 DOM)
258
D973
Guyane
85
OBS_STATUS
Code
INDICES_LOYERS |>
group_by (OBS_STATUS, Obs_status) |>
summarise (Nobs = n ()) |>
arrange (- Nobs) %>%
{if (is_html_output ()) print_table (.) else .}
A
Valeur normale
5086
U
Valeur atypique
360
TITLE_FR
Code
INDICES_LOYERS |>
group_by (IDBANK, TITLE_FR) |>
summarise (Nobs = n ()) |>
arrange (- Nobs) %>%
{if (is_html_output ()) datatable (., filter = 'top' , rownames = F) else .}
Par Type
Tous Secteurs
Tous
Code
INDICES_LOYERS |>
filter (SECTEURS_LOYERS == "TOUS_SECTEURS" ,
NATURE == "INDICE" ,
REF_AREA %in% c ("FM" , "AGGLO_PARIS" , "PR" )) |>
quarter_to_date () |>
ggplot () + ylab ("Indice des loyers" ) + xlab ("" ) + theme_minimal () +
geom_line (aes (x = date, y = OBS_VALUE, color = Ref_area)) +
scale_x_date (breaks = seq (1920 , 2100 , 5 ) |> paste0 ("-01-01" ) |> as.Date (),
labels = date_format ("%Y" )) +
theme (legend.position = c (0.75 , 0.3 ),
legend.title = element_blank ()) +
scale_y_log10 (breaks = seq (0 , 400 , 10 ),
labels = dollar_format (accuracy = 1 , prefix = "" ))
Secteur libre
Tous
Code
INDICES_LOYERS |>
filter (SECTEURS_LOYERS == "SECTEUR_LIBRE" ,
NATURE == "INDICE" ,
REF_AREA %in% c ("FM" , "AGGLO_PARIS" , "PR" )) |>
quarter_to_date () |>
ggplot () + ylab ("Indice des loyers" ) + xlab ("" ) + theme_minimal () +
geom_line (aes (x = date, y = OBS_VALUE, color = Ref_area)) +
scale_x_date (breaks = seq (1920 , 2100 , 5 ) |> paste0 ("-01-01" ) |> as.Date (),
labels = date_format ("%Y" )) +
theme (legend.position = c (0.75 , 0.3 ),
legend.title = element_blank ()) +
scale_y_log10 (breaks = seq (0 , 400 , 10 ),
labels = dollar_format (accuracy = 1 , prefix = "" ))
2017-
Sans IRL
Code
INDICES_LOYERS |>
filter (SECTEURS_LOYERS == "SECTEUR_LIBRE" ,
NATURE == "INDICE" ,
REF_AREA %in% c ("FM" , "AGGLO_PARIS" , "PR" )) |>
quarter_to_date () |>
arrange (desc (date)) |>
filter (date >= as.Date ("2017-01-01" )) |>
group_by (Ref_area) |>
arrange (date) |>
mutate (OBS_VALUE = 100 * OBS_VALUE/ OBS_VALUE[1 ]) |>
mutate (Ref_area = paste0 ("ILH - " , Ref_area)) |>
ggplot () + ylab ("Indice des loyers d'habitation (janvier 2017 = 100)" ) + xlab ("" ) + theme_minimal () +
geom_line (aes (x = date, y = OBS_VALUE, color = Ref_area)) +
scale_x_date (breaks = seq (1920 , 2100 , 1 ) |> paste0 ("-01-01" ) |> as.Date (),
labels = date_format ("%Y" )) +
theme (legend.position = c (0.3 , 0.8 ),
legend.title = element_blank ()) +
scale_y_log10 (breaks = seq (0 , 400 , 1 ),
labels = dollar_format (accuracy = 1 , prefix = "" ))+
geom_label_repel (data = . %>% filter (date == max (date)),
aes (x = date, y = OBS_VALUE, color = Ref_area, label = round (OBS_VALUE, 1 )),
show.legend = F)
Avec IRL
Code
INDICES_LOYERS |>
bind_rows (IRL) |>
filter (IDBANK %in% c ("001515333" , "010600351" ,"010600352" , "010600353" )) |>
quarter_to_date () |>
filter (date >= as.Date ("2017-01-01" )) |>
group_by (IDBANK) |>
arrange (date) |>
mutate (OBS_VALUE = 100 * OBS_VALUE/ OBS_VALUE[1 ]) |>
mutate (Ref_area = ifelse (IDBANK %in% c ("010600351" ,"010600352" , "010600353" ), paste0 ("Indice des loyers d'habitation (ILH) - " , Ref_area), "Indice de référence des Loyers (IRL)" )) |>
ggplot () + ylab ("Indice des loyers (janvier 2017 = 100)" ) + xlab ("" ) + theme_minimal () +
geom_line (aes (x = date, y = OBS_VALUE, color = Ref_area)) +
scale_x_date (breaks = seq (1920 , 2100 , 1 ) |> paste0 ("-01-01" ) |> as.Date (),
labels = date_format ("%Y" )) +
theme (legend.position = c (0.4 , 0.8 ),
legend.title = element_blank ()) +
scale_y_log10 (breaks = seq (0 , 400 , 1 ),
labels = dollar_format (accuracy = 1 , prefix = "" ))+
geom_label_repel (data = . %>% filter (date == max (date)),
aes (x = date, y = OBS_VALUE, color = Ref_area, label = round (OBS_VALUE, 1 )),
show.legend = F)
2001-2025
Insee vs. OLAP
Code
INDICES_LOYERS |>
bind_rows (IRL) |>
filter (IDBANK %in% c ("010600352" )) |>
quarter_to_date () |>
filter (date >= as.Date ("2001-01-01" ),
date <= as.Date ("2025-01-01" ),
month (date) == 1 ) |>
select (date, OBS_VALUE) |>
mutate (variable = "INSEE" ) |>
arrange (date) |>
mutate (OBS_VALUE = 100 * OBS_VALUE/ OBS_VALUE[1 ]) |>
bind_rows (loyers_agglo_paris |>
mutate (OBS_VALUE = 100 * cumprod (1 + value/ 100 ),
year = year+ 1 ) |>
add_row (year = 2001 , OBS_VALUE = 100 ) |>
mutate (date = paste0 (year, "-01-01" ) |> as.Date ()) |>
mutate (variable = "OLAP" )) |>
bind_rows (` IPCH-IPC-2015-ensemble-Q ` |>
mutate (date = as.Date (date)) |>
rename (variable = INDICATEUR) |>
group_by (variable) |>
filter (date >= as.Date ("2001-01-01" ),
date <= as.Date ("2025-01-01" )) |>
arrange (date) |>
mutate (OBS_VALUE = 100 * OBS_VALUE/ OBS_VALUE[1 ])) |>
mutate (variable = factor (variable,
levels = c ("OLAP" ,
"IPCH" ,
"INSEE" ,
"IPC" ),
labels = c ("Indice des Loyers de l'Agglomération Parisienne. Source: OLAP" ,
"Indice des Prix à la Consommation Harmonisé (IPCH) - Eurostat" ,
"Indice des Loyers de l'Agglomération Parisienne. Source: INSEE" ,
"Indice des Prix à la Consommation (IPC) - Insee" ))) |>
ggplot () + ylab ("Janvier 2001 = 100" ) + xlab ("" ) + theme_minimal () +
geom_line (aes (x = date, y = OBS_VALUE, color = variable)) +
scale_x_date (breaks = seq (1920 , 2100 , 2 ) |> paste0 ("-01-01" ) |> as.Date (),
labels = date_format ("%Y" )) +
theme (legend.position = c (0.4 , 0.9 ),
legend.title = element_blank ()) +
scale_y_log10 (breaks = seq (0 , 400 , 5 ),
labels = dollar_format (accuracy = 1 , prefix = "" ))+
geom_label_repel (data = . %>% filter (date == max (date)),
aes (x = date, y = OBS_VALUE, color = variable, label = round (OBS_VALUE, 1 )),
show.legend = F)
Insee vs. OLAP
Code
INDICES_LOYERS |>
bind_rows (IRL) |>
filter (IDBANK %in% c ("010600352" )) |>
quarter_to_date () |>
filter (date >= as.Date ("2017-01-01" ),
date <= as.Date ("2025-01-01" ),
month (date) == 1 ) |>
select (date, OBS_VALUE) |>
mutate (variable = "INSEE" ) |>
arrange (date) |>
mutate (OBS_VALUE = 100 * OBS_VALUE/ OBS_VALUE[1 ]) |>
bind_rows (loyers_agglo_paris |>
filter (year >= 2017 ) |>
mutate (OBS_VALUE = 100 * cumprod (1 + value/ 100 ),
year = year+ 1 ) |>
add_row (year = 2017 , OBS_VALUE = 100 ) |>
mutate (date = paste0 (year, "-01-01" ) |> as.Date ()) |>
mutate (variable = "OLAP" )) |>
mutate (variable = factor (variable,
levels = c ("OLAP" ,
"INSEE" ),
labels = c ("Indice des Loyers de l'Agglomération Parisienne. Source: OLAP" ,
"Indice des Loyers de l'Agglomération Parisienne. Source: INSEE" ))) |>
ggplot () + ylab ("Indice des loyers (janvier 2017 = 100)" ) + xlab ("" ) + theme_minimal () +
geom_line (aes (x = date, y = OBS_VALUE, color = variable)) +
scale_x_date (breaks = seq (1920 , 2100 , 1 ) |> paste0 ("-01-01" ) |> as.Date (),
labels = date_format ("%Y" )) +
theme (legend.position = c (0.4 , 0.9 ),
legend.title = element_blank ()) +
scale_y_log10 (breaks = seq (0 , 400 , 2 ),
labels = dollar_format (accuracy = 1 , prefix = "" ))+
geom_label (data = . %>% filter (date == max (date)),
aes (x = date, y = OBS_VALUE, color = variable, label = round (OBS_VALUE, 1 )),
show.legend = F)
Avec IRL
Code
INDICES_LOYERS |>
bind_rows (IRL) |>
filter (IDBANK %in% c ("001515333" , "010600351" ,"010600352" , "010600353" )) |>
quarter_to_date () |>
filter (date >= as.Date ("2001-01-01" ),
date <= as.Date ("2025-01-01" )) |>
group_by (IDBANK) |>
arrange (date) |>
mutate (OBS_VALUE = 100 * OBS_VALUE/ OBS_VALUE[1 ]) |>
mutate (Ref_area = ifelse (IDBANK %in% c ("010600351" ,"010600352" , "010600353" ), paste0 ("Indice des loyers d'habitation (ILH) - " , Ref_area), "Indice de référence des Loyers (IRL)" )) |>
ggplot () + ylab ("Indice des loyers (janvier 2017 = 100)" ) + xlab ("" ) + theme_minimal () +
geom_line (aes (x = date, y = OBS_VALUE, color = Ref_area)) +
scale_x_date (breaks = seq (1920 , 2100 , 2 ) |> paste0 ("-01-01" ) |> as.Date (),
labels = date_format ("%Y" )) +
theme (legend.position = c (0.4 , 0.8 ),
legend.title = element_blank ()) +
scale_y_log10 (breaks = seq (0 , 400 , 5 ),
labels = dollar_format (accuracy = 1 , prefix = "" ))+
geom_label_repel (data = . %>% filter (date == max (date)),
aes (x = date, y = OBS_VALUE, color = Ref_area, label = round (OBS_VALUE, 1 )),
show.legend = F)
2001-2020
Insee vs. OLAP
Code
INDICES_LOYERS |>
bind_rows (IRL) |>
filter (IDBANK %in% c ("010600352" )) |>
quarter_to_date () |>
filter (date >= as.Date ("2001-01-01" ),
date <= as.Date ("2021-01-01" ),
month (date) == 1 ) |>
select (date, OBS_VALUE) |>
mutate (variable = "INSEE" ) |>
arrange (date) |>
mutate (OBS_VALUE = 100 * OBS_VALUE/ OBS_VALUE[1 ]) |>
bind_rows (loyers_agglo_paris |>
mutate (OBS_VALUE = 100 * cumprod (1 + value/ 100 ),
year = year+ 1 ) |>
add_row (year = 2001 , OBS_VALUE = 100 ) |>
mutate (date = paste0 (year, "-01-01" ) |> as.Date ()) |>
mutate (variable = "OLAP" ) |>
filter (date <= as.Date ("2021-01-01" ))) |>
bind_rows (` IPCH-IPC-2015-ensemble-Q ` |>
mutate (date = as.Date (date)) |>
rename (variable = INDICATEUR) |>
group_by (variable) |>
filter (date >= as.Date ("2001-01-01" ),
date <= as.Date ("2021-01-01" )) |>
arrange (date) |>
mutate (OBS_VALUE = 100 * OBS_VALUE/ OBS_VALUE[1 ])) |>
mutate (variable = factor (variable,
levels = c ("OLAP" ,
"INSEE" ,
"IPCH" ,
"IPC" ),
labels = c ("Indice des Loyers de l'Agglomération Parisienne. Source: OLAP" ,
"Indice des Loyers de l'Agglomération Parisienne. Source: INSEE" ,
"Indice des Prix à la Consommation Harmonisé (IPCH) - Eurostat" ,
"Indice des Prix à la Consommation (IPC) - Insee" ))) |>
ggplot () + ylab ("Janvier 2001 = 100" ) + xlab ("" ) + theme_minimal () +
geom_line (aes (x = date, y = OBS_VALUE, color = variable)) +
scale_x_date (breaks = seq (2001 , 2100 , 2 ) |> paste0 ("-01-01" ) |> as.Date (),
labels = date_format ("%Y" )) +
theme (legend.position = c (0.32 , 0.85 ),
legend.title = element_blank ()) +
scale_y_log10 (breaks = seq (0 , 400 , 5 ),
labels = dollar_format (accuracy = 1 , prefix = "" ))+
geom_label (data = . %>% filter (date == max (date)),
aes (x = date, y = OBS_VALUE, color = variable, label = round (OBS_VALUE, 1 )),
show.legend = F)
2001-2024
Insee vs. OLAP
Code
INDICES_LOYERS |>
bind_rows (IRL) |>
filter (IDBANK %in% c ("010600352" )) |>
quarter_to_date () |>
filter (date >= as.Date ("2001-01-01" ),
date <= as.Date ("2024-01-01" ),
month (date) == 1 ) |>
select (date, OBS_VALUE) |>
mutate (variable = "INSEE" ) |>
arrange (date) |>
mutate (OBS_VALUE = 100 * OBS_VALUE/ OBS_VALUE[1 ]) |>
bind_rows (loyers_agglo_paris |>
mutate (OBS_VALUE = 100 * cumprod (1 + value/ 100 ),
year = year+ 1 ) |>
add_row (year = 2001 , OBS_VALUE = 100 ) |>
mutate (date = paste0 (year, "-01-01" ) |> as.Date ()) |>
mutate (variable = "OLAP" ) |>
filter (date <= as.Date ("2024-01-01" ))) |>
bind_rows (` IPCH-IPC-2015-ensemble-Q ` |>
mutate (date = as.Date (date)) |>
rename (variable = INDICATEUR) |>
group_by (variable) |>
filter (date >= as.Date ("2001-01-01" ),
date <= as.Date ("2024-01-01" )) |>
arrange (date) |>
mutate (OBS_VALUE = 100 * OBS_VALUE/ OBS_VALUE[1 ])) |>
mutate (variable = factor (variable,
levels = c ("OLAP" ,
"IPCH" ,
"INSEE" ,
"IPC" ),
labels = c ("Indice des Loyers de l'Agglomération Parisienne. Source: OLAP" ,
"Indice des Prix à la Consommation Harmonisé (IPCH) - Eurostat" ,
"Indice des Loyers de l'Agglomération Parisienne. Source: INSEE" ,
"Indice des Prix à la Consommation (IPC) - Insee" ))) |>
ggplot () + ylab ("Janvier 2001 = 100" ) + xlab ("" ) + theme_minimal () +
geom_line (aes (x = date, y = OBS_VALUE, color = variable)) +
scale_x_date (breaks = seq (2001 , 2100 , 2 ) |> paste0 ("-01-01" ) |> as.Date (),
labels = date_format ("%Y" )) +
theme (legend.position = c (0.35 , 0.85 ),
legend.title = element_blank ()) +
scale_y_log10 (breaks = seq (0 , 400 , 5 ),
labels = dollar_format (accuracy = 1 , prefix = "" ))+
geom_label_repel (data = . %>% filter (date == max (date)),
aes (x = date, y = OBS_VALUE, color = variable, label = round (OBS_VALUE, 1 )),
show.legend = F)
2017-2025
Avec IRL
Code
INDICES_LOYERS |>
bind_rows (IRL) |>
filter (IDBANK %in% c ("001515333" , "010600351" ,"010600352" , "010600353" )) |>
quarter_to_date () |>
filter (date >= as.Date ("2017-01-01" ),
date <= as.Date ("2025-01-01" )) |>
group_by (IDBANK) |>
arrange (date) |>
mutate (OBS_VALUE = 100 * OBS_VALUE/ OBS_VALUE[1 ]) |>
mutate (Ref_area = ifelse (IDBANK %in% c ("010600351" ,"010600352" , "010600353" ), paste0 ("Indice des loyers d'habitation (ILH) - " , Ref_area), "Indice de référence des Loyers (IRL)" )) |>
ggplot () + ylab ("Indice des loyers (janvier 2017 = 100)" ) + xlab ("" ) + theme_minimal () +
geom_line (aes (x = date, y = OBS_VALUE, color = Ref_area)) +
scale_x_date (breaks = seq (1920 , 2100 , 1 ) |> paste0 ("-01-01" ) |> as.Date (),
labels = date_format ("%Y" )) +
theme (legend.position = c (0.4 , 0.8 ),
legend.title = element_blank ()) +
scale_y_log10 (breaks = seq (0 , 400 , 1 ),
labels = dollar_format (accuracy = 1 , prefix = "" ))+
geom_label_repel (data = . %>% filter (date == max (date)),
aes (x = date, y = OBS_VALUE, color = Ref_area, label = round (OBS_VALUE, 1 )),
show.legend = F)
2017-2024
Avec IRL
Code
INDICES_LOYERS |>
bind_rows (IRL) |>
filter (IDBANK %in% c ("001515333" , "010600351" ,"010600352" , "010600353" )) |>
quarter_to_date () |>
filter (date >= as.Date ("2017-01-01" ),
date <= as.Date ("2024-01-01" )) |>
group_by (IDBANK) |>
arrange (date) |>
mutate (OBS_VALUE = 100 * OBS_VALUE/ OBS_VALUE[1 ]) |>
mutate (Ref_area = ifelse (IDBANK %in% c ("010600351" ,"010600352" , "010600353" ), paste0 ("Indice des loyers d'habitation (ILH) - " , Ref_area), "Indice de référence des Loyers (IRL)" )) |>
ggplot () + ylab ("Indice des loyers (janvier 2017 = 100)" ) + xlab ("" ) + theme_minimal () +
geom_line (aes (x = date, y = OBS_VALUE, color = Ref_area)) +
scale_x_date (breaks = seq (1920 , 2100 , 1 ) |> paste0 ("-01-01" ) |> as.Date (),
labels = date_format ("%Y" )) +
theme (legend.position = c (0.4 , 0.8 ),
legend.title = element_blank ()) +
scale_y_log10 (breaks = seq (0 , 400 , 1 ),
labels = dollar_format (accuracy = 1 , prefix = "" ))+
geom_label_repel (data = . %>% filter (date == max (date)),
aes (x = date, y = OBS_VALUE, color = Ref_area, label = round (OBS_VALUE, 1 )),
show.legend = F)
Secteur social
Code
INDICES_LOYERS |>
filter (SECTEURS_LOYERS == "SECTEUR_SOCIAL" ,
NATURE == "INDICE" ,
REF_AREA %in% c ("FM" , "AGGLO_PARIS" , "PR" )) |>
quarter_to_date () |>
ggplot () + ylab ("Indice des loyers" ) + xlab ("" ) + theme_minimal () +
geom_line (aes (x = date, y = OBS_VALUE, color = Ref_area)) +
scale_x_date (breaks = seq (1920 , 2100 , 5 ) |> paste0 ("-01-01" ) |> as.Date (),
labels = date_format ("%Y" )) +
theme (legend.position = c (0.75 , 0.3 ),
legend.title = element_blank ()) +
scale_y_log10 (breaks = seq (0 , 400 , 10 ),
labels = dollar_format (accuracy = 1 , prefix = "" ))
Par région
Liste
Code
INDICES_LOYERS |>
filter (TIME_PERIOD == "2020-Q2" ,
NATURE == "INDICE" ,
SECTEURS_LOYERS == "TOUS_SECTEURS" ) |>
select (REF_AREA, TITLE_FR, OBS_VALUE) |>
mutate (TITLE_FR = gsub ("Indice des loyers – Tous secteurs – " , "" , TITLE_FR),
TITLE_FR = gsub (" – Base 100 en janvier 2019" , "" , TITLE_FR)) %>%
{if (is_html_output ()) print_table (.) else .}
FM
France métropolitaine
100.6
AGGLO_PARIS
Agglomération parisienne
100.8
PR
Reste de la France métropolitaine
100.5
D971
Guadeloupe
101.1
D972
Martinique
101.2
D973
Guyane
101.0
D974
La Réunion
101.1
FR-D976
France (hors Mayotte)
100.6
France
All
Code
INDICES_LOYERS |>
filter (REF_AREA == "FM" ,
NATURE == "INDICE" ) |>
quarter_to_date () |>
ggplot () + ylab ("Indice des loyers" ) + xlab ("" ) + theme_minimal () +
geom_line (aes (x = date, y = OBS_VALUE, color = Secteurs_loyers)) +
scale_x_date (breaks = seq (1920 , 2100 , 5 ) |> paste0 ("-01-01" ) |> as.Date (),
labels = date_format ("%Y" )) +
theme (legend.position = c (0.75 , 0.3 ),
legend.title = element_blank ()) +
scale_y_log10 (breaks = seq (0 , 400 , 10 ),
labels = dollar_format (accuracy = 1 , prefix = "" ))
1990-
Code
INDICES_LOYERS |>
filter (REF_AREA == "FM" ,
NATURE == "INDICE" ) |>
quarter_to_date () |>
filter (date >= as.Date ("1990-01-01" )) |>
group_by (SECTEURS_LOYERS) |>
arrange (date) |>
mutate (OBS_VALUE = 100 * OBS_VALUE/ OBS_VALUE[1 ]) |>
ggplot () + ylab ("Indice des loyers" ) + xlab ("" ) + theme_minimal () +
geom_line (aes (x = date, y = OBS_VALUE, color = Secteurs_loyers)) +
scale_x_date (breaks = seq (1920 , 2100 , 5 ) |> paste0 ("-01-01" ) |> as.Date (),
labels = date_format ("%Y" )) +
theme (legend.position = c (0.75 , 0.3 ),
legend.title = element_blank ()) +
scale_y_log10 (breaks = seq (0 , 400 , 10 ),
labels = dollar_format (accuracy = 1 , prefix = "" ))
1992-
Code
INDICES_LOYERS |>
filter (REF_AREA == "FM" ,
NATURE == "INDICE" ) |>
quarter_to_date () |>
filter (date >= as.Date ("1992-01-01" )) |>
group_by (SECTEURS_LOYERS) |>
arrange (date) |>
mutate (OBS_VALUE = 100 * OBS_VALUE/ OBS_VALUE[1 ]) |>
ggplot () + ylab ("Indice des loyers" ) + xlab ("" ) + theme_minimal () +
geom_line (aes (x = date, y = OBS_VALUE, color = Secteurs_loyers)) +
scale_x_date (breaks = seq (1920 , 2100 , 2 ) |> paste0 ("-01-01" ) |> as.Date (),
labels = date_format ("%Y" )) +
theme (legend.position = c (0.75 , 0.3 ),
legend.title = element_blank ()) +
scale_y_log10 (breaks = seq (0 , 400 , 10 ),
labels = dollar_format (accuracy = 1 , prefix = "" ))
2000-
Code
INDICES_LOYERS |>
filter (REF_AREA == "FM" ,
NATURE == "INDICE" ) |>
quarter_to_date () |>
filter (date >= as.Date ("2000-01-01" )) |>
group_by (SECTEURS_LOYERS) |>
arrange (date) |>
mutate (OBS_VALUE = 100 * OBS_VALUE/ OBS_VALUE[1 ]) |>
ggplot () + ylab ("Indice des loyers" ) + xlab ("" ) + theme_minimal () +
geom_line (aes (x = date, y = OBS_VALUE, color = Secteurs_loyers)) +
scale_x_date (breaks = seq (1920 , 2100 , 5 ) |> paste0 ("-01-01" ) |> as.Date (),
labels = date_format ("%Y" )) +
theme (legend.position = c (0.75 , 0.3 ),
legend.title = element_blank ()) +
scale_y_log10 (breaks = seq (0 , 400 , 10 ),
labels = dollar_format (accuracy = 1 , prefix = "" ))
2017-
Code
INDICES_LOYERS |>
filter (REF_AREA == "FM" ,
NATURE == "INDICE" ) |>
quarter_to_date () |>
filter (date >= as.Date ("2017-01-01" )) |>
group_by (SECTEURS_LOYERS) |>
arrange (date) |>
mutate (OBS_VALUE = 100 * OBS_VALUE/ OBS_VALUE[1 ]) |>
ggplot () + ylab ("Indice des loyers" ) + xlab ("" ) + theme_minimal () +
geom_line (aes (x = date, y = OBS_VALUE, color = Secteurs_loyers)) +
scale_x_date (breaks = seq (1920 , 2100 , 1 ) |> paste0 ("-01-01" ) |> as.Date (),
labels = date_format ("%Y" )) +
theme (legend.position = c (0.75 , 0.3 ),
legend.title = element_blank ()) +
scale_y_log10 (breaks = seq (0 , 400 , 1 ),
labels = dollar_format (accuracy = 1 , prefix = "" )) +
geom_label (data = . %>% filter (date == max (date)),
aes (x = date, y = OBS_VALUE, color = Secteurs_loyers, label = round (OBS_VALUE, 1 )),
show.legend = F)
Agglomération Parisienne
All
Code
INDICES_LOYERS |>
filter (REF_AREA == "AGGLO_PARIS" ,
NATURE == "INDICE" ) |>
quarter_to_date () |>
ggplot () + ylab ("Indice des loyers" ) + xlab ("" ) + theme_minimal () +
geom_line (aes (x = date, y = OBS_VALUE, color = Secteurs_loyers)) +
scale_x_date (breaks = seq (1920 , 2100 , 5 ) |> paste0 ("-01-01" ) |> as.Date (),
labels = date_format ("%Y" )) +
theme (legend.position = c (0.75 , 0.3 ),
legend.title = element_blank ()) +
scale_y_log10 (breaks = seq (0 , 400 , 10 ),
labels = dollar_format (accuracy = 1 , prefix = "" ))
1990-
Code
INDICES_LOYERS |>
filter (REF_AREA == "AGGLO_PARIS" ,
NATURE == "INDICE" ) |>
quarter_to_date () |>
filter (date >= as.Date ("1990-01-01" )) |>
group_by (SECTEURS_LOYERS) |>
arrange (date) |>
mutate (OBS_VALUE = 100 * OBS_VALUE/ OBS_VALUE[1 ]) |>
ggplot () + ylab ("Indice des loyers" ) + xlab ("" ) + theme_minimal () +
geom_line (aes (x = date, y = OBS_VALUE, color = Secteurs_loyers)) +
scale_x_date (breaks = seq (1920 , 2100 , 5 ) |> paste0 ("-01-01" ) |> as.Date (),
labels = date_format ("%Y" )) +
theme (legend.position = c (0.75 , 0.3 ),
legend.title = element_blank ()) +
scale_y_log10 (breaks = seq (0 , 400 , 10 ),
labels = dollar_format (accuracy = 1 , prefix = "" ))
1992-
Code
INDICES_LOYERS |>
filter (REF_AREA == "AGGLO_PARIS" ,
NATURE == "INDICE" ) |>
quarter_to_date () |>
filter (date >= as.Date ("1992-01-01" )) |>
group_by (SECTEURS_LOYERS) |>
arrange (date) |>
mutate (OBS_VALUE = 100 * OBS_VALUE/ OBS_VALUE[1 ]) |>
ggplot () + ylab ("Indice des loyers" ) + xlab ("" ) + theme_minimal () +
geom_line (aes (x = date, y = OBS_VALUE, color = Secteurs_loyers)) +
scale_x_date (breaks = seq (1920 , 2100 , 2 ) |> paste0 ("-01-01" ) |> as.Date (),
labels = date_format ("%Y" )) +
theme (legend.position = c (0.75 , 0.3 ),
legend.title = element_blank ()) +
scale_y_log10 (breaks = seq (0 , 400 , 10 ),
labels = dollar_format (accuracy = 1 , prefix = "" ))
2000-
Code
INDICES_LOYERS |>
filter (REF_AREA == "AGGLO_PARIS" ,
NATURE == "INDICE" ) |>
quarter_to_date () |>
filter (date >= as.Date ("2000-01-01" )) |>
group_by (SECTEURS_LOYERS) |>
arrange (date) |>
mutate (OBS_VALUE = 100 * OBS_VALUE/ OBS_VALUE[1 ]) |>
ggplot () + ylab ("Indice des loyers" ) + xlab ("" ) + theme_minimal () +
geom_line (aes (x = date, y = OBS_VALUE, color = Secteurs_loyers)) +
scale_x_date (breaks = seq (1920 , 2100 , 5 ) |> paste0 ("-01-01" ) |> as.Date (),
labels = date_format ("%Y" )) +
theme (legend.position = c (0.75 , 0.3 ),
legend.title = element_blank ()) +
scale_y_log10 (breaks = seq (0 , 400 , 10 ),
labels = dollar_format (accuracy = 1 , prefix = "" ))
2017-
Code
INDICES_LOYERS |>
filter (REF_AREA == "AGGLO_PARIS" ,
NATURE == "INDICE" ) |>
quarter_to_date () |>
filter (date >= as.Date ("2017-01-01" )) |>
group_by (SECTEURS_LOYERS) |>
arrange (date) |>
mutate (OBS_VALUE = 100 * OBS_VALUE/ OBS_VALUE[1 ]) |>
ggplot () + ylab ("Indice des loyers" ) + xlab ("" ) + theme_minimal () +
geom_line (aes (x = date, y = OBS_VALUE, color = Secteurs_loyers)) +
scale_x_date (breaks = seq (1920 , 2100 , 1 ) |> paste0 ("-01-01" ) |> as.Date (),
labels = date_format ("%Y" )) +
theme (legend.position = c (0.75 , 0.3 ),
legend.title = element_blank ()) +
scale_y_log10 (breaks = seq (0 , 400 , 1 ),
labels = dollar_format (accuracy = 1 , prefix = "" )) +
geom_label (data = . %>% filter (date == max (date)),
aes (x = date, y = OBS_VALUE, color = Secteurs_loyers, label = round (OBS_VALUE, 1 )),
show.legend = F)
Province
Code
INDICES_LOYERS |>
filter (REF_AREA == "PR" ,
NATURE == "INDICE" ) |>
quarter_to_date () |>
ggplot () + ylab ("Indice des loyers" ) + xlab ("" ) + theme_minimal () +
geom_line (aes (x = date, y = OBS_VALUE, color = Secteurs_loyers)) +
scale_x_date (breaks = seq (1920 , 2100 , 5 ) |> paste0 ("-01-01" ) |> as.Date (),
labels = date_format ("%Y" )) +
theme (legend.position = c (0.75 , 0.3 ),
legend.title = element_blank ()) +
scale_y_log10 (breaks = seq (0 , 400 , 10 ),
labels = dollar_format (accuracy = 1 , prefix = "" ))
France (hors Mayotte)
Code
INDICES_LOYERS |>
filter (REF_AREA == "FR-D976" ,
NATURE == "INDICE" ) |>
quarter_to_date () |>
ggplot () + ylab ("Indice des loyers" ) + xlab ("" ) + theme_minimal () +
geom_line (aes (x = date, y = OBS_VALUE, color = Secteurs_loyers)) +
scale_x_date (breaks = seq (1920 , 2100 , 1 ) |> paste0 ("-01-01" ) |> as.Date (),
labels = date_format ("%Y" )) +
theme (legend.position = c (0.75 , 0.3 ),
legend.title = element_blank ()) +
scale_y_log10 (breaks = seq (0 , 400 , 1 ),
labels = dollar_format (accuracy = 1 , prefix = "" ))
Info
Last observation : Trimestrielle: 2026-Q1 (N = 66)
First observation : Trimestrielle: 1986-Q4 (N = 6)
Number of observations : 5 446
Last data update : 14 aoû 2026, 01:50. Last compile : 14 aoû 2026, 05:53
acpr
as151
Enquête annuelle du SGACPR sur le financement de l'habitat 2022
2026-08-12
2026-08-01
acpr
as160
Enquête annuelle du SGACPR sur le financement de l'habitat 2023
2026-08-12
2026-08-01
acpr
as174
Enquête annuelle du SGACPR sur le financement de l'habitat 2024
2026-08-12
2026-08-01
bdf
BSI1
Agrégats monétaires - France
2026-08-12
2026-08-10
bdf
CPP
Prix immobilier commercial
2026-08-12
2026-08-10
bdf
FM
Marché financier, taux
2026-08-12
2026-08-10
bdf
MIR
Taux d'intérêt - Zone euro
2026-08-12
2026-08-10
bdf
MIR1
Taux d'intérêt - France
2026-08-12
2026-08-10
bdf
RPP
Prix de l'immobilier
2026-08-12
2026-08-10
bdf
immobilier
Immobilier en France
2026-08-12
2026-08-01
cgedd
nombre-vente-maison-appartement-ancien
Nombre de ventes de logements anciens cumulé sur 12 mois
2026-08-12
2026-08-01
insee
CONSTRUCTION-LOGEMENTS
Construction de logements
2026-08-13
2026-08-12
insee
ENQ-CONJ-ART-BAT
Conjoncture dans l'artisanat du bâtiment
2026-08-13
2026-08-12
insee
ENQ-CONJ-IND-BAT
Conjoncture dans l'industrie du bâtiment - ENQ-CONJ-IND-BAT
2026-08-13
2026-08-13
insee
ENQ-CONJ-PROMO-IMMO
Conjoncture dans la promotion immobilière
2026-08-13
2026-08-13
insee
ENQ-CONJ-TP
Conjoncture dans les travaux publics
2026-08-13
2026-08-13
insee
ILC-ILAT-ICC
Indices pour la révision d’un bail commercial ou professionnel
2026-08-13
2026-08-13
insee
INDICES_LOYERS
Indices des loyers d'habitation (ILH)
2026-08-13
2026-08-13
insee
IPLA-IPLNA-2015
Indices des prix des logements neufs et Indices Notaires-Insee des prix des logements anciens
2026-08-13
2026-08-13
insee
IRL
Indice pour la révision d’un loyer d’habitation
2026-08-13
2026-08-13
insee
PARC-LOGEMENTS
Estimations annuelles du parc de logements (EAPL)
2026-08-13
2026-07-23
insee
SERIES_LOYERS
Variation des loyers
2026-08-13
2026-08-13
insee
t_dpe_val
Dépenses de consommation des ménages pré-engagées
2026-08-13
2026-08-02
notaires
arrdt
Prix au m^2 par arrondissement - arrdt
2026-08-12
2026-08-12
notaires
dep
Prix au m^2 par département
2026-08-12
2026-08-12
olap
loyers
Loyers
2026-08-01
2026-08-01
Info
Indices des loyers d’habitation (ILH). html
Enquête Loyers et charges. html
Questionnaire de l’enquête. pdf
Qualité de l’enquête relative à l’exercice 2018. pdf
Les données sont calculées à partir des résultats de l’enquête Loyers et charges et de celle sur les loyers auprès des bailleurs sociaux (ELBS). Le champ recouvre l’ensemble des résidences principales , louées vides , dont l’usage principal est l’habitation. L’indice est calculé selon la formule de Laspeyres appliquée à des loyers au mètre carré. On mesure une évolution à qualité constante, en rapportant les loyers du parc observés au trimestre T aux loyers du parc observés au trimestre T-1. Ces indices sont ensuite chaînés, du 1er mois d’un trimestre au 1er mois du trimestre précédent.
Ces données diffèrent de l’indice de référence des loyers (IRL), qui constitue la référence pour la révision des loyers en cours de bail dans le parc locatif privé, car l’évolution des loyers présentée ici est celle effectivement constatée. Si la variation réelle des loyers est corrélée à l’évolution de l’IRL, les deux indices ne sont cependant pas identiques.
LAST_UPDATE
Code
` INDICES_LOYERS ` |>
group_by (LAST_UPDATE) |>
summarise (Nobs = n ()) |>
arrange (desc (LAST_UPDATE)) |>
print_table_conditional ()