Indice pour la révision d’un loyer d’habitation
Data - INSEE
Info
Données sur l’inflation en France
| source | dataset | Title | .html | .rData |
|---|---|---|---|---|
| insee | IRL | Indice pour la révision d’un loyer d’habitation | 2025-12-25 | 2025-12-27 |
| insee | ILC-ILAT-ICC | Indices pour la révision d’un bail commercial ou professionnel | 2025-12-25 | 2025-12-27 |
| insee | INDICES_LOYERS | Indices des loyers - Base 2019 | 2025-12-25 | 2025-12-27 |
| insee | IPC-1970-1980 | Indice des prix à la consommation - Base 1970, 1980 | 2025-12-25 | 2025-12-27 |
| insee | IPC-1990 | Indices des prix à la consommation - Base 1990 | 2025-12-25 | 2025-12-27 |
| insee | IPC-2015 | Indice des prix à la consommation - Base 2015 | 2025-12-25 | 2025-12-27 |
| insee | IPC-PM-2015 | Prix moyens de vente de détail | 2025-12-25 | 2025-12-27 |
| insee | IPCH-2015 | Indices des prix à la consommation harmonisés | 2025-12-25 | 2025-12-27 |
| insee | IPCH-IPC-2015-ensemble | Indices des prix à la consommation harmonisés | 2025-12-25 | 2025-12-25 |
| insee | IPGD-2015 | Indice des prix dans la grande distribution | 2025-12-25 | 2025-12-20 |
| insee | IPLA-IPLNA-2015 | Indices des prix des logements neufs et Indices Notaires-Insee des prix des logements anciens | 2025-12-25 | 2025-12-27 |
| insee | IPPI-2015 | Indices de prix de production et d'importation dans l'industrie | 2025-12-25 | 2025-12-27 |
| insee | SERIES_LOYERS | Variation des loyers | 2025-12-25 | 2025-12-27 |
| insee | T_CONSO_EFF_FONCTION | Consommation effective des ménages par fonction | 2025-12-25 | 2025-12-22 |
| insee | bdf2017 | Budget de famille 2017 | 2025-12-25 | 2023-11-21 |
| insee | echantillon-agglomerations-IPC-2024 | Échantillon d’agglomérations enquêtées de l’IPC en 2024 | 2025-12-25 | 2025-04-02 |
| insee | liste-varietes-IPC-2024 | Liste des variétés pour la mesure de l'IPC en 2024 | 2025-12-25 | 2025-04-02 |
| insee | ponderations-elementaires-IPC-2024 | Pondérations élémentaires 2024 intervenant dans le calcul de l’IPC | 2025-12-25 | 2025-04-02 |
Données sur l’immobilier
| source | dataset | Title | .html | .rData |
|---|---|---|---|---|
| insee | IRL | Indice pour la révision d’un loyer d’habitation | 2025-12-25 | 2025-12-27 |
| acpr | as151 | Enquête annuelle du SGACPR sur le financement de l'habitat 2022 | 2025-08-24 | 2024-04-05 |
| acpr | as160 | Enquête annuelle du SGACPR sur le financement de l'habitat 2023 | 2025-08-24 | 2024-09-26 |
| acpr | as174 | Enquête annuelle du SGACPR sur le financement de l'habitat 2024 | 2025-09-29 | 2025-09-29 |
| bdf | BSI1 | Agrégats monétaires - France | 2025-12-24 | 2025-12-24 |
| bdf | CPP | Prix immobilier commercial | 2025-12-24 | 2024-07-01 |
| bdf | FM | Marché financier, taux | 2025-12-24 | 2025-12-24 |
| bdf | MIR | Taux d'intérêt - Zone euro | 2025-12-24 | 2025-08-04 |
| bdf | MIR1 | Taux d'intérêt - France | 2025-12-24 | 2025-08-04 |
| bdf | RPP | Prix de l'immobilier | 2025-12-24 | 2025-12-24 |
| bdf | immobilier | Immobilier en France | 2025-12-24 | 2025-12-24 |
| cgedd | nombre-vente-maison-appartement-ancien | Nombre de ventes de logements anciens cumulé sur 12 mois | 2024-09-26 | 2024-09-26 |
| insee | CONSTRUCTION-LOGEMENTS | Construction de logements | 2025-12-25 | 2025-12-27 |
| insee | ENQ-CONJ-ART-BAT | Conjoncture dans l'artisanat du bâtiment | 2025-12-25 | 2025-12-27 |
| insee | ENQ-CONJ-IND-BAT | Conjoncture dans l'industrie du bâtiment - ENQ-CONJ-IND-BAT | 2025-12-25 | 2025-12-27 |
| insee | ENQ-CONJ-PROMO-IMMO | Conjoncture dans la promotion immobilière | 2025-12-25 | 2025-12-27 |
| insee | ENQ-CONJ-TP | Conjoncture dans les travaux publics | 2025-12-25 | 2025-12-27 |
| insee | ILC-ILAT-ICC | Indices pour la révision d’un bail commercial ou professionnel | 2025-12-25 | 2025-12-27 |
| insee | INDICES_LOYERS | Indices des loyers - Base 2019 | 2025-12-25 | 2025-12-27 |
| insee | IPLA-IPLNA-2015 | Indices des prix des logements neufs et Indices Notaires-Insee des prix des logements anciens | 2025-12-25 | 2025-12-27 |
| insee | PARC-LOGEMENTS | Estimations annuelles du parc de logements (EAPL) | 2025-12-25 | 2023-12-03 |
| insee | SERIES_LOYERS | Variation des loyers | 2025-12-25 | 2025-12-27 |
| insee | t_dpe_val | Dépenses de consommation des ménages pré-engagées | 2025-12-25 | 2025-12-27 |
| notaires | arrdt | Prix au m^2 par arrondissement - arrdt | 2025-09-29 | 2025-09-29 |
| notaires | dep | Prix au m^2 par département | 2025-09-29 | 2025-09-29 |
LAST_UPDATE
Code
IRL %>%
group_by(LAST_UPDATE) %>%
summarise(Nobs = n()) %>%
arrange(desc(LAST_UPDATE)) %>%
print_table_conditional()| LAST_UPDATE | Nobs |
|---|---|
| 2025-10-15 | 276 |
| 2008-02-04 | 62 |
Last
Code
IRL %>%
group_by(TIME_PERIOD) %>%
summarise(Nobs = n()) %>%
arrange(desc(TIME_PERIOD)) %>%
head(1) %>%
print_table_conditional()| TIME_PERIOD | Nobs |
|---|---|
| 2025-Q3 | 6 |
Liens
INSEE - La méthodologie de l’IRL. pdf
INSEE - méthodologie IRL base 1998. pdf
Indice de référence des loyers (IRL). html
Dernier indice IRL connu. html
Tableau sur le site de l’INSEE. html
Code
i_g("bib/insee/IR95_IRL_1T22/pour-en-savoir-plus.png")
TITLE_FR
Code
`IRL` %>%
group_by(IDBANK, TITLE_FR) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
{if (is_html_output()) print_table(.) else .}| IDBANK | TITLE_FR | Nobs |
|---|---|---|
| 001515333 | Indice de référence des loyers (IRL) | 92 |
| 001515334 | Indice de référence des loyers (IRL) - Variation annuelle | 92 |
| 000882470 | Indice de référence des loyers 2005 (IRL 2005) - Série arrêtée | 31 |
| 000882473 | Indice de référence des loyers 2005 (IRL 2005) - Variation annuelle - Série arrêtée | 31 |
| 010760507 | Indice de référence des loyers dans la collectivité de Corse | 23 |
| 010760508 | Indice de référence des loyers dans la collectivité de Corse - Variation annuelle | 23 |
| 010760509 | Indice de référence des loyers dans les collectivités régies par l’article 73 de la Constitution (régions et départements d’outre-mer) | 23 |
| 010760510 | Indice de référence des loyers dans les collectivités régies par l’article 73 de la Constitution (régions et départements d’outre-mer) - Variation annuelle | 23 |
BASIND
Code
`IRL` %>%
left_join(BASIND, by = "BASIND") %>%
group_by(BASIND, Basind) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
{if (is_html_output()) print_table(.) else .}| BASIND | Basind | Nobs |
|---|---|---|
| SO | Sans objet | 169 |
| 1998-T4 | 4ème trimestre de 1998 | 138 |
| 2004-T2 | 2ème trimestre de 2004 | 31 |
NATURE
Code
`IRL` %>%
left_join(NATURE, by = "NATURE") %>%
group_by(NATURE, Nature) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
print_table_conditional()| NATURE | Nature | Nobs |
|---|---|---|
| INDICE | Indice | 169 |
| VARIATIONS_A | Variations annuelles | 169 |
TIME_PERIOD
Code
`IRL` %>%
group_by(TIME_PERIOD) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
arrange(desc(TIME_PERIOD)) %>%
print_table_conditional()Indice
Linear
Tous
Code
IRL %>%
filter(NATURE == "INDICE") %>%
quarter_to_date %>%
ggplot(.) + theme_minimal() + ylab("") + xlab("") +
geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
theme(legend.title = element_blank(),
legend.position = c(0.6, 0.7)) +
scale_x_date(breaks = seq(1950, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 200, 5))
2017-
Code
IRL %>%
filter(NATURE == "INDICE") %>%
quarter_to_date %>%
filter(date >= as.Date("2017-01-01")) %>%
ggplot(.) + theme_minimal() + ylab("") + xlab("") +
geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
theme(legend.title = element_blank(),
legend.position = c(0.6, 0.7)) +
scale_x_date(breaks = seq(1950, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 200, 5))
Indice 100
2017-
Code
IRL %>%
filter(NATURE == "INDICE",
IDBANK == "001515333") %>%
quarter_to_date %>%
filter(date >= as.Date("2017-01-01")) %>%
arrange(date) %>%
mutate(OBS_VALUE = 100*OBS_VALUE/OBS_VALUE[1]) %>%
ggplot(.) + theme_minimal() + ylab("") + xlab("") +
geom_line(aes(x = date, y = OBS_VALUE)) +
theme(legend.title = element_blank(),
legend.position = c(0.2, 0.7)) +
scale_x_date(breaks = seq(1950, 2100, 1) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 200, 2))
Linear - 4 quarters rolling
Code
IRL %>%
filter(NATURE == "INDICE") %>%
quarter_to_date %>%
group_by(TITLE_FR) %>%
arrange(date) %>%
mutate(OBS_VALUE = OBS_VALUE/lag(OBS_VALUE, 4)-1) %>%
ggplot(.) + theme_minimal() + ylab("") + xlab("") +
geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
theme(legend.title = element_blank(),
legend.position = c(0.65, 0.95)) +
scale_x_date(breaks = seq(1950, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 300, 0.5),
labels = percent_format(accuracy = .1, prefix = ""))
Log
Code
IRL %>%
filter(NATURE == "INDICE") %>%
quarter_to_date %>%
ggplot(.) + theme_minimal() + ylab("") + xlab("") +
geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
theme(legend.title = element_blank(),
legend.position = c(0.38, 0.92)) +
scale_x_date(breaks = seq(1950, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 200, 5))
Variation annuelle
Tous
Code
IRL %>%
filter(NATURE == "VARIATIONS_A") %>%
quarter_to_date %>%
ggplot(.) + theme_minimal() + ylab("") + xlab("") +
geom_line(aes(x = date, y = OBS_VALUE/100, color = TITLE_FR)) +
theme(legend.title = element_blank(),
legend.position = c(0.5, 0.92)) +
scale_x_date(breaks = seq(1950, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-200, 200, .5),
labels = percent_format(acc = .1),
limits = 0.01*c(-0.2, 4))
2008-
Code
table1 <- IRL %>%
filter(NATURE == "VARIATIONS_A") %>%
quarter_to_date %>%
filter(date >= as.Date("2008-01-01")) %>%
select(date, OBS_VALUE, IDBANK, TITLE_FR)
table1 %>%
ggplot(.) + theme_minimal() + ylab("") + xlab("") +
geom_line(aes(x = date, y = OBS_VALUE/100, color = TITLE_FR)) +
theme(legend.title = element_blank(),
legend.position = c(0.5, 0.92)) +
scale_x_date(breaks = seq(1950, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-200, 200, .5),
labels = percent_format(acc = .1),
limits = 0.01*c(-0.2, 4))
Table
Code
table1 %>%
print_table_conditional()Répliquer IRL à partir de l’Ensemble hors loyer hors tabac
Répliquer l’IRL à partir de l’ensemble hors loyer hors tabac.
Données IRL fournies ici: https://www.insee.fr/fr/statistiques/serie/001515334.
Peuvent être calculées juste à partir de l’IPC hors loyers, hors tabac: https://www.insee.fr/fr/statistiques/serie/001763862.
Prévisions INSEE
Estimation
Code
i_g("bib/insee/PdC_09-05-22/table5.png")
IRL Juillet
Code
`IPC-2015` %>%
filter(PRIX_CONSO %in% c("4600"),
COICOP2016 %in% c("00", "SO"),
MENAGES_IPC == "ENSEMBLE",
NATURE == "INDICE",
REF_AREA == "FE",
FREQ == "M") %>%
select(TIME_PERIOD, OBS_VALUE) %>%
arrange(desc(TIME_PERIOD))# # A tibble: 335 × 2
# TIME_PERIOD OBS_VALUE
# <chr> <dbl>
# 1 2025-11 120.
# 2 2025-10 121.
# 3 2025-09 121.
# 4 2025-08 122.
# 5 2025-07 121.
# 6 2025-06 121.
# 7 2025-05 120.
# 8 2025-04 121.
# 9 2025-03 120.
# 10 2025-02 120.
# # ℹ 325 more rows
Ensemble
Trimestriel
All
Code
`IPC-2015` %>%
filter(PRIX_CONSO %in% c("4600"),
COICOP2016 %in% c("SO"),
MENAGES_IPC == "ENSEMBLE",
NATURE == "INDICE",
REF_AREA == "FE",
FREQ == "M") %>%
month_to_date %>%
arrange(date) %>%
transmute(date,
`Inflation Indice des loyers (IRL): Variation sur 12 mois de la moyenne sur 12 mois de l'IPC hors loyers, hors tabac` = zoo::rollmean(OBS_VALUE, 12, fill = NA, align = "right"),
`Inflation IPC hors loyers, hors tabac: Variation sur 12 mois de l'IPC hors loyers, hors tabac` = OBS_VALUE) %>%
filter(month(date) %in% c(12, 3, 6, 9)) %>%
gather(variable, value, -date) %>%
group_by(variable) %>%
mutate(value_d12 = value/lag(value, 4) - 1) %>%
ggplot() + ylab("Indice des loyers (simulé)") + xlab("") + theme_minimal() +
geom_line(aes(x = date, y = value_d12, color = variable)) +
scale_color_manual(values = c("blue", "red")) +
scale_x_date(breaks = seq(1920, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
theme(legend.position = c(0.5, 0.9),
legend.title = element_blank()) +
scale_y_continuous(breaks = 0.01*seq(-100, 300, 0.5),
labels = percent_format(accuracy = .1, prefix = ""))
2006-
Code
`IPC-2015` %>%
filter(PRIX_CONSO %in% c("4600"),
COICOP2016 %in% c("00", "SO"),
MENAGES_IPC == "ENSEMBLE",
NATURE == "INDICE",
REF_AREA == "FE",
FREQ == "M") %>%
month_to_date %>%
filter(date >= as.Date("2006-01-01")) %>%
arrange(date) %>%
transmute(date,
`Inflation Indice des loyers (IRL):\nVariation sur 12 mois de la moyenne sur 12 mois de l'IPC hors loyers, hors tabac` = zoo::rollmean(OBS_VALUE, 12, fill = NA, align = "right"),
`Inflation Indice des Prix à la Consommation (IPC-) hors loyers, hors tabac: \nVariation sur 12 mois de l'IPC hors loyers, hors tabac` = OBS_VALUE) %>%
filter(month(date) %in% c(12, 3, 6, 9)) %>%
gather(variable, value, -date) %>%
group_by(variable) %>%
mutate(value_d12 = value/lag(value, 4) - 1) %>%
na.omit %>%
filter(date >= as.Date("2008-01-01")) %>%
ggplot() + ylab("Indice des loyers (simulé)") + xlab("") + theme_minimal() +
geom_line(aes(x = date, y = value_d12, color = variable)) +
scale_color_manual(values = c("blue", "red")) +
scale_x_date(breaks = seq(1920, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
theme(legend.position = c(0.45, 0.9),
legend.title = element_blank(),
legend.key.size= unit(1.0, 'cm')) +
scale_y_continuous(breaks = 0.01*seq(-100, 300, 0.5),
labels = percent_format(accuracy = .1, prefix = ""))
2008-
Code
table2 <- `IPC-2015` %>%
filter(PRIX_CONSO %in% c("4600"),
COICOP2016 %in% c("00", "SO"),
MENAGES_IPC == "ENSEMBLE",
NATURE == "INDICE",
REF_AREA == "FE",
FREQ == "M") %>%
month_to_date %>%
filter(date >= as.Date("2006-01-01")) %>%
arrange(date) %>%
transmute(date,
`Inflation Indice des loyers (IRL):\nVariation sur 12 mois de la moyenne sur 12 mois de l'IPC hors loyers, hors tabac` = zoo::rollmean(OBS_VALUE, 12, fill = NA, align = "right"),
`Inflation Indice des Prix à la Consommation (IPC-) hors loyers, hors tabac: \nVariation sur 12 mois de l'IPC hors loyers, hors tabac` = OBS_VALUE) %>%
filter(month(date) %in% c(12, 3, 6, 9)) %>%
gather(variable, value, -date) %>%
group_by(variable) %>%
mutate(value_d12 = value/lag(value, 4) - 1) %>%
na.omit %>%
filter(date >= as.Date("2008-01-01"))
table2 %>%
ggplot() + ylab("Indice des loyers (simulé)") + xlab("") + theme_minimal() +
geom_line(aes(x = date, y = value_d12, color = variable)) +
scale_color_manual(values = c("blue", "red")) +
scale_x_date(breaks = seq(1920, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
theme(legend.position = c(0.45, 0.9),
legend.title = element_blank(),
legend.key.size= unit(1.0, 'cm')) +
scale_y_continuous(breaks = 0.01*seq(-100, 300, 0.5),
labels = percent_format(accuracy = .1, prefix = ""))
Mensuel
Code
`IPC-2015` %>%
filter(PRIX_CONSO %in% c("4600"),
COICOP2016 %in% c("00", "SO"),
MENAGES_IPC == "ENSEMBLE",
NATURE == "INDICE",
REF_AREA == "FE",
FREQ == "M") %>%
month_to_date %>%
arrange(date) %>%
transmute(date,
`Inflation Indice des loyers (IRL): Variation sur 12 mois de la moyenne sur 12 mois de l'IPC hors loyers, hors tabac` = zoo::rollmean(OBS_VALUE, 12, fill = NA, align = "right"),
`Inflation IPC hors loyers, hors tabac: Variation sur 12 mois de l'IPC hors loyers, hors tabac` = OBS_VALUE) %>%
gather(variable, value, -date) %>%
group_by(variable) %>%
mutate(value_d12 = value/lag(value, 12) - 1) %>%
ggplot() + ylab("Indice des loyers (simulé)") + xlab("") + theme_minimal() +
geom_line(aes(x = date, y = value_d12, color = variable)) +
scale_color_manual(values = c("blue", "red")) +
scale_x_date(breaks = seq(1920, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
theme(legend.position = c(0.5, 0.9),
legend.title = element_blank()) +
scale_y_continuous(breaks = 0.01*seq(-100, 300, 0.5),
labels = percent_format(accuracy = .1, prefix = ""))
Glissement annuel, Trimestriel
Tous
Code
`IPC-2015` %>%
filter(PRIX_CONSO %in% c("4600", "SO"),
COICOP2016 %in% c("00", "SO"),
MENAGES_IPC == "ENSEMBLE",
NATURE == "INDICE",
REF_AREA == "FE",
FREQ == "M") %>%
select_if(~ n_distinct(.) > 1) %>%
month_to_date %>%
arrange(date) %>%
left_join(PRIX_CONSO, by = "PRIX_CONSO") %>%
left_join(COICOP2016, by = "COICOP2016") %>%
group_by(Prix_conso) %>%
filter(month(date) %in% c(12, 3, 6, 9)) %>%
mutate(OBS_VALUE = OBS_VALUE/lag(OBS_VALUE, 4)-1,
Prix_conso = ifelse(PRIX_CONSO == "SO", "Ensemble", Prix_conso)) %>%
na.omit %>%
ggplot() + ylab("Inflation sur un an (IPC, IPCH)") + xlab("") + theme_minimal() +
geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
scale_x_date(breaks = seq(1920, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
theme(legend.position = c(0.35, 0.9),
legend.title = element_blank()) +
scale_y_continuous(breaks = 0.01*seq(-100, 300, 0.5),
labels = percent_format(accuracy = .1, prefix = ""))
1998-
Code
`IPC-2015` %>%
filter(PRIX_CONSO %in% c("4600", "SO"),
COICOP2016 %in% c("00", "SO"),
MENAGES_IPC == "ENSEMBLE",
NATURE == "INDICE",
REF_AREA == "FE",
FREQ == "M") %>%
select_if(~ n_distinct(.) > 1) %>%
month_to_date %>%
arrange(date) %>%
left_join(PRIX_CONSO, by = "PRIX_CONSO") %>%
group_by(Prix_conso) %>%
filter(month(date) %in% c(12, 3, 6, 9)) %>%
mutate(OBS_VALUE = OBS_VALUE/lag(OBS_VALUE, 4)-1,
Prix_conso = ifelse(PRIX_CONSO == "SO", "Ensemble", Prix_conso)) %>%
filter(date >= as.Date("1998-01-01")) %>%
na.omit %>%
ggplot() + ylab("Glissement annuel") + xlab("") + theme_minimal() +
geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
scale_x_date(breaks = seq(1920, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
theme(legend.position = c(0.2, 0.9),
legend.title = element_blank()) +
scale_y_continuous(breaks = 0.01*seq(-100, 300, 0.5),
labels = percent_format(accuracy = .1, prefix = ""))
2018-
Code
`IPC-2015` %>%
filter(PRIX_CONSO %in% c("4600", "SO"),
COICOP2016 %in% c("00", "SO"),
MENAGES_IPC == "ENSEMBLE",
NATURE == "INDICE",
REF_AREA == "FE",
FREQ == "M") %>%
select_if(~ n_distinct(.) > 1) %>%
month_to_date %>%
arrange(date) %>%
left_join(PRIX_CONSO, by = "PRIX_CONSO") %>%
group_by(Prix_conso) %>%
filter(month(date) %in% c(12, 3, 6, 9)) %>%
mutate(OBS_VALUE = OBS_VALUE/lag(OBS_VALUE, 4)-1,
Prix_conso = ifelse(PRIX_CONSO == "SO", "Ensemble", Prix_conso)) %>%
filter(date >= as.Date("2018-01-01")) %>%
na.omit %>%
ggplot() + ylab("Glissement annuel") + xlab("") + theme_minimal() +
geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
scale_x_date(breaks = seq(1920, 2100, 1) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
theme(legend.position = c(0.35, 0.9),
legend.title = element_blank()) +
scale_y_continuous(breaks = 0.01*seq(-100, 300, 0.5),
labels = percent_format(accuracy = .1, prefix = ""))
Evolution entre deux périodes de la moyenne sur 12 mois de l’indice des prix à la consommation
Il se déduit de l’indice du même trimestre de l’année précédente en lui appliquant l’évolution entre ces deux périodes de la moyenne sur douze mois consécutifs de l’indice des prix à la consommation hors tabac et hors loyers (IPC).
All
Code
`IPC-2015` %>%
filter(PRIX_CONSO %in% c("4600", "SO"),
COICOP2016 %in% c("00", "SO"),
MENAGES_IPC == "ENSEMBLE",
NATURE == "INDICE",
REF_AREA == "FE",
FREQ == "M") %>%
select_if(~ n_distinct(.) > 1) %>%
month_to_date %>%
arrange(date) %>%
left_join(PRIX_CONSO, by = "PRIX_CONSO") %>%
group_by(Prix_conso) %>%
filter(date >= as.Date("2000-01-01")) %>%
mutate(OBS_VALUE_mean = zoo::rollmean(OBS_VALUE, 12, fill = NA, align = "right"),
Prix_conso = ifelse(PRIX_CONSO == "SO", "Ensemble", Prix_conso)) %>%
filter(month(date) %in% c(12, 3, 6, 9)) %>%
mutate(OBS_VALUE_mean_d1 = OBS_VALUE_mean/lag(OBS_VALUE_mean, 4)-1,
OBS_VALUE_d1 = OBS_VALUE/lag(OBS_VALUE, 4)-1) %>%
na.omit %>%
ggplot() + ylab("Indice des loyers (simulé)") + xlab("") + theme_minimal() +
geom_line(aes(x = date, y = OBS_VALUE_d1, color = Prix_conso)) +
scale_x_date(breaks = seq(1920, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
theme(legend.position = c(0.8, 0.9),
legend.title = element_blank()) +
scale_y_continuous(breaks = 0.01*seq(-100, 300, 0.5),
labels = percent_format(accuracy = .1, prefix = ""))
2017-
Code
`IPC-2015` %>%
filter(PRIX_CONSO %in% c("4600", "SO"),
COICOP2016 %in% c("00", "SO"),
MENAGES_IPC == "ENSEMBLE",
NATURE == "INDICE",
REF_AREA == "FE",
FREQ == "M") %>%
select_if(~ n_distinct(.) > 1) %>%
month_to_date %>%
arrange(date) %>%
left_join(PRIX_CONSO, by = "PRIX_CONSO") %>%
group_by(Prix_conso) %>%
filter(date >= as.Date("2000-01-01")) %>%
mutate(OBS_VALUE_mean = zoo::rollmean(OBS_VALUE, 12, fill = NA, align = "right"),
Prix_conso = ifelse(PRIX_CONSO == "SO", "Ensemble", Prix_conso)) %>%
filter(month(date) %in% c(12, 3, 6, 9)) %>%
mutate(OBS_VALUE_mean_d1 = OBS_VALUE_mean/lag(OBS_VALUE_mean, 4)-1,
OBS_VALUE_d1 = OBS_VALUE/lag(OBS_VALUE, 4)-1) %>%
na.omit %>%
filter(date >= as.Date("2017-01-01")) %>%
ggplot() + ylab("Indice des loyers (simulé)") + xlab("") + theme_minimal() +
geom_line(aes(x = date, y = OBS_VALUE_d1, color = Prix_conso)) +
scale_x_date(breaks = seq(1920, 2100, 1) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank()) +
scale_y_continuous(breaks = 0.01*seq(-100, 300, 0.5),
labels = percent_format(accuracy = .1, prefix = ""))
Ensemble
All
Code
`IPC-2015` %>%
filter(PRIX_CONSO %in% c("4600", "SO"),
COICOP2016 %in% c("00", "SO"),
MENAGES_IPC == "ENSEMBLE",
NATURE == "INDICE",
REF_AREA == "FE",
FREQ == "M") %>%
select_if(~ n_distinct(.) > 1) %>%
month_to_date %>%
arrange(date) %>%
left_join(PRIX_CONSO, by = "PRIX_CONSO") %>%
group_by(Prix_conso) %>%
filter(date >= as.Date("2000-01-01")) %>%
mutate(OBS_VALUE_mean = zoo::rollmean(OBS_VALUE, 12, fill = NA, align = "right"),
Prix_conso = ifelse(PRIX_CONSO == "SO", "Ensemble", Prix_conso)) %>%
filter(month(date) %in% c(12, 3, 6, 9)) %>%
transmute(date,
OBS_VALUE_mean_d1 = OBS_VALUE_mean/lag(OBS_VALUE_mean, 4)-1,
OBS_VALUE_d1 = OBS_VALUE/lag(OBS_VALUE, 4)-1,
Prix_conso) %>%
na.omit %>%
gather(variable, value, -date, -Prix_conso) %>%
mutate(variable = case_when(variable == "OBS_VALUE_mean_d1" ~ "Inflation de l'IRL (Indice de Référence des Loyers) - Moyenne 12 mois",
variable == "OBS_VALUE_d1" ~ "Inflation de l'IPC (Indice des Prix à la Consommation) - Instantanée")) %>%
ggplot() + ylab("Indice des loyers (simulé)") + xlab("") + theme_minimal() +
geom_line(aes(x = date, y = value, color = Prix_conso, linetype = 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.8),
legend.title = element_blank()) +
scale_y_continuous(breaks = 0.01*seq(-100, 300, 0.5),
labels = percent_format(accuracy = .1, prefix = ""))
2017-
Code
`IPC-2015` %>%
filter(PRIX_CONSO %in% c("4600", "SO"),
COICOP2016 %in% c("00", "SO"),
MENAGES_IPC == "ENSEMBLE",
NATURE == "INDICE",
REF_AREA == "FE",
FREQ == "M") %>%
select_if(~ n_distinct(.) > 1) %>%
month_to_date %>%
arrange(date) %>%
left_join(PRIX_CONSO, by = "PRIX_CONSO") %>%
group_by(Prix_conso) %>%
filter(date >= as.Date("2000-01-01")) %>%
mutate(OBS_VALUE_mean = zoo::rollmean(OBS_VALUE, 12, fill = NA, align = "right"),
Prix_conso = ifelse(PRIX_CONSO == "SO", "Ensemble", Prix_conso)) %>%
filter(month(date) %in% c(12, 3, 6, 9)) %>%
transmute(date,
OBS_VALUE_mean_d1 = OBS_VALUE_mean/lag(OBS_VALUE_mean, 4)-1,
OBS_VALUE_d1 = OBS_VALUE/lag(OBS_VALUE, 4)-1,
Prix_conso) %>%
na.omit %>%
filter(date >= as.Date("2017-01-01")) %>%
gather(variable, value, -date, -Prix_conso) %>%
mutate(variable = case_when(variable == "OBS_VALUE_mean_d1" ~ "Inflation de l'IRL (Indice de Référence des Loyers) - Moyenne 12 mois",
variable == "OBS_VALUE_d1" ~ "Inflation de l'IPC (Indice des Prix à la Consommation) - Instantanée")) %>%
ggplot() + ylab("Indice des loyers (simulé)") + xlab("") + theme_minimal() +
geom_line(aes(x = date, y = value, color = Prix_conso, linetype = 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.8),
legend.title = element_blank()) +
scale_y_continuous(breaks = 0.01*seq(-100, 300, 0.5),
labels = percent_format(accuracy = .1, prefix = ""))