House price index (2015 = 100) - quarterly data
Data - Eurostat
Info
Data on housing
source | dataset | .html | .RData |
---|---|---|---|
bdf | RPP | 2024-07-26 | 2024-07-01 |
bis | LONG_PP | 2024-08-09 | 2024-05-10 |
bis | SELECTED_PP | 2024-10-31 | 2024-10-31 |
ecb | RPP | 2024-10-08 | 2024-10-30 |
eurostat | ei_hppi_q | 2024-11-05 | 2024-10-23 |
eurostat | hbs_str_t223 | 2024-11-05 | 2024-11-05 |
eurostat | prc_hicp_midx | 2024-11-01 | 2024-11-05 |
eurostat | prc_hpi_q | 2024-11-01 | 2024-10-09 |
fred | housing | 2024-11-01 | 2024-11-01 |
insee | IPLA-IPLNA-2015 | 2024-11-05 | 2024-11-05 |
oecd | housing | 2024-09-15 | 2020-01-18 |
oecd | SNA_TABLE5 | 2024-09-11 | 2023-10-19 |
LAST_COMPILE
LAST_COMPILE |
---|
2024-11-05 |
Last
time | Nobs |
---|---|
2024Q2 | 405 |
Info
- Second quarter of 2023 compared with second quarter of 2022. pdf
purchase
Code
%>%
prc_hpi_q left_join(purchase, by = "purchase") %>%
group_by(purchase, Purchase) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
if (is_html_output()) datatable(., filter = 'top', rownames = F) else .} {
unit
Code
%>%
prc_hpi_q left_join(unit, by = "unit") %>%
group_by(unit, Unit) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
if (is_html_output()) print_table(.) else .} {
unit | Unit | Nobs |
---|---|---|
I15_Q | Quarterly index, 2015=100 | 7286 |
I10_Q | Quarterly index, 2010=100 | 7252 |
RCH_Q | Quarterly rate of change | 7248 |
RCH_A | Annual rate of change | 6924 |
geo
Code
%>%
prc_hpi_q left_join(geo, by = "geo") %>%
group_by(geo, Geo) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
mutate(Flag = gsub(" ", "-", str_to_lower(Geo)),
Flag = paste0('<img src="../../bib/flags/vsmall/', Flag, '.png" alt="Flag">')) %>%
select(Flag, everything()) %>%
if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .} {
time
Code
%>%
prc_hpi_q group_by(time) %>%
summarise(Nobs = n()) %>%
if (is_html_output()) datatable(., filter = 'top', rownames = F) else .} {
Greece, Europe, France, Spain, Italy, Germany
Purchase Total
All
Code
%>%
prc_hpi_q filter(purchase == "TOTAL",
%in% c("EL", "FR", "ES", "IT", "DE"),
geo == "I15_Q") %>%
unit %>%
quarter_to_date group_by(geo) %>%
arrange(date) %>%
mutate(values = 100*values/values[1]) %>%
left_join(geo, by = "geo") %>%
mutate(Geo = ifelse(geo == "EA", "Europe", Geo),
Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
ggplot(.) + geom_line(aes(x = date, y = values, color = Geo)) +
theme_minimal() + xlab("") + ylab("100 = Janv. 2006") +
scale_x_date(breaks = seq(1960, 2028, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_color_manual(values = c("#ED2939", "#000000", "#009246", "#FFC400")) +
+
add_4flags scale_y_log10(breaks = seq(0, 200, 5)) +
theme(legend.position = "none",
legend.title = element_blank())
2009-2016
Code
%>%
prc_hpi_q filter(purchase == "TOTAL",
%in% c("EL", "FR", "ES", "IT", "DE"),
geo == "I15_Q") %>%
unit %>%
quarter_to_date group_by(geo) %>%
mutate(values = 100*values/values[date == as.Date("2011-01-01")]) %>%
filter(date >= as.Date("2009-01-01"),
<= as.Date("2016-01-01")) %>%
date left_join(geo, by = "geo") %>%
mutate(Geo = ifelse(geo == "EA", "Europe", Geo),
Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
ggplot(.) + geom_line(aes(x = date, y = values, color = Geo)) +
theme_minimal() + xlab("") + ylab("100 = Janv. 2011") +
scale_x_date(breaks = seq(1960, 2028, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_color_manual(values = c("#ED2939", "#000000", "#009246", "#FFC400")) +
+
add_4flags scale_y_log10(breaks = seq(0, 200, 5)) +
theme(legend.position = "none",
legend.title = element_blank())
Existing Dwellings - DW_EXST
Code
%>%
prc_hpi_q filter(purchase == "DW_EXST",
%in% c("EL", "FR", "ES", "IT", "DE"),
geo == "I15_Q") %>%
unit %>%
quarter_to_date group_by(geo) %>%
mutate(values = 100*values/values[date == as.Date("2011-01-01")]) %>%
filter(date >= as.Date("2009-01-01"),
<= as.Date("2016-01-01")) %>%
date left_join(geo, by = "geo") %>%
mutate(Geo = ifelse(geo == "EA", "Europe", Geo),
Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
ggplot(.) + geom_line(aes(x = date, y = values, color = Geo)) +
theme_minimal() + xlab("") + ylab("100 = Janv. 2011") +
scale_x_date(breaks = seq(1960, 2028, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_color_manual(values = c("#ED2939", "#000000", "#009246", "#FFC400")) +
+
add_4flags scale_y_log10(breaks = seq(0, 200, 5)) +
theme(legend.position = "none",
legend.title = element_blank())
Purchases of new dwellings - DW_NEW
Code
%>%
prc_hpi_q filter(purchase == "DW_NEW",
%in% c("EL", "FR", "ES", "IT", "DE"),
geo == "I15_Q") %>%
unit %>%
quarter_to_date group_by(geo) %>%
mutate(values = 100*values/values[date == as.Date("2011-01-01")]) %>%
filter(date >= as.Date("2009-01-01"),
<= as.Date("2016-01-01")) %>%
date left_join(geo, by = "geo") %>%
mutate(Geo = ifelse(geo == "EA", "Europe", Geo),
Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
ggplot(.) + geom_line(aes(x = date, y = values, color = Geo)) +
theme_minimal() + xlab("") + ylab("100 = Janv. 2011") +
scale_x_date(breaks = seq(1960, 2028, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_color_manual(values = c("#ED2939", "#000000", "#009246", "#FFC400")) +
+
add_4flags scale_y_log10(breaks = seq(0, 200, 5)) +
theme(legend.position = "none",
legend.title = element_blank())
Purchase Total
France, Italy, Germany
Code
%>%
prc_hpi_q filter(purchase == "TOTAL",
%in% c("FR", "IT", "DE"),
geo == "I15_Q") %>%
unit %>%
quarter_to_date left_join(geo, by = "geo") %>%
left_join(colors, by = c("Geo" = "country")) %>%
ggplot() + geom_line(aes(x = date, y = values, color = color)) +
theme_minimal() +
scale_color_identity() +
scale_x_date(breaks = seq(1920, 2028, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
+
add_4flags theme(legend.position = c(0.35, 0.9),
legend.title = element_blank()) +
scale_y_log10(breaks = seq(-100, 300, 10)) +
ylab("House Price Index") + xlab("")
Belgium, Denmark, Finland
Code
%>%
prc_hpi_q filter(purchase == "TOTAL",
%in% c("BE", "DK", "FI"),
geo == "I15_Q") %>%
unit %>%
quarter_to_date left_join(geo, by = "geo") %>%
ggplot() + geom_line() + theme_minimal() +
aes(x = date, y = values, color = Geo, linetype = Geo) +
scale_color_manual(values = viridis(4)[1:3]) +
scale_x_date(breaks = seq(1920, 2028, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
theme(legend.position = c(0.35, 0.9),
legend.title = element_blank()) +
scale_y_log10(breaks = seq(-100, 300, 10)) +
ylab("House Price Index") + xlab("")
All Series
France
Code
%>%
prc_hpi_q filter(geo %in% c("FR"),
== "I15_Q") %>%
unit %>%
quarter_to_date left_join(geo, by = "geo") %>%
left_join(purchase, by = "purchase") %>%
ggplot() + geom_line() + theme_minimal() +
aes(x = date, y = values, color = Purchase, linetype = Purchase) +
scale_color_manual(values = viridis(4)[1:3]) +
scale_x_date(breaks = seq(1920, 2028, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
theme(legend.position = c(0.35, 0.9),
legend.title = element_blank()) +
scale_y_log10(breaks = seq(-100, 300, 10)) +
ylab("House Price Index") + xlab("")
Germany
Code
%>%
prc_hpi_q filter(geo %in% c("DE"),
== "I15_Q") %>%
unit %>%
quarter_to_date left_join(geo, by = "geo") %>%
left_join(purchase, by = "purchase") %>%
ggplot() + geom_line() + theme_minimal() +
aes(x = date, y = values, color = Purchase, linetype = Purchase) +
scale_color_manual(values = viridis(4)[1:3]) +
scale_x_date(breaks = seq(1920, 2028, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
theme(legend.position = c(0.35, 0.9),
legend.title = element_blank()) +
scale_y_log10(breaks = seq(-100, 300, 10)) +
ylab("House Price Index") + xlab("")
Italy
Code
%>%
prc_hpi_q filter(geo %in% c("IT"),
== "I15_Q") %>%
unit %>%
quarter_to_date left_join(geo, by = "geo") %>%
left_join(purchase, by = "purchase") %>%
ggplot() + geom_line() + theme_minimal() +
aes(x = date, y = values, color = Purchase, linetype = Purchase) +
scale_color_manual(values = viridis(4)[1:3]) +
scale_x_date(breaks = seq(1920, 2028, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
theme(legend.position = c(0.6, 0.9),
legend.title = element_blank()) +
scale_y_log10(breaks = seq(-100, 300, 5)) +
ylab("House Price Index") + xlab("")