Distribution of population by tenure status, type of household and income group - EU-SILC survey - ilc_lvho02

Data - Eurostat

incgrp

Code
ilc_lvho02 %>%
  left_join(incgrp, by = "incgrp") %>%
  group_by(incgrp, Incgrp) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
incgrp Incgrp Nobs
A_MD60 Above 60% of median equivalised income 84966
B_MD60 Below 60% of median equivalised income 84966
TOTAL Total 84966

tenure

Code
ilc_lvho02 %>%
  left_join(tenure, by = "tenure") %>%
  group_by(tenure, Tenure) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
tenure Tenure Nobs
OWN Owner 36414
OWN_L Owner, with mortgage or loan 36414
OWN_NL Owner, no outstanding mortgage or housing loan 36414
RENT Tenant 36414
RENT_FR Tenant, rent at reduced price or free 36414
RENT_MKT Tenant, rent at market price 36414
TOTAL Total 36414

hhtyp

Code
ilc_lvho02 %>%
  left_join(hhtyp, by = "hhtyp") %>%
  group_by(hhtyp, Hhtyp) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

geo

Code
ilc_lvho02 %>%
  left_join(geo, by = "geo") %>%
  group_by(geo, Geo) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(Geo)),
         Flag = paste0('<img src="../../icon/flag/vsmall/', Flag, '.png" alt="Flag">')) %>%
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

time

Code
ilc_lvho02 %>%
  group_by(time) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Housing Tenure Status

Javascript

Code
ilc_lvho02 %>%
  filter(incgrp %in% c("TOTAL"),
         hhtyp == "TOTAL",
         time == "2019",
         !(tenure %in% c("TOTAL"))) %>%
  left_join(tenure, by = "tenure") %>%
  left_join(geo, by = "geo") %>%
  select(Tenure, Geo, values) %>%
  spread(Tenure, values) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

png

Code
include_graphics3b("bib/eurostat/ilc_lvho02_ex1-0.png")

Code
include_graphics3b("bib/eurostat/ilc_lvho02_ex1-1.png")

Weights in HICP

Javascript

Code
data1 <- prc_hicp_inw %>%
  filter(time %in% c("2019"),
         coicop == "CP041") %>%
  transmute(geo, `Rent in HICP (%)` = round(values/10, 1))

data2 <- ilc_lvho02 %>%
  filter(incgrp == "TOTAL",
         hhtyp == "TOTAL",
         time == "2019",
         tenure == "RENT") %>%
  transmute(geo, `Share of renters (%)` = values)


data1 %>%
  inner_join(data2, by = "geo") %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
  select(1,4, 2, 3) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

png

Code
include_graphics3b("bib/eurostat/ilc_lvho02_ex2.png")

AFGAP Graph

English

  • Association Française des Gestionnaires Actif-Passif - AFGAP. pdf
Code
data1 %>%
  inner_join(data2, by = "geo") %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
  filter(!(geo %in% c("EA18", "EA", "EU", "EU27_2020", "EU28"))) %>%
  ggplot(.) + theme_minimal() + xlab("Share of renters") + ylab("Rent share in HICP") +
  geom_point(aes(x = `Share of renters (%)`/100, y = `Rent in HICP (%)`/100)) +
  scale_x_continuous(breaks = 0.01*seq(-100, 100, 5),
                     labels = percent_format(accuracy = 1)) +
  scale_y_continuous(breaks = 0.01*seq(-100, 100, 2),
                     labels = percent_format(accuracy = 1)) +
  stat_smooth(aes(x = `Share of renters (%)`/100, y = `Rent in HICP (%)`/100), 
              linetype = 2, method = "lm", color = "#F2A900") +
  geom_text_repel(aes(x = `Share of renters (%)`/100, y = `Rent in HICP (%)`/100, label = Geo))

French

Code
load_data("eurostat/geo_fr.RData")
data1 %>%
  inner_join(data2, by = "geo") %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
  filter(!(geo %in% c("EA18", "EA", "EU", "EU27_2020", "EU28"))) %>%
  ggplot(.) + theme_minimal() + xlab("Taux de locataires") + ylab("Poids des loyers dans l'indice des prix") +
  geom_point(aes(x = `Share of renters (%)`/100, y = `Rent in HICP (%)`/100)) +
  scale_x_continuous(breaks = 0.01*seq(-100, 100, 10),
                     labels = percent_format(accuracy = 1),
                     limits = c(0, 1)) +
  scale_y_continuous(breaks = 0.01*seq(-100, 100, 2),
                     labels = percent_format(accuracy = 1),
                     limits = c(0, 0.22)) +
  stat_smooth(aes(x = `Share of renters (%)`/100, y = `Rent in HICP (%)`/100), 
              linetype = 2, method = "lm", color = "#F2A900") +
  geom_text_repel(aes(x = `Share of renters (%)`/100, y = `Rent in HICP (%)`/100, label = Geo))