Análisis factores demográficos y económicos del mercado de la vivienda
trabajo BigData
vivienda
Autores/as
Isabel Punter Fuster (ipunfus@alumni.es)
Zulay Mariana Rodríguez Peñin
Juan Carlos Pérez Hernando
Fecha de Publicación
1 de diciembre de 2025
1. Introducción
El mercado de la vivienda es un elemento central de la economía europea, que influye en la estabilidad financiera de los hogares y en la dinámica macroeconómica de los países. Este trabajo analiza la evolución del mercado inmobiliario en España, Francia y Alemania, considerando factores demográficos, precios de la vivienda, producción de construcción y relación con los ingresos de los hogares.
Se utilizan datos de Eurostat, OCDE y Banco Central Europeo, procesados en R/RStudio, para identificar tendencias, diferencias y vulnerabilidades en la asequibilidad y acceso a la vivienda. El objetivo es ofrecer una visión comparativa que permita comprender cómo los cambios económicos y sociales impactan sobre la demanda y la sostenibilidad del mercado habitacional en Europa.
Código
#Cargamos las librerías que vamos a usarlibrary(tidyverse)library(eurostat)library(sf)library(rnaturalearth)library(knitr)library(ggplot2)library(dplyr)library(plotly)library(countrycode)library(sf)library(rio)library(extrafont)library(patchwork)library(leaflet)library(htmltools)library(RColorBrewer)library(giscoR)library(gt)#seleccionamos los países que vamos a compararcodigos_paises <-c("ES", # España"FR", # Francia"DE"# Alemania)codigos_paises_00 <-c("EU27_2020","ES", # España"FR"# Francia)
2. Factores demográficos
Vamos a ver una serie de factores demográficos que influyen sobre la parte de la demanda de la vivienda.
2.1. Edad de la población
En primer lugar, analizamos la estructura poblacional por edad. Vemos cómo con el paso de los años se ha dado un envejecimiento poblacional en los tres países.
El envejecimiento poblacional convierte la vivienda heredada en un motor clave del mercado inmobiliario actual, impulsando la mayor transferencia de patrimonio intergeneracional de la historia. Esta dinámica genera un aumento de la oferta de viviendas, ya que muchos herederos optan por vender para obtener liquidez inmediata, al mismo tiempo que agrava la desigualdad, pues la herencia de propiedades se concentra en las familias más ricas, convirtiéndose en el principal (y a veces único) acceso a la propiedad para los jóvenes. A esta situación se suma la tendencia de las personas mayores a ver su vivienda como un activo de liquidación (por ejemplo, mediante hipotecas inversas) para financiar cuidados personales, relegando el tradicional objetivo de conservarla como un legado para la siguiente generación.
En segundo lugar, analizamos el tamaño de los hogares. Esta variable es de gran relevancia y varía con las tendencias sociales.
Observamos en el gráfico una reducción de manera agregada en el tamaño de los hogares. La reducción del tamaño del hogar implica que a igual población, se necesitan más viviendas, lo que hace aumentar la presión sobre la demanda y que se incrementen los precios.
Si comparamos los países, vemos que donde más se reduce es en España, seguido de Francia y después de Alemania.
A continuación detallamos un análisis de los factores que se ven envueltos en el mercado de la vivienda.
3.1. Volumen de la producción en la construcción
En España el volumen de la producción desde 2015 sigue tres tendencias. En primer lugar, aumenta hasta 2016. Después disminuye de manera oscilante hasta 2022, con una gran caída en 2020 debido al Covid. En los últimos años se ha recuperado. Vemos como la construcción en España es altamente sensible a los shocks y variaciones del mercado.
Francia, por su parte, presenta 4 tendencias. La construcción aumenta hasta 2017, después cae mediante oscilaciones hasta 2020, en 2021 hay un breve aumento aproximadamente del 5% y presenta una tendencia decreciente desde entonces.
Si comparamos ambos países con el promedio de la UE, la tendencia es similar entre los 3. Sin embargo, las oscilaciones de la UE son menores, puesto que es un promedio de muchos países con diferentes evoluciones, lo que permite su evolución sea más suave. Las tendencias difieren principalemente en 2017 y el periodo de la crisis del Covid 19.
Código
my_table_2 <-"sts_copr_a"#- seleccioné la tabla: "Distribution of population by housing cost burden and degree of urbanisation"df_09 <-get_eurostat(my_table_2, time_format ='raw', keepFlags =TRUE)#> indexed 0B in0s, 0B/sindexed 2.15GB in0s, 2.15GB/sdf_10 <- df_09 %>%filter(TIME_PERIOD >=2015) %>%filter(freq =="A") %>%filter(s_adj =="CA") %>%filter(nace_r2 =="F41") %>%filter(geo %in% codigos_paises_00) %>%filter( unit =="PCH_SM", !is.na(values) ) %>%mutate(TIME_PERIOD =as.integer(as.numeric(TIME_PERIOD)))ggplot(data = df_10, aes(x = TIME_PERIOD, y = values)) +geom_line(aes(group = geo), color ="#A2B5CD", linewidth =0.7, alpha =0.5) +geom_line(data= df_10 %>%filter(geo =="ES"), aes(group = geo), color ="#36648B", linewidth =1) +geom_line(data= df_10 %>%filter(geo =="EU27_2020"), aes(group = geo), color ="#8B2323", linewidth =1) +scale_x_continuous(breaks =seq(min(df_10$TIME_PERIOD), max(df_10$TIME_PERIOD), 1)) +scale_y_continuous(labels =function(x) paste0(x, "%")) +labs(title ="Volumen de la producción en la construcción de edificios residenciales y \nno residenciales",subtitle ="Cambio porcentual respecto al mismo periodo del año anterior ",x ="Año",y ="variación interanual",caption ="Fuente: Eurostat") +annotate("text", x =2024.3, y =-2.5, label ="UE", color ="#8B2323", size =3) +annotate("text", x =2024.3, y =2.7, label ="España", color ="#36648B", size =3) +annotate("text", x =2024.3, y =-7, label ="Francia", color ="#A2B5CD", size =3) +theme_minimal() +theme(panel.grid.major.x =element_blank(), panel.grid.minor.x =element_blank(), axis.text.x =element_text(angle =0, hjust =1),plot.title =element_text(family ="sans",size =12,face ="bold"))
3.2. Alquileres reales pagados por los inquilinos
Ahora analizamos la evolución del índice de precios del alquiler (subgrupo de vivienda: coicop == “CP041”) en España, Francia, Alemania y la Eurozona entre 2015 y la fecha más reciente disponible, usando datos mensuales de Eurostat.
Vemos como sube el índice en todos los países seleccionados y en la UE 19. España crece más en comparación con el resto de países desde 2019. Además, vemos como las pendientes aumentan en todos los países a partir de 2022.
3.3. Índice de precios de la vivienda nueva y antigua
El gráfico compara la evolución del índice de precios para Viviendas de Nueva Construcción (A) y Viviendas Existentes (B) en Alemania, España y Francia, tomando como referencia los años 2006, 2015 y 2024.
En el caso de las Viviendas de Nueva Construcción (A), todos los países muestran un incremento en el índice de precios al pasar de 2015 a 2024. El índice más alto en 2024 se registra en Alemania, seguido por España y luego Francia. Sin embargo, al observar la tendencia desde 2006, Alemania y Francia han experimentado un crecimiento continuo, mientras que España se distingue por una caída del índice entre 2006 y 2015. Este patrón de caída drástica se debe principalmente al estallido de la burbuja inmobiliaria de 2008. Durante los años previos a 2007, España experimentó una década de crecimiento inmobiliario alimentado por un exceso de crédito bancario laxo y una sobre construcción masiva. Cuando la crisis financiera global impactó, el mercado se ajustó violentamente, llevando al desplome de los precios de la vivienda, al alto desempleo y a un gran stock de viviendas sin vender.
La tendencia en el mercado de Viviendas Existentes (B) es notablemente similar a la de las viviendas nuevas, pero con algunas diferencias en la magnitud.
Este patrón similar en ambos tipos de vivienda en España sugiere que el ajuste de precios en el país afectó al mercado inmobiliario en su conjunto, mientras que Alemania y Francia parecen haber experimentado un mercado más estable o de crecimiento continuo a lo largo del periodo analizado.
Código
my_table <-"prc_hpi_a"#- seleccioné la tabla: "Indice de precios de la vivienda label_eurostat_tables(my_table) # informacion de la tabla#> [1] "House price index (2015 = 100) - annual data"#- descarga la base de datos de Eurostat APIdf <-get_eurostat(my_table, time_format ='raw', keepFlags =TRUE)#> indexed 0B in0s, 0B/sindexed 2.15GB in0s, 2.15GB/s# --- DATOS INICIALES Y CARGA (No se repiten los pasos de preparación de datos) ---paises_deseados <-c("ES", "FR", "DE")años_barras <-c(2006, 2015, 2024)colores_barras <-c("2006"="#A2B5CD", "2015"="#8B7D6B", "2024"="#36648b") # Base de datos filtrada para EXSTdf_europa_filtrado_EXST <- df %>%filter(freq =="A") %>%filter(purchase =="DW_EXST") %>%filter(geo %in% paises_deseados) %>%filter( unit =="I10_A_AVG",!is.na(values) )df_barras_EXST <- df_europa_filtrado_EXST %>%mutate(TIME_PERIOD =as.character(TIME_PERIOD)) %>%filter(TIME_PERIOD %in% años_barras) %>%mutate(TIME_PERIOD =factor(TIME_PERIOD, levels = años_barras))# Base de datos para NEWdf_europa_filtrado_NEW <- df %>%filter(freq =="A") %>%filter(purchase =="DW_NEW") %>%filter(geo %in% paises_deseados) %>%filter( unit =="I10_A_AVG",!is.na(values) )df_barras <- df_europa_filtrado_NEW %>%mutate(TIME_PERIOD =as.character(TIME_PERIOD)) %>%filter(TIME_PERIOD %in% años_barras) %>%mutate(TIME_PERIOD =factor(TIME_PERIOD, levels = años_barras))# Graficos juntosgrafico_barras_NEW <-ggplot(data = df_barras,aes(x = geo, y = values, fill = TIME_PERIOD)) +geom_col(position ="dodge") +labs(title ="A. Viviendas de Nueva Construcción",x ="",y ="Índice de Precios",fill ="Año" ) +scale_fill_manual(values = colores_barras) +scale_y_continuous(limits =c(0, 200), breaks =seq(0, 200, 50)) +theme_minimal() +theme(plot.title =element_text(face ="plain", size =12), axis.title.x =element_text(size =7), axis.title.y =element_text(size=7))grafico_barras_EXST <-ggplot(data = df_barras_EXST, aes(x = geo, y = values, fill = TIME_PERIOD)) +geom_col(position ="dodge") +labs(title ="B. Viviendas Existentes",x ="",y ="",fill ="Año" ) +scale_fill_manual(values = colores_barras) +scale_y_continuous(limits =c(0, 200), breaks =seq(0, 200, 50)) +theme_minimal() +theme(plot.title =element_text(face ="plain", size =12), axis.title.x =element_text(size =7), axis.title.y =element_text(size=7))grafico_combinado <- (grafico_barras_NEW + grafico_barras_EXST)grafico_final <- grafico_combinado +plot_layout(guides ='collect', widths =c(1, 1) ) &theme(legend.position ="bottom")grafico_final <- grafico_final +plot_annotation(title ='Comparación del Índice de Precios de la Vivienda',theme(plot.title =element_text(face ="plain", size =12), axis.title.x =element_text(size =8), axis.title.y =element_text(size=8)) )# Grafico finalprint(grafico_final)
4. Relación entre la vivienda y la renta de los hogares
A continuación detallamos diferentes factores socioeconómicos que afectan a la renta disponible de las familias y la relación entre los precios de la vivienda y los ingresos.
4.1. Comparación de los salarios con los ingresos
En este apartado nos basamos en la ratio renta-precio de la vivienda de la OCDE. El gráfico ilustra la evolución del Ratio de Ingresos-Precio de la Vivienda para España, Alemania y Francia, actuando como un barómetro de la asequibilidad: cuando el indicador sube, los precios de la vivienda crecen más rápido que los ingresos, dificultando el acceso y señalando un riesgo de burbuja. La trayectoria de España es la más marcada, reflejando ciclos extremos: un fuerte crecimiento y el máximo de inasequibilidad alrededor de 2008, coincidiendo con la burbuja inmobiliaria. Este pico fue seguido por un desplome abrupto hasta 2014, fruto de la Crisis Hipotecaria, que si bien mejoró la asequibilidad (al bajar el indicador), causó una profunda crisis en el sector y problemas de deuda.
A partir de 2015, el indicador español retomó una tendencia alcista, señalando una recuperación del mercado que ha vuelto a presionar la asequibilidad de la vivienda, con oscilaciones notables durante la Crisis COVID-19. En contraste, las tendencias de Alemania y Francia han sido considerablemente menos volátiles. Alemania ha mantenido consistentemente la ratio más baja, indicando una mayor estabilidad y asequibilidad. Francia muestra una tendencia más moderada que España, sin experimentar el dramático colapso post-2008, lo que subraya la naturaleza particularmente cíclica y volátil del mercado inmobiliario español en comparación con sus pares europeos.
Inspiración
Nos hemos inspirado en este trabajo para este código: https://dabrando8.github.io/trabajo_BigData_equipo/my_trabajo_BigData.html
Código
ruta <-"./datos/standarised_house_income.csv"df_ocde <- rio::import(ruta) codigos_paises_2 <-c("ESP", # España"FRA", # Francia"DEU") # Alemania df_ocde_2 <- df_ocde |>select(TIME_PERIOD, OBS_VALUE, REF_AREA) |>filter(REF_AREA %in% codigos_paises_2) |>filter(TIME_PERIOD %in%c(2005:2024))colores <-c( "ESP"="#36648B", "FRA"="#A2B5CD", "DEU"="#A9A9A9") ggplot(data = df_ocde_2, aes(x = TIME_PERIOD, y = OBS_VALUE)) +geom_line(aes(group = REF_AREA), color ="#A2B5CD", linewidth =0.7, alpha =0.3) +geom_line(data = df_ocde_2 %>%filter(REF_AREA %in% codigos_paises_2),aes(color = REF_AREA, group = REF_AREA),linewidth =1) +scale_color_manual(values = colores) +labs(title ="Ratio de ingresos de los hogares ajustado por tamaño",x ="Año",y ="Índice de Precios",caption ="Fuente: OCDE") +annotate("text", x =2025, y =112, label ="España", color ="#36648B", size =3) +annotate("text", x =2025, y =108, label ="Francia", color ="#A2B5CD", size =3) +annotate("text", x =2025, y =88, label ="Alemania", color ="#A9A9A9", size =3) +annotate("rect",xmin =2008, xmax =2012,ymin =-Inf, ymax =Inf,alpha =0.2, fill ="red") +annotate("text",x =2010, y =max(df_ocde_2$OBS_VALUE) *0.95, label ="Crisis Hipotecaria", color ="red", size =4) +annotate("rect",xmin =2020, xmax =2022,ymin =-Inf, ymax =Inf,alpha =0.2, fill ="red") +annotate("text",x =2021, y =max(df_ocde_2$OBS_VALUE) *0.95, label ="Crisis COVID", color ="red", size =4) +theme_minimal() +theme(legend.position ="none", panel.grid.major.x =element_blank(), panel.grid.minor.x =element_blank(), axis.text.x =element_text(angle =0, hjust =1),plot.title =element_text(family ="sans", size =12, face ="plain"), axis.title.x =element_text(size =8),axis.title.y =element_text(size=8))
4.2. Umbral riesgo de pobreza
En este mapa coroplético se representa el Umbral de Riesgo de Pobreza de Eurostat (el 60% de la mediana del ingreso disponible equivalente, para un hogar unipersonal) en los países de la Unión Europea para 2024, medido en Estándares de Poder Adquisitivo (PPS).
El PPS es una unidad artificial que neutraliza las diferencias en los niveles de precios entre los países, permitiendo una comparación más justa de cuánto ingreso se necesita para cubrir el costo de vida básico.
España se encuentra en el rango de colores morado oscuro en el mapa, lo que la sitúa en un umbral de riesgo de pobreza entre 14000€. Esto la coloca en la parte baja/media-baja de la distribución de umbrales dentro de la UE. Después de ajustar el poder adquisitivo, el nivel de ingreso considerado “mínimo” para vivir en España es significativamente inferior al necesario en los países más ricos de Europa Central y del Norte, reflejando una diferencia estructural en los niveles de ingresos medianos en toda la zona euro.
Descripción del código
Este código está diseñado para descargar y filtrar datos de Eurostat relacionados con el umbral de pobreza, específicamente centrándose en el ingreso necesario para evitar el riesgo de pobreza en diferentes países de la Unión Europea (UE). Primero, se define la tabla a utilizar, “ilc_li01”, que corresponde a los datos sobre el umbral de riesgo de pobreza. Luego, se utiliza la función get_eurostat para descargar el conjunto de datos completo y guardarlo en la variable df2. El bloque crucial es la fase de filtrado, donde se prepara el conjunto de datos final (df_filtrado_A1) para el análisis. El código filtra los datos para incluir solo el umbral de riesgo de pobreza para un hogar de una sola persona (hhtyp == “A1”) y se enfoca en el indicador “60% de la mediana del ingreso disponible equivalente” (indic_il == “LI_C_M60”), que es la definición estándar del umbral de pobreza de la UE. Además, se filtran los datos por la unidad de medida Estándares de Poder Adquisitivo (PPS) (currency == “PPS”), lo que permite una comparación de ingresos más justa entre los diferentes países de la UE al neutralizar las diferencias de precios. Finalmente, el código se restringe a los países miembros de la UE definidos en codigos_ue y selecciona el año más reciente disponible, 2024, para obtener la información más actualizada sobre el umbral de pobreza.
La tabla presenta datos de la OCDE sobre el gasto final de consumo de los hogares en la categoría COICOP (vivienda, agua, electricidad, gas y otros combustibles), expresado en millones de euros para siete países europeos en los años 2005, 2010, 2015 y 2020. Este gasto refleja el consumo esencial en servicios básicos y vivienda, influido por factores como el tamaño de la economía, la urbanización, los precios de la energía y eventos macroeconómicos como la crisis financiera de 2008-2009 y la pandemia de COVID-19 en 2020.
Alemania y Francia destacan con los gastos más altos en todos los años, superando consistentemente los 200.000 millones de euros. En 2020, Alemania alcanza 420.033 millones y Francia 336.356 millones, lo que indica economías grandes con alta demanda de energía y vivienda debido a poblaciones densas y sectores industriales fuertes.
Portugal e Irlanda muestran volúmenes más bajos, por debajo de 30.000 millones en 2020, reflejando economías más pequeñas y posiblemente menor dependencia de consumos intensivos en servicios básicos.
Se observa un incremento general en todos los países entre 2005 y 2020, con aceleraciones notables en periodos pre-crisis (hasta 2010) en países del sur como España y Portugal. Post-2010, el avance es más moderado en Italia y España, mientras que Bélgica e Irlanda mantienen un ritmo más constante.
El salto entre 2005 y 2010 en España (de 96.249 a 142.858 millones) sugiere un auge inmobiliario pre-crisis, seguido de una estabilización. En 2020, el gasto sigue subiendo pese a la pandemia, posiblemente por mayor tiempo en hogares y uso de utilities.
Por tanto, llegamos a la conclusión de que los países del norte (Alemania, Francia, Bélgica) tienen gastos absolutos más altos, lo que apunta a mayores costos de vida o inversiones en infraestructura energética. En contraste, el sur (España, Italia, Portugal) e Irlanda muestran volatilidad, sensible a ciclos económicos europeos.
Código
#Gasto final de consumo anual de los hogares: Vivienda, agua, electricidad, gas y otros combustiblesdf_01 <- rio::import("./datos/Annual_household_final_consumption.csv")codigos_paises_01 <-c("ESP", # España"FRA", # Francia"DEU", # Alemania"ITA", # Italia"BEL", #Belgica"PRT", #Portugal"IRL"# Irlanda)df_02 <- df_01 %>%filter(TIME_PERIOD %in%c(2005,2010,2015,2020)) %>%select("REF_AREA", "OBS_VALUE", "TIME_PERIOD", "CURRENCY", "FREQ") %>%filter(FREQ =="A") %>%filter(REF_AREA %in% codigos_paises_01)df_02 <- df_02 %>%select(REF_AREA, TIME_PERIOD, OBS_VALUE) %>%mutate(REF_AREA.f = forcats::as_factor(REF_AREA), .after = REF_AREA) %>%mutate(REF_AREA.f = forcats::fct_recode(REF_AREA.f,"España"="ESP","Francia"="FRA", "Alemania"="DEU","Italia"="ITA","Bélgica"="BEL","Portugal"="PRT","Irlanda"="IRL")) df_02 <- df_02 %>%select(REF_AREA.f, TIME_PERIOD, OBS_VALUE) %>%rename(year = TIME_PERIOD) %>%rename (countries = REF_AREA.f)df_02 <- df_02 %>%pivot_wider(names_from = year, values_from = OBS_VALUE) tt_1 <- gt::gt(df_02)tt_1 %>% gtExtras::gt_theme_pff() %>%tab_header(title =md("**Gasto final del consumo anual de los hogares**"),subtitle ="Vivienda, agua, electricidad, gas y otros combustibles") %>%opt_align_table_header(align ="left") %>%tab_style(style =cell_text(size =px(19)),locations =cells_title("title")) %>%tab_source_note(md("Fuente: datos de la [OCDE](https://www.oecd.org/en.html)")) %>%tab_footnote(footnote ="En Millones de Euros", placement ="right",location =cells_title("title")) %>%cols_align(align ="center")
Gasto final del consumo anual de los hogares1
Vivienda, agua, electricidad, gas y otros combustibles
En este gráfico se representa la asequibilidad de la vivienda en Alemania, España y Francia entre 2004 y 2016, midiendo el porcentaje del ingreso bruto disponible de los hogares que queda después de deducir costes como alquileres, mantenimiento, reparaciones, suministros energéticos y gastos en mobiliario. Este indicador refleja la capacidad financiera de los hogares para cubrir otros gastos esenciales, influida por ciclos económicos, precios inmobiliarios y políticas de subsidios, con valores oscilando entre el 77% y 82%, lo que indica que la vivienda absorbe un 18-23% del ingreso, pero con vulnerabilidad a crisis que erosionan la resiliencia.
En general, se observa un declive inicial hasta 2012, coincidiendo con la crisis financiera de 2008 y la de deuda soberana, seguido de recuperaciones heterogéneas post-2012, sugerentes de mejoras en PIB y empleo, aunque con fluctuaciones por subidas en precios energéticos y austeridad.
En comparaciones por país, Alemania muestra estabilidad y mejora (de ~80% a 81% en 2016), gracias a su economía robusta y control de precios; España experimenta un declive pronunciado (de ~82% a ~78% en 2012) por la burbuja inmobiliaria y desempleo, con estabilización posterior; y Francia presenta un deterioro moderado (de ~79-80% a ~77-78%), mitigado por políticas de vivienda social.
Económicamente, el gráfico evidencia desigualdades regionales en la UE, con el norte (Alemania) manteniendo mejor asequibilidad frente al sur y oeste (España y Francia), destacando riesgos de polarización que limitan movilidad social y consumo interno, y subrayando la necesidad de reformas para impulsar ingresos y contener costes habitacionales, impactando el crecimiento a largo plazo.
Código
#Asequibilidad de la viviendadf_05 <- rio::import("./datos/Housing_affordability.csv")codigos_paises_03 <-c("ESP", # España"FRA", # Francia"DEU"#Alemania )df_06 <- df_05 %>%select("REF_AREA", "OBS_VALUE", "TIME_PERIOD") %>%filter(REF_AREA %in% codigos_paises_03)ggplot(data = df_06, aes(x = TIME_PERIOD, y = OBS_VALUE)) +geom_line(data= df_06 %>%filter(REF_AREA =="DEU"), aes(color = REF_AREA, group = REF_AREA), color ="#8B7D6B", linewidth =1)+geom_line(data= df_06 %>%filter(REF_AREA =="ESP"), aes(color = REF_AREA, group = REF_AREA), color ="#36648B", linewidth =1) +geom_line(data= df_06 %>%filter(REF_AREA =="FRA"), aes(color = REF_AREA, group = REF_AREA), color ="#A2B5CD", linewidth =1) +scale_y_continuous(labels =function(x) paste0(x, "%")) +labs(title ="Asequibilidad de la vivienda",subtitle ="Porcentaje del ingreso bruto disponible del hogar que queda, después de las \ndeducciones por alquileres y mantenimiento de la vivienda",x ="Año",y ="Tasa de ingreso bruto dispobible",caption ="Fuente: OECD") +annotate("text", x =2020, y =78.4, label ="Francia", color ="#A2B5CD", size =3) +annotate("text", x =2020, y =78.7, label ="España", color ="#36648B", size =3) +annotate("text", x =2020, y =80.8, label ="Alemania", color ="#8B7D6B", size =3) +theme_minimal() +theme(panel.grid.major.x =element_blank(), panel.grid.minor.x =element_blank(), axis.text.x =element_text(angle =0, hjust =1, size =8),axis.text.y =element_text(size =8), plot.title =element_text(family ="sans",size =12,face ="plain"), plot.subtitle =element_text(family ="sans",size =10,face ="plain"))
4.5. Distribución de la población según la carga del coste de la vivienda y el grado de urbanización
Por otro lado, en este apartado analizamos la tasa de sobrecarga del coste de la vivienda en grandes zonas urbanas, calculado como porcentaje de población donde estos costes exceden el 40% de la renta disponible para la UE-27, España y Francia entre 2010 y 2024. Esta métrica evidencia vulnerabilidad económica influida por inflación inmobiliaria, salarios estancados y políticas de subsidios, especialmente en áreas urbanas con alta demanda.
En términos generales, se observa un declive a largo plazo en las tres entidades, sugiriendo mejoras en asequibilidad post-crisis de 2008, con la UE-27 cayendo de ~12.5% en 2010 a ~7% en 2024, impulsado por recuperación económica, aumento de ingresos y medidas como controles de alquileres. Hay fluctuaciones cíclicas, con picos en 2013-2016 por austeridad y subidas energéticas, un descenso acelerado post-2018, y rebotes menores en 2020 por la pandemia, que redujo movilidad pero afectó ingresos, acentuándose el declive en 2022-2024 gracias a inflación controlada y fondos de recuperación.
Se destacan divergencias regionales, con la UE-27 mostrando tasas más altas debido a heterogeneidad, mientras Francia y España son más estables.
En comparaciones, la UE-27 inicia en niveles altos (~12.5%) con picos leves en 2011-2013, descendiendo constantemente gracias a convergencia y fondos estructurales, influida por economías vulnerables como Grecia o Italia. España parte de ~10%, con picos a ~11-12% en 2013-2015 por la burbuja inmobiliaria y desempleo, cayendo a ~5% en 2019, rebote a ~7% en 2020 por COVID, y declive a ~5% en 2024, reflejando sensibilidad a shocks en ciudades como Madrid. En cuanto a Francia es la más baja y estable (~6% en 2010 a ~3-4% en 2024), con fluctuaciones menores, gracias a políticas de vivienda social y subsidios que mitigan presiones en París.
Observamos mejoras en sostenibilidad habitacional correlacionadas con crecimiento del PIB y reducción del desempleo post-2015, pero persisten riesgos para bajos ingresos, afectando consumo y movilidad; España resalta volatilidad sectorial, Francia beneficios intervencionistas, y la UE enfatiza cohesión social, aunque eventos como inflación energética podrían revertir tendencias sin mayor oferta asequible.
Código
my_table <-"ilc_lvho29"label_eurostat_tables(my_table) #> [1] "Distribution of population by housing cost burden and degree of urbanisation"df <-get_eurostat(my_table, time_format ='raw', keepFlags =TRUE)#> indexed 0B in0s, 0B/sindexed 2.15GB in0s, 2.15GB/sdf %>%distinct(unit)#> # A tibble: 1 × 1#> unit #> <chr>#> 1 PCdf %>%distinct(freq) #> # A tibble: 1 × 1#> freq #> <chr>#> 1 Acodigos_paises_00 <-c("EU27_2020","ES", # España"FR"# Francia)df_0 <- df %>%filter (TIME_PERIOD >=2010) %>%filter(freq =="A") %>%filter(deg_urb =="DEG1") %>%filter(indic_il =="A40DI") %>%filter(geo %in% codigos_paises_00) %>%filter( unit =="PC", !is.na(values) ) %>%mutate(TIME_PERIOD =as.integer(TIME_PERIOD))ggplot(data = df_0, aes(x = TIME_PERIOD, y = values)) +geom_line(aes(group = geo), color ="#A2B5CD", linewidth =0.7, alpha =0.6) +geom_line(data = df_0 %>%filter(geo =="ES"), aes(group = geo), color ="#36648B", linewidth =1) +geom_line(data = df_0 %>%filter(geo =="EU27_2020"), aes(group = geo), color ="#8B2323", linewidth =1) +scale_y_continuous(labels =function(x) paste0(x, "%")) +labs(title ="Distribución de la población según la carga del coste de la vivienda",subtitle ="Carga de los costes de vivienda superior al 40 % de la renta disponible del hogar \nen zonas urbanas grandes ",x ="Año",y ="Tasa de sobrecarga del coste de la vivienda",caption ="Fuente: Eurostat" ) +annotate("text", x =2025, y =8.5, label ="España", color ="#36648B", size =3) +annotate("text", x =2025, y =9.3, label ="Francia", color ="#A2B5CD", size =3) +annotate("text", x =2025, y =9.7, label ="UE", color ="#8B2323", size =3) +scale_y_continuous(labels =function(x) paste0(x, "%")) +theme_minimal() +theme(legend.position ="right", panel.grid.major.x =element_blank(), panel.grid.minor.x =element_blank(), axis.text.x =element_text(angle =0, hjust =1, size =8),axis.text.y =element_text(size =8), plot.title =element_text(family ="sans", size =12, face ="plain"), plot.subtitle =element_text(family ="sans", size =10, face ="plain") )
4.6. Hogares que viven en condiciones de hacinamiento
Como último factor que relaciona los ingresos con el precio de la vivienda, analizamos la tasa de hacinamiento en hogares de seis países europeos (Irlanda, España, Bélgica, Francia, Portugal e Italia) entre 2010 y 2018, según la definición de la UE que evalúa el número de habitaciones en función de la composición familiar. Esta métrica destaca presiones económicas como la accesibilidad a la vivienda, costos de alquiler y desigualdades de ingresos, asociadas a bajos recursos y limitaciones en la oferta habitacional.
La tasa de hacinamiento según la UE se considera cuando en un hogar hay menos de una habitación por cada mareja, por cada persona soltera mayor de 18 años, por cada pareja de persona del mismo sexo de entre 12 y 17 años, por cada cada pareja soltera de entre 12 7 17 años no incluida en la categoría anetrior y por cada pareja de niños menores de 12 años.
En general, predomina una disminución en la mayoría de los países, lo que indica mejoras post-crisis financiera de 2008, como recuperación del empleo, mayor construcción de viviendas y subsidios, permitiendo a los hogares acceder a espacios más adecuados y reduciendo la presión presupuestaria. Sin embargo, Bélgica e Italia muestran leves aumentos, posiblemente por estancamiento económico o flujos migratorios que elevan la demanda sin oferta correspondiente. Las tasas varían desde bajas (menos del 5% en Irlanda, España y Bélgica) hasta altas (15-17% en Italia), revelando heterogeneidad en la UE, con menor hacinamiento en el norte y occidente frente a mayores desafíos en el sur.
En comparaciones por país, Irlanda mantiene tasas bajas (~2% en 2010, descendiendo ligeramente en 2018) gracias a su auge económico post-rescate; España reduce moderadamente (~3% a 2.5%), ligada a la recuperación inmobiliaria tras la burbuja; Bélgica aumenta levemente (~4% a 4.5%), por presiones demográficas urbanas; Francia desciende notablemente (~7.5% a 6%), por políticas de vivienda social efectivas; Portugal cae fuertemente (~9% a 5.5%), impulsado por reformas y turismo; e Italia sube (~15.5% a 17%), debido a estancamiento, desempleo y envejecimiento.
En términos económicos, el gráfico muestra una tendencia hacia mejor calidad habitacional correlacionada con la recuperación de la UE, pero con desigualdades regionales persistentes que generan riesgos de exclusión social y menor productividad en países como Italia y Bélgica, subrayando la necesidad de políticas para aumentar la oferta de vivienda asequible y mejorar el bienestar.
Código
#Hogares que viven en condiciones de hacinamientodf_03 <- rio::import("./datos/Households_living_in_overcrowded_conditions.csv")codigos_paises_02 <-c("ESP", # España"FRA", # Francia"ITA", # Italia"BEL", #Belgica"PRT", #Portugal"IRL"# Irlanda)df_04 <- df_03 %>%select(REF_AREA, OBS_VALUE, TIME_PERIOD) %>%filter(REF_AREA %in% codigos_paises_02) %>%filter(TIME_PERIOD %in%c(2010,2018))df_04 %>%mutate(REF_AREA =fct_reorder(REF_AREA, OBS_VALUE, .fun = max)) %>%ggplot(aes(REF_AREA, OBS_VALUE, fill =factor(TIME_PERIOD))) +geom_col(position =position_dodge(0.8)) +scale_fill_manual(values =c("2010"="#A6B8CF","2018"="#355C7D" )) +scale_y_continuous(labels =function(x) paste0(x, "%")) +labs(title ="Porcentaje de hogares que viven en condiciones de hacinamiento",subtitle ="Comparación entre los años 2010 y 2018",x ="País",y ="Tasa de hacinamiento",fill ="Año" ) +theme_minimal() +theme(plot.title =element_text(family ="sans",size =12,face ="plain"), axis.text.x =element_text(size =8),axis.text.y =element_text(size =8))
5. Acceso a la vivienda en términos financieros
Observamos en el gráfico varias fases claramente diferenciadas del ciclo monetario, estrechamente ligadas a la coyuntura macroeconómica europea.
Hasta aproximadamente 2005, el tipo de interés muestra una tendencia descendente, coherente con un contexto de estabilidad macroeconómica y baja inflación. Posteriormente, aumenta hasta 2008, en respuesta al fuerte crecimiento económico y a las presiones inflacionistas previas a la crisis financiera.
Con el estallido de la crisis financiera global, el BCE reduce los tipos de interés de forma drástica, iniciando un largo periodo de política monetaria ultraexpansiva que se extiende hasta 2022. Este entorno de tipos excepcionalmente bajos favorece el acceso al crédito, impulsa la demanda de vivienda y contribuye al aumento de los precios inmobiliarios en los principales países europeos.
A partir de 2022, se produce un cambio de régimen monetario: el fuerte repunte de la inflación obliga al BCE a elevar los tipos de interés de forma rápida hasta 2024. Este endurecimiento de la política monetaria encarece el crédito hipotecario, reduce la demanda solvente de vivienda y frena la actividad del mercado inmobiliario, especialmente en economías con alta dependencia del crédito hipotecario.
En conjunto, el gráfico pone de manifiesto que el tipo de interés actúa como una variable clave del ciclo inmobiliario, condicionando tanto la evolución de la demanda como la sostenibilidad del crecimiento de los precios de la vivienda. EN las fases de subida el coste de las hipotecas es más alto (el Euríbor y los tipos suben rápidamente). Las cuotas mensuales se encarecen notablemente y por ello la demanda se reduce. Menos compradores pueden pasar las pruebas de esfuerzo bancarias o asumir la cuota hipotecaria. Por el contrario, cuando baja el tipo el coste de las hipotecas es más bajoy las cuotas mensuales son más asequibles, de modo que aumenta la demanda.
CÓMO: Para elaborar este gráfico, descargamos el fichero que contiene los datos del BCE y los importamos. Dado que es por mes, hacemos la media anual y armonizamos los datos para poder comparar de manera adecuada con el resto del trabajo. Después, hacemos un ggplot normal basado en lo explicado en clase.
Código
tabla_tipo_interes <- rio::import("./datos/datos_ECB_tipo_interes.csv")tabla_tipo_interes_2 <- tabla_tipo_interes |>separate(`TIME PERIOD`, into =c("Year", "Month"), sep =4) |>group_by(Year) |>summarise(media_anual_interes =mean(`Cost of borrowing for households for house purchase (MIR.M.U2.B.A2C.AM.R.A.2250.EUR.N)`))ggplot(tabla_tipo_interes_2, aes(x = Year, y = media_anual_interes)) +geom_line(aes(group =1), color ="#36648B", linewidth =0.8) +labs(title ="Tipo de interés hipotecario promedio aplicado por bancos de la zona euro a \n nuevas hipotecas para compra de vivienda", subtitle ="AAR Interes", x ="Año", y ="Tipo de interés", caption ="Fuente: Banco Central Europeo") +scale_x_discrete(breaks =seq(2003, 2025, by =4))
---title: "Mercado de la vivienda"description: | Análisis factores demográficos y económicos del mercado de la viviendaauthor: - "Isabel Punter Fuster (ipunfus@alumni.es)" - "Zulay Mariana Rodríguez Peñin" - "Juan Carlos Pérez Hernando"date: "2025-12-01"categories: ["trabajo BigData", "vivienda"]title-block-banner: "#0D3B66"title-block-banner-color: "white"toc-depth: 3smooth-scroll: trueformat: html: theme: yeti backgroundcolor: "white" link-external-newwindow: true code-overflow: scrollcode-tools: truecode-link: true---## 1. IntroducciónEl mercado de la vivienda es un elemento central de la economía europea, que influye en la estabilidad financiera de los hogares y en la dinámica macroeconómica de los países. Este trabajo analiza la evolución del mercado inmobiliario en España, Francia y Alemania, considerando factores demográficos, precios de la vivienda, producción de construcción y relación con los ingresos de los hogares.Se utilizan datos de Eurostat, OCDE y Banco Central Europeo, procesados en R/RStudio, para identificar tendencias, diferencias y vulnerabilidades en la asequibilidad y acceso a la vivienda. El objetivo es ofrecer una visión comparativa que permita comprender cómo los cambios económicos y sociales impactan sobre la demanda y la sostenibilidad del mercado habitacional en Europa.```{r}#Cargamos las librerías que vamos a usarlibrary(tidyverse)library(eurostat)library(sf)library(rnaturalearth)library(knitr)library(ggplot2)library(dplyr)library(plotly)library(countrycode)library(sf)library(rio)library(extrafont)library(patchwork)library(leaflet)library(htmltools)library(RColorBrewer)library(giscoR)library(gt)#seleccionamos los países que vamos a compararcodigos_paises <-c("ES", # España"FR", # Francia"DE"# Alemania)codigos_paises_00 <-c("EU27_2020","ES", # España"FR"# Francia)```------------------------------------------------------------------------## 2. Factores demográficosVamos a ver una serie de factores demográficos que influyen sobre la parte de la demanda de la vivienda.------------------------------------------------------------------------### 2.1. Edad de la poblaciónEn primer lugar, analizamos la estructura poblacional por edad. Vemos cómo con el paso de los años se ha dado un envejecimiento poblacional en los tres países. El envejecimiento poblacional convierte la vivienda heredada en un motor clave del mercado inmobiliario actual, impulsando la mayor transferencia de patrimonio intergeneracional de la historia. Esta dinámica genera un aumento de la oferta de viviendas, ya que muchos herederos optan por vender para obtener liquidez inmediata, al mismo tiempo que agrava la desigualdad, pues la herencia de propiedades se concentra en las familias más ricas, convirtiéndose en el principal (y a veces único) acceso a la propiedad para los jóvenes. A esta situación se suma la tendencia de las personas mayores a ver su vivienda como un activo de liquidación (por ejemplo, mediante hipotecas inversas) para financiar cuidados personales, relegando el tradicional objetivo de conservarla como un legado para la siguiente generación.```{r}options(eurostat_cache =TRUE)df_orig <-get_eurostat("demo_r_pjanaggr3", time_format ="raw", keepFlags =TRUE)df <- df_orig %>%select(geo, TIME_PERIOD, age, values, sex) %>%rename(year = TIME_PERIOD,age_code = age,poblacion = values ) %>%filter(sex =="T") df_ok <- df %>%filter( geo %in%c("ES","DE","FR"), year %in%c(2000,2024), age_code %in%c("Y_LT15","Y15-64","Y_GE65") ) %>%group_by(geo, year, age_code) %>%summarise(poblacion =sum(poblacion, na.rm =TRUE),.groups ="drop" ) %>%mutate(poblacion_signed =ifelse(year==2000, -poblacion, poblacion)) %>%mutate(age_label =case_when( age_code =="Y_LT15"~"0–14 años", age_code =="Y15-64"~"15–64 años", age_code =="Y_GE65"~"65 años y más" ))df_ok$age_label <-factor(df_ok$age_label, levels =c("0–14 años","15–64 años","65 años y más"))df_ok$geo <-factor(df_ok$geo, levels =c("FR","DE","ES"), labels =c("Francia","Alemania","España"))pop_max <-max(abs(df_ok$poblacion_signed), na.rm =TRUE)ggplot(df_ok, aes(x = poblacion_signed, y = age_label, fill =factor(year))) +geom_col(width =0.6) +scale_x_continuous(limits =c(-pop_max, pop_max),breaks =seq(-60000000, 60000000, by =30000000),labels =function(x) {paste0(round(abs(x) /1000000, 0) ) },name ="Población total (millones)" ) +scale_fill_manual(values =c("2000"="#A2B5CD","2024"="#8B7D6B")) +facet_wrap(~geo) +labs(title="Pirámide poblacional comparativa: 2000 vs 2024",y="Grupo de edad",fill="Año",caption="Fuente: Eurostat (demo_r_pjanaggr3)" ) +theme_minimal() +theme(axis.text.y =element_text(size =9),strip.text =element_text(face ="bold") )```------------------------------------------------------------------------### 2.2. Tamaño de los hogaresEn segundo lugar, analizamos el tamaño de los hogares. Esta variable es de gran relevancia y varía con las tendencias sociales.Observamos en el gráfico una reducción de manera agregada en el tamaño de los hogares. La reducción del tamaño del hogar implica que a igual población, se necesitan más viviendas, lo que hace aumentar la presión sobre la demanda y que se incrementen los precios.Si comparamos los países, vemos que donde más se reduce es en España, seguido de Francia y después de Alemania.```{r}my_table_HHS <-"ilc_lvph01"df_HHS <-get_eurostat(my_table_HHS, time_format ='raw', keepFlags =TRUE) codigos_paises <-c("ES", # España"FR", # Francia"DE") # Aledf_paises_HHS <- df_HHS |>filter (geo %in% codigos_paises) |>filter(TIME_PERIOD %in%c("2005", "2015", "2024"))p1 <-ggplot(df_paises_HHS, aes(x = TIME_PERIOD, y = values, fill = geo)) +geom_col() +labs(title ="Tamaño promedio hogares", x ="Año",y ="Valores", fill ="País", caption ="Fuente: Eurostat") +theme(plot.title =element_text(family ="sans",size =12,face ="plain"), axis.text.x =element_text(size =8),axis.text.y =element_text(size =8))my_pal =c("gray50","#36648B", "#A2B5CD")p1 +scale_fill_manual(values = my_pal)```------------------------------------------------------------------------## 3. Mercado de la viviendaA continuación detallamos un análisis de los factores que se ven envueltos en el mercado de la vivienda.------------------------------------------------------------------------<br>### 3.1. Volumen de la producción en la construcciónEn España el volumen de la producción desde 2015 sigue tres tendencias. En primer lugar, aumenta hasta 2016. Después disminuye de manera oscilante hasta 2022, con una gran caída en 2020 debido al Covid. En los últimos años se ha recuperado. Vemos como la construcción en España es altamente sensible a los shocks y variaciones del mercado.Francia, por su parte, presenta 4 tendencias. La construcción aumenta hasta 2017, después cae mediante oscilaciones hasta 2020, en 2021 hay un breve aumento aproximadamente del 5% y presenta una tendencia decreciente desde entonces.Si comparamos ambos países con el promedio de la UE, la tendencia es similar entre los 3. Sin embargo, las oscilaciones de la UE son menores, puesto que es un promedio de muchos países con diferentes evoluciones, lo que permite su evolución sea más suave. Las tendencias difieren principalemente en 2017 y el periodo de la crisis del Covid 19.```{r}my_table_2 <-"sts_copr_a"#- seleccioné la tabla: "Distribution of population by housing cost burden and degree of urbanisation"df_09 <-get_eurostat(my_table_2, time_format ='raw', keepFlags =TRUE)df_10 <- df_09 %>%filter(TIME_PERIOD >=2015) %>%filter(freq =="A") %>%filter(s_adj =="CA") %>%filter(nace_r2 =="F41") %>%filter(geo %in% codigos_paises_00) %>%filter( unit =="PCH_SM", !is.na(values) ) %>%mutate(TIME_PERIOD =as.integer(as.numeric(TIME_PERIOD)))ggplot(data = df_10, aes(x = TIME_PERIOD, y = values)) +geom_line(aes(group = geo), color ="#A2B5CD", linewidth =0.7, alpha =0.5) +geom_line(data= df_10 %>%filter(geo =="ES"), aes(group = geo), color ="#36648B", linewidth =1) +geom_line(data= df_10 %>%filter(geo =="EU27_2020"), aes(group = geo), color ="#8B2323", linewidth =1) +scale_x_continuous(breaks =seq(min(df_10$TIME_PERIOD), max(df_10$TIME_PERIOD), 1)) +scale_y_continuous(labels =function(x) paste0(x, "%")) +labs(title ="Volumen de la producción en la construcción de edificios residenciales y \nno residenciales",subtitle ="Cambio porcentual respecto al mismo periodo del año anterior ",x ="Año",y ="variación interanual",caption ="Fuente: Eurostat") +annotate("text", x =2024.3, y =-2.5, label ="UE", color ="#8B2323", size =3) +annotate("text", x =2024.3, y =2.7, label ="España", color ="#36648B", size =3) +annotate("text", x =2024.3, y =-7, label ="Francia", color ="#A2B5CD", size =3) +theme_minimal() +theme(panel.grid.major.x =element_blank(), panel.grid.minor.x =element_blank(), axis.text.x =element_text(angle =0, hjust =1),plot.title =element_text(family ="sans",size =12,face ="bold"))```------------------------------------------------------------------------<br>### 3.2. Alquileres reales pagados por los inquilinosAhora analizamos la evolución del índice de precios del alquiler (subgrupo de vivienda: coicop == "CP041") en España, Francia, Alemania y la Eurozona entre 2015 y la fecha más reciente disponible, usando datos mensuales de Eurostat.Vemos como sube el índice en todos los países seleccionados y en la UE 19. España crece más en comparación con el resto de países desde 2019. Además, vemos como las pendientes aumentan en todos los países a partir de 2022.```{r}#| fig-width: 6#| fig-height: 6my_table <-"prc_hicp_midx"label_eurostat_tables(my_table) df <-get_eurostat(my_table, time_format ='raw', keepFlags =TRUE)# 2. Filtrar, Manipular y Calcular el Promedio Anualdatos_comparacion_anual <- df %>%filter( freq =="M", unit =="I05", coicop =="CP041", geo %in%c("ES", "FR", "DE", "EA19"), TIME_PERIOD >="2015-01" ) %>%mutate( Año =substr(TIME_PERIOD, 1, 4),Fecha_Anual =ymd(paste0(Año, "-01-01")) ) %>%group_by(Año, Fecha_Anual, geo) %>%summarise(values =mean(values, na.rm =TRUE),.groups ='drop' ) %>%drop_na(Fecha_Anual, values) %>%mutate(Pais =case_when( geo =="ES"~"España", geo =="FR"~"Francia", geo =="DE"~"Alemania", geo =="EA19"~"Eurozona (EA19)",TRUE~ geo ))# Definición de la paleta de colorescolores_personalizados <-c("España"="#36648B", "Eurozona (EA19)"="#8B2323", "Alemania"="gray50", "Francia"="#A2B5CD")# Generar el gráfico con los 4 territorios y colores manualesgrafico_hicp_colores <- datos_comparacion_anual %>%ggplot(aes(x = Fecha_Anual, y = values, color = Pais)) +geom_line(linewidth =1) +geom_point(size =2) +scale_color_manual(values = colores_personalizados) +labs(title ="Índice de precios del alquiler",x ="Año",y ="Índice (2015 = 100)",color ="Territorio", caption ="Fuente: Eurostat (prc_hicp_midx) | Cálculo: Promedio de valores mensuales." ) +scale_x_date(date_breaks ="1 year", date_labels ="%Y") +theme_minimal() +theme(plot.title =element_text(family ="sans",size =12,face ="plain"),plot.subtitle =element_text(size =8, color ="gray50"),axis.text.x =element_text(angle =0, hjust =1, size =8),axis.text.y =element_text(size =8),legend.position ="bottom")# Mostrar el gráficoprint(grafico_hicp_colores)```------------------------------------------------------------------------### 3.3. Índice de precios de la vivienda nueva y antiguaEl gráfico compara la evolución del índice de precios para Viviendas de Nueva Construcción (A) y Viviendas Existentes (B) en Alemania, España y Francia, tomando como referencia los años 2006, 2015 y 2024.En el caso de las Viviendas de Nueva Construcción (A), todos los países muestran un incremento en el índice de precios al pasar de 2015 a 2024. El índice más alto en 2024 se registra en Alemania, seguido por España y luego Francia. Sin embargo, al observar la tendencia desde 2006, Alemania y Francia han experimentado un crecimiento continuo, mientras que España se distingue por una caída del índice entre 2006 y 2015. Este patrón de caída drástica se debe principalmente al estallido de la burbuja inmobiliaria de 2008. Durante los años previos a 2007, España experimentó una década de crecimiento inmobiliario alimentado por un exceso de crédito bancario laxo y una sobre construcción masiva. Cuando la crisis financiera global impactó, el mercado se ajustó violentamente, llevando al desplome de los precios de la vivienda, al alto desempleo y a un gran stock de viviendas sin vender.La tendencia en el mercado de Viviendas Existentes (B) es notablemente similar a la de las viviendas nuevas, pero con algunas diferencias en la magnitud.Este patrón similar en ambos tipos de vivienda en España sugiere que el ajuste de precios en el país afectó al mercado inmobiliario en su conjunto, mientras que Alemania y Francia parecen haber experimentado un mercado más estable o de crecimiento continuo a lo largo del periodo analizado.```{r}my_table <-"prc_hpi_a"#- seleccioné la tabla: "Indice de precios de la vivienda label_eurostat_tables(my_table) # informacion de la tabla#- descarga la base de datos de Eurostat APIdf <-get_eurostat(my_table, time_format ='raw', keepFlags =TRUE)# --- DATOS INICIALES Y CARGA (No se repiten los pasos de preparación de datos) ---paises_deseados <-c("ES", "FR", "DE")años_barras <-c(2006, 2015, 2024)colores_barras <-c("2006"="#A2B5CD", "2015"="#8B7D6B", "2024"="#36648b") # Base de datos filtrada para EXSTdf_europa_filtrado_EXST <- df %>%filter(freq =="A") %>%filter(purchase =="DW_EXST") %>%filter(geo %in% paises_deseados) %>%filter( unit =="I10_A_AVG",!is.na(values) )df_barras_EXST <- df_europa_filtrado_EXST %>%mutate(TIME_PERIOD =as.character(TIME_PERIOD)) %>%filter(TIME_PERIOD %in% años_barras) %>%mutate(TIME_PERIOD =factor(TIME_PERIOD, levels = años_barras))# Base de datos para NEWdf_europa_filtrado_NEW <- df %>%filter(freq =="A") %>%filter(purchase =="DW_NEW") %>%filter(geo %in% paises_deseados) %>%filter( unit =="I10_A_AVG",!is.na(values) )df_barras <- df_europa_filtrado_NEW %>%mutate(TIME_PERIOD =as.character(TIME_PERIOD)) %>%filter(TIME_PERIOD %in% años_barras) %>%mutate(TIME_PERIOD =factor(TIME_PERIOD, levels = años_barras))# Graficos juntosgrafico_barras_NEW <-ggplot(data = df_barras,aes(x = geo, y = values, fill = TIME_PERIOD)) +geom_col(position ="dodge") +labs(title ="A. Viviendas de Nueva Construcción",x ="",y ="Índice de Precios",fill ="Año" ) +scale_fill_manual(values = colores_barras) +scale_y_continuous(limits =c(0, 200), breaks =seq(0, 200, 50)) +theme_minimal() +theme(plot.title =element_text(face ="plain", size =12), axis.title.x =element_text(size =7), axis.title.y =element_text(size=7))grafico_barras_EXST <-ggplot(data = df_barras_EXST, aes(x = geo, y = values, fill = TIME_PERIOD)) +geom_col(position ="dodge") +labs(title ="B. Viviendas Existentes",x ="",y ="",fill ="Año" ) +scale_fill_manual(values = colores_barras) +scale_y_continuous(limits =c(0, 200), breaks =seq(0, 200, 50)) +theme_minimal() +theme(plot.title =element_text(face ="plain", size =12), axis.title.x =element_text(size =7), axis.title.y =element_text(size=7))grafico_combinado <- (grafico_barras_NEW + grafico_barras_EXST)grafico_final <- grafico_combinado +plot_layout(guides ='collect', widths =c(1, 1) ) &theme(legend.position ="bottom")grafico_final <- grafico_final +plot_annotation(title ='Comparación del Índice de Precios de la Vivienda',theme(plot.title =element_text(face ="plain", size =12), axis.title.x =element_text(size =8), axis.title.y =element_text(size=8)) )# Grafico finalprint(grafico_final)```------------------------------------------------------------------------<br>## 4. Relación entre la vivienda y la renta de los hogaresA continuación detallamos diferentes factores socioeconómicos que afectan a la renta disponible de las familias y la relación entre los precios de la vivienda y los ingresos.------------------------------------------------------------------------<br>### 4.1. Comparación de los salarios con los ingresosEn este apartado nos basamos en la ratio renta-precio de la vivienda de la OCDE. El gráfico ilustra la evolución del Ratio de Ingresos-Precio de la Vivienda para España, Alemania y Francia, actuando como un barómetro de la asequibilidad: cuando el indicador sube, los precios de la vivienda crecen más rápido que los ingresos, dificultando el acceso y señalando un riesgo de burbuja. La trayectoria de España es la más marcada, reflejando ciclos extremos: un fuerte crecimiento y el máximo de inasequibilidad alrededor de 2008, coincidiendo con la burbuja inmobiliaria. Este pico fue seguido por un desplome abrupto hasta 2014, fruto de la Crisis Hipotecaria, que si bien mejoró la asequibilidad (al bajar el indicador), causó una profunda crisis en el sector y problemas de deuda.A partir de 2015, el indicador español retomó una tendencia alcista, señalando una recuperación del mercado que ha vuelto a presionar la asequibilidad de la vivienda, con oscilaciones notables durante la Crisis COVID-19. En contraste, las tendencias de Alemania y Francia han sido considerablemente menos volátiles. Alemania ha mantenido consistentemente la ratio más baja, indicando una mayor estabilidad y asequibilidad. Francia muestra una tendencia más moderada que España, sin experimentar el dramático colapso post-2008, lo que subraya la naturaleza particularmente cíclica y volátil del mercado inmobiliario español en comparación con sus pares europeos.::: {.callout-tip collapse="true" icon="false" title="Inspiración"}Nos hemos inspirado en este trabajo para este código: https://dabrando8.github.io/trabajo_BigData_equipo/my_trabajo_BigData.html:::```{r}ruta <-"./datos/standarised_house_income.csv"df_ocde <- rio::import(ruta) codigos_paises_2 <-c("ESP", # España"FRA", # Francia"DEU") # Alemania df_ocde_2 <- df_ocde |>select(TIME_PERIOD, OBS_VALUE, REF_AREA) |>filter(REF_AREA %in% codigos_paises_2) |>filter(TIME_PERIOD %in%c(2005:2024))colores <-c( "ESP"="#36648B", "FRA"="#A2B5CD", "DEU"="#A9A9A9") ggplot(data = df_ocde_2, aes(x = TIME_PERIOD, y = OBS_VALUE)) +geom_line(aes(group = REF_AREA), color ="#A2B5CD", linewidth =0.7, alpha =0.3) +geom_line(data = df_ocde_2 %>%filter(REF_AREA %in% codigos_paises_2),aes(color = REF_AREA, group = REF_AREA),linewidth =1) +scale_color_manual(values = colores) +labs(title ="Ratio de ingresos de los hogares ajustado por tamaño",x ="Año",y ="Índice de Precios",caption ="Fuente: OCDE") +annotate("text", x =2025, y =112, label ="España", color ="#36648B", size =3) +annotate("text", x =2025, y =108, label ="Francia", color ="#A2B5CD", size =3) +annotate("text", x =2025, y =88, label ="Alemania", color ="#A9A9A9", size =3) +annotate("rect",xmin =2008, xmax =2012,ymin =-Inf, ymax =Inf,alpha =0.2, fill ="red") +annotate("text",x =2010, y =max(df_ocde_2$OBS_VALUE) *0.95, label ="Crisis Hipotecaria", color ="red", size =4) +annotate("rect",xmin =2020, xmax =2022,ymin =-Inf, ymax =Inf,alpha =0.2, fill ="red") +annotate("text",x =2021, y =max(df_ocde_2$OBS_VALUE) *0.95, label ="Crisis COVID", color ="red", size =4) +theme_minimal() +theme(legend.position ="none", panel.grid.major.x =element_blank(), panel.grid.minor.x =element_blank(), axis.text.x =element_text(angle =0, hjust =1),plot.title =element_text(family ="sans", size =12, face ="plain"), axis.title.x =element_text(size =8),axis.title.y =element_text(size=8))```<br>------------------------------------------------------------------------### 4.2. Umbral riesgo de pobrezaEn este mapa coroplético se representa el Umbral de Riesgo de Pobreza de Eurostat (el 60% de la mediana del ingreso disponible equivalente, para un hogar unipersonal) en los países de la Unión Europea para 2024, medido en Estándares de Poder Adquisitivo (PPS).::: calloutEl PPS es una unidad artificial que neutraliza las diferencias en los niveles de precios entre los países, permitiendo una comparación más justa de cuánto ingreso se necesita para cubrir el costo de vida básico.:::España se encuentra en el rango de colores morado oscuro en el mapa, lo que la sitúa en un umbral de riesgo de pobreza entre 14000€. Esto la coloca en la parte baja/media-baja de la distribución de umbrales dentro de la UE. Después de ajustar el poder adquisitivo, el nivel de ingreso considerado "mínimo" para vivir en España es significativamente inferior al necesario en los países más ricos de Europa Central y del Norte, reflejando una diferencia estructural en los niveles de ingresos medianos en toda la zona euro.::: {.callout-tip collapse="true" icon="false" title="Descripción del código"}Este código está diseñado para descargar y filtrar datos de Eurostat relacionados con el umbral de pobreza, específicamente centrándose en el ingreso necesario para evitar el riesgo de pobreza en diferentes países de la Unión Europea (UE). Primero, se define la tabla a utilizar, "ilc_li01", que corresponde a los datos sobre el umbral de riesgo de pobreza. Luego, se utiliza la función get_eurostat para descargar el conjunto de datos completo y guardarlo en la variable df2. El bloque crucial es la fase de filtrado, donde se prepara el conjunto de datos final (df_filtrado_A1) para el análisis. El código filtra los datos para incluir solo el umbral de riesgo de pobreza para un hogar de una sola persona (hhtyp == "A1") y se enfoca en el indicador "60% de la mediana del ingreso disponible equivalente" (indic_il == "LI_C_M60"), que es la definición estándar del umbral de pobreza de la UE. Además, se filtran los datos por la unidad de medida Estándares de Poder Adquisitivo (PPS) (currency == "PPS"), lo que permite una comparación de ingresos más justa entre los diferentes países de la UE al neutralizar las diferencias de precios. Finalmente, el código se restringe a los países miembros de la UE definidos en codigos_ue y selecciona el año más reciente disponible, 2024, para obtener la información más actualizada sobre el umbral de pobreza.:::```{r}# UMBRAL DE POBREZAmy_table <-"ilc_li01"label_eurostat_tables(my_table) #- descarga la base de datos de Eurostat APIdf2 <-get_eurostat(my_table, time_format ='raw', keepFlags =TRUE)# Verificar variablesdf2 %>%distinct(hhtyp)df2 %>%distinct(indic_il)df2 %>%distinct(currency)codigos_ue <-c("AT", "BE", "BG", "HR", "CZ", "CY", "DK", "SK", "SI", "ES", "EE", "FI", "FR", "EL", "HU", "IE", "IT", "LV", "LT", "LU", "MT", "NL", "PL", "PT", "RO", "SE", "DE")df_filtrado_A1 <- df2 %>%filter( hhtyp =="A1" , currency =="PPS", indic_il =="LI_C_M60", geo %in% codigos_ue , TIME_PERIOD =="2024" )# --- PASO 1: Descargar Geometrías ---europa_sf <-gisco_get_countries(year ="2020",resolution ="20",country = codigos_ue, epsg ="4326")europa_sf <- europa_sf %>%rename(geo = CNTR_ID) # --- PASO 2: Unir tus datos de Eurostat con las geometrías ---df_mapa <-left_join(europa_sf, df_filtrado_A1, by ="geo")nombre_columna_valor <-"values"nombre_columna_pais <-"NAME_LATN"mypalette <-colorNumeric( palette ="cividis", domain = df_mapa[[nombre_columna_valor]], na.color ="transparent")mytext <-paste("País: ", df_mapa[[nombre_columna_pais]], "<br/>", "Indicador (LI_C_M60): ", df_mapa$indic_il, "<br/>", "Valor (PPS, 2024): ", round(df_mapa[[nombre_columna_valor]], 0), sep ="") %>%lapply(htmltools::HTML)# 3. Crear y mostrar el mapamapa <-leaflet(df_mapa) %>%addTiles() %>%setView(lat =50, lng =10, zoom =3) %>%addPolygons( fillColor =~mypalette(df_mapa[[nombre_columna_valor]]), stroke =TRUE, fillOpacity =0.9, color ="white", weight =0.5,label = mytext,labelOptions =labelOptions( style =list("font-weight"="normal", padding ="3px 8px"), textsize ="13px", direction ="auto" ) ) %>%addLegend( pal = mypalette, values =~df_mapa[[nombre_columna_valor]], opacity =0.9, title ="Umbral riesgo de pobreza (PPS)", position ="bottomleft" )mapa```<br>------------------------------------------------------------------------### 4.3. Consumo anual de los hogaresLa tabla presenta datos de la OCDE sobre el gasto final de consumo de los hogares en la categoría COICOP (vivienda, agua, electricidad, gas y otros combustibles), expresado en millones de euros para siete países europeos en los años 2005, 2010, 2015 y 2020. Este gasto refleja el consumo esencial en servicios básicos y vivienda, influido por factores como el tamaño de la economía, la urbanización, los precios de la energía y eventos macroeconómicos como la crisis financiera de 2008-2009 y la pandemia de COVID-19 en 2020.Alemania y Francia destacan con los gastos más altos en todos los años, superando consistentemente los 200.000 millones de euros. En 2020, Alemania alcanza 420.033 millones y Francia 336.356 millones, lo que indica economías grandes con alta demanda de energía y vivienda debido a poblaciones densas y sectores industriales fuertes.Portugal e Irlanda muestran volúmenes más bajos, por debajo de 30.000 millones en 2020, reflejando economías más pequeñas y posiblemente menor dependencia de consumos intensivos en servicios básicos.Se observa un incremento general en todos los países entre 2005 y 2020, con aceleraciones notables en periodos pre-crisis (hasta 2010) en países del sur como España y Portugal. Post-2010, el avance es más moderado en Italia y España, mientras que Bélgica e Irlanda mantienen un ritmo más constante.El salto entre 2005 y 2010 en España (de 96.249 a 142.858 millones) sugiere un auge inmobiliario pre-crisis, seguido de una estabilización. En 2020, el gasto sigue subiendo pese a la pandemia, posiblemente por mayor tiempo en hogares y uso de utilities.Por tanto, llegamos a la conclusión de que los países del norte (Alemania, Francia, Bélgica) tienen gastos absolutos más altos, lo que apunta a mayores costos de vida o inversiones en infraestructura energética. En contraste, el sur (España, Italia, Portugal) e Irlanda muestran volatilidad, sensible a ciclos económicos europeos.```{r}#Gasto final de consumo anual de los hogares: Vivienda, agua, electricidad, gas y otros combustiblesdf_01 <- rio::import("./datos/Annual_household_final_consumption.csv")codigos_paises_01 <-c("ESP", # España"FRA", # Francia"DEU", # Alemania"ITA", # Italia"BEL", #Belgica"PRT", #Portugal"IRL"# Irlanda)df_02 <- df_01 %>%filter(TIME_PERIOD %in%c(2005,2010,2015,2020)) %>%select("REF_AREA", "OBS_VALUE", "TIME_PERIOD", "CURRENCY", "FREQ") %>%filter(FREQ =="A") %>%filter(REF_AREA %in% codigos_paises_01)df_02 <- df_02 %>%select(REF_AREA, TIME_PERIOD, OBS_VALUE) %>%mutate(REF_AREA.f = forcats::as_factor(REF_AREA), .after = REF_AREA) %>%mutate(REF_AREA.f = forcats::fct_recode(REF_AREA.f,"España"="ESP","Francia"="FRA", "Alemania"="DEU","Italia"="ITA","Bélgica"="BEL","Portugal"="PRT","Irlanda"="IRL")) df_02 <- df_02 %>%select(REF_AREA.f, TIME_PERIOD, OBS_VALUE) %>%rename(year = TIME_PERIOD) %>%rename (countries = REF_AREA.f)df_02 <- df_02 %>%pivot_wider(names_from = year, values_from = OBS_VALUE) tt_1 <- gt::gt(df_02)tt_1 %>% gtExtras::gt_theme_pff() %>%tab_header(title =md("**Gasto final del consumo anual de los hogares**"),subtitle ="Vivienda, agua, electricidad, gas y otros combustibles") %>%opt_align_table_header(align ="left") %>%tab_style(style =cell_text(size =px(19)),locations =cells_title("title")) %>%tab_source_note(md("Fuente: datos de la [OCDE](https://www.oecd.org/en.html)")) %>%tab_footnote(footnote ="En Millones de Euros", placement ="right",location =cells_title("title")) %>%cols_align(align ="center")```------------------------------------------------------------------------### 4.4. Asequibilidad de la viviendaEn este gráfico se representa la asequibilidad de la vivienda en Alemania, España y Francia entre 2004 y 2016, midiendo el porcentaje del ingreso bruto disponible de los hogares que queda después de deducir costes como alquileres, mantenimiento, reparaciones, suministros energéticos y gastos en mobiliario. Este indicador refleja la capacidad financiera de los hogares para cubrir otros gastos esenciales, influida por ciclos económicos, precios inmobiliarios y políticas de subsidios, con valores oscilando entre el 77% y 82%, lo que indica que la vivienda absorbe un 18-23% del ingreso, pero con vulnerabilidad a crisis que erosionan la resiliencia.En general, se observa un declive inicial hasta 2012, coincidiendo con la crisis financiera de 2008 y la de deuda soberana, seguido de recuperaciones heterogéneas post-2012, sugerentes de mejoras en PIB y empleo, aunque con fluctuaciones por subidas en precios energéticos y austeridad.En comparaciones por país, Alemania muestra estabilidad y mejora (de \~80% a 81% en 2016), gracias a su economía robusta y control de precios; España experimenta un declive pronunciado (de \~82% a \~78% en 2012) por la burbuja inmobiliaria y desempleo, con estabilización posterior; y Francia presenta un deterioro moderado (de \~79-80% a \~77-78%), mitigado por políticas de vivienda social.Económicamente, el gráfico evidencia desigualdades regionales en la UE, con el norte (Alemania) manteniendo mejor asequibilidad frente al sur y oeste (España y Francia), destacando riesgos de polarización que limitan movilidad social y consumo interno, y subrayando la necesidad de reformas para impulsar ingresos y contener costes habitacionales, impactando el crecimiento a largo plazo.```{r}#Asequibilidad de la viviendadf_05 <- rio::import("./datos/Housing_affordability.csv")codigos_paises_03 <-c("ESP", # España"FRA", # Francia"DEU"#Alemania )df_06 <- df_05 %>%select("REF_AREA", "OBS_VALUE", "TIME_PERIOD") %>%filter(REF_AREA %in% codigos_paises_03)ggplot(data = df_06, aes(x = TIME_PERIOD, y = OBS_VALUE)) +geom_line(data= df_06 %>%filter(REF_AREA =="DEU"), aes(color = REF_AREA, group = REF_AREA), color ="#8B7D6B", linewidth =1)+geom_line(data= df_06 %>%filter(REF_AREA =="ESP"), aes(color = REF_AREA, group = REF_AREA), color ="#36648B", linewidth =1) +geom_line(data= df_06 %>%filter(REF_AREA =="FRA"), aes(color = REF_AREA, group = REF_AREA), color ="#A2B5CD", linewidth =1) +scale_y_continuous(labels =function(x) paste0(x, "%")) +labs(title ="Asequibilidad de la vivienda",subtitle ="Porcentaje del ingreso bruto disponible del hogar que queda, después de las \ndeducciones por alquileres y mantenimiento de la vivienda",x ="Año",y ="Tasa de ingreso bruto dispobible",caption ="Fuente: OECD") +annotate("text", x =2020, y =78.4, label ="Francia", color ="#A2B5CD", size =3) +annotate("text", x =2020, y =78.7, label ="España", color ="#36648B", size =3) +annotate("text", x =2020, y =80.8, label ="Alemania", color ="#8B7D6B", size =3) +theme_minimal() +theme(panel.grid.major.x =element_blank(), panel.grid.minor.x =element_blank(), axis.text.x =element_text(angle =0, hjust =1, size =8),axis.text.y =element_text(size =8), plot.title =element_text(family ="sans",size =12,face ="plain"), plot.subtitle =element_text(family ="sans",size =10,face ="plain"))```------------------------------------------------------------------------<br>### 4.5. Distribución de la población según la carga del coste de la vivienda y el grado de urbanizaciónPor otro lado, en este apartado analizamos la tasa de sobrecarga del coste de la vivienda en grandes zonas urbanas, calculado como porcentaje de población donde estos costes exceden el 40% de la renta disponible para la UE-27, España y Francia entre 2010 y 2024. Esta métrica evidencia vulnerabilidad económica influida por inflación inmobiliaria, salarios estancados y políticas de subsidios, especialmente en áreas urbanas con alta demanda.En términos generales, se observa un declive a largo plazo en las tres entidades, sugiriendo mejoras en asequibilidad post-crisis de 2008, con la UE-27 cayendo de \~12.5% en 2010 a \~7% en 2024, impulsado por recuperación económica, aumento de ingresos y medidas como controles de alquileres. Hay fluctuaciones cíclicas, con picos en 2013-2016 por austeridad y subidas energéticas, un descenso acelerado post-2018, y rebotes menores en 2020 por la pandemia, que redujo movilidad pero afectó ingresos, acentuándose el declive en 2022-2024 gracias a inflación controlada y fondos de recuperación.Se destacan divergencias regionales, con la UE-27 mostrando tasas más altas debido a heterogeneidad, mientras Francia y España son más estables.En comparaciones, la UE-27 inicia en niveles altos (\~12.5%) con picos leves en 2011-2013, descendiendo constantemente gracias a convergencia y fondos estructurales, influida por economías vulnerables como Grecia o Italia. España parte de \~10%, con picos a \~11-12% en 2013-2015 por la burbuja inmobiliaria y desempleo, cayendo a \~5% en 2019, rebote a \~7% en 2020 por COVID, y declive a \~5% en 2024, reflejando sensibilidad a shocks en ciudades como Madrid. En cuanto a Francia es la más baja y estable (\~6% en 2010 a \~3-4% en 2024), con fluctuaciones menores, gracias a políticas de vivienda social y subsidios que mitigan presiones en París.Observamos mejoras en sostenibilidad habitacional correlacionadas con crecimiento del PIB y reducción del desempleo post-2015, pero persisten riesgos para bajos ingresos, afectando consumo y movilidad; España resalta volatilidad sectorial, Francia beneficios intervencionistas, y la UE enfatiza cohesión social, aunque eventos como inflación energética podrían revertir tendencias sin mayor oferta asequible.```{r}my_table <-"ilc_lvho29"label_eurostat_tables(my_table) df <-get_eurostat(my_table, time_format ='raw', keepFlags =TRUE)df %>%distinct(unit)df %>%distinct(freq) codigos_paises_00 <-c("EU27_2020","ES", # España"FR"# Francia)df_0 <- df %>%filter (TIME_PERIOD >=2010) %>%filter(freq =="A") %>%filter(deg_urb =="DEG1") %>%filter(indic_il =="A40DI") %>%filter(geo %in% codigos_paises_00) %>%filter( unit =="PC", !is.na(values) ) %>%mutate(TIME_PERIOD =as.integer(TIME_PERIOD))ggplot(data = df_0, aes(x = TIME_PERIOD, y = values)) +geom_line(aes(group = geo), color ="#A2B5CD", linewidth =0.7, alpha =0.6) +geom_line(data = df_0 %>%filter(geo =="ES"), aes(group = geo), color ="#36648B", linewidth =1) +geom_line(data = df_0 %>%filter(geo =="EU27_2020"), aes(group = geo), color ="#8B2323", linewidth =1) +scale_y_continuous(labels =function(x) paste0(x, "%")) +labs(title ="Distribución de la población según la carga del coste de la vivienda",subtitle ="Carga de los costes de vivienda superior al 40 % de la renta disponible del hogar \nen zonas urbanas grandes ",x ="Año",y ="Tasa de sobrecarga del coste de la vivienda",caption ="Fuente: Eurostat" ) +annotate("text", x =2025, y =8.5, label ="España", color ="#36648B", size =3) +annotate("text", x =2025, y =9.3, label ="Francia", color ="#A2B5CD", size =3) +annotate("text", x =2025, y =9.7, label ="UE", color ="#8B2323", size =3) +scale_y_continuous(labels =function(x) paste0(x, "%")) +theme_minimal() +theme(legend.position ="right", panel.grid.major.x =element_blank(), panel.grid.minor.x =element_blank(), axis.text.x =element_text(angle =0, hjust =1, size =8),axis.text.y =element_text(size =8), plot.title =element_text(family ="sans", size =12, face ="plain"), plot.subtitle =element_text(family ="sans", size =10, face ="plain") ) ```------------------------------------------------------------------------<br>### 4.6. Hogares que viven en condiciones de hacinamientoComo último factor que relaciona los ingresos con el precio de la vivienda, analizamos la tasa de hacinamiento en hogares de seis países europeos (Irlanda, España, Bélgica, Francia, Portugal e Italia) entre 2010 y 2018, según la definición de la UE que evalúa el número de habitaciones en función de la composición familiar. Esta métrica destaca presiones económicas como la accesibilidad a la vivienda, costos de alquiler y desigualdades de ingresos, asociadas a bajos recursos y limitaciones en la oferta habitacional.::: calloutLa tasa de hacinamiento según la UE se considera cuando en un hogar hay menos de una habitación por cada mareja, por cada persona soltera mayor de 18 años, por cada pareja de persona del mismo sexo de entre 12 y 17 años, por cada cada pareja soltera de entre 12 7 17 años no incluida en la categoría anetrior y por cada pareja de niños menores de 12 años.:::En general, predomina una disminución en la mayoría de los países, lo que indica mejoras post-crisis financiera de 2008, como recuperación del empleo, mayor construcción de viviendas y subsidios, permitiendo a los hogares acceder a espacios más adecuados y reduciendo la presión presupuestaria. Sin embargo, Bélgica e Italia muestran leves aumentos, posiblemente por estancamiento económico o flujos migratorios que elevan la demanda sin oferta correspondiente. Las tasas varían desde bajas (menos del 5% en Irlanda, España y Bélgica) hasta altas (15-17% en Italia), revelando heterogeneidad en la UE, con menor hacinamiento en el norte y occidente frente a mayores desafíos en el sur.En comparaciones por país, Irlanda mantiene tasas bajas (\~2% en 2010, descendiendo ligeramente en 2018) gracias a su auge económico post-rescate; España reduce moderadamente (\~3% a 2.5%), ligada a la recuperación inmobiliaria tras la burbuja; Bélgica aumenta levemente (\~4% a 4.5%), por presiones demográficas urbanas; Francia desciende notablemente (\~7.5% a 6%), por políticas de vivienda social efectivas; Portugal cae fuertemente (\~9% a 5.5%), impulsado por reformas y turismo; e Italia sube (\~15.5% a 17%), debido a estancamiento, desempleo y envejecimiento.En términos económicos, el gráfico muestra una tendencia hacia mejor calidad habitacional correlacionada con la recuperación de la UE, pero con desigualdades regionales persistentes que generan riesgos de exclusión social y menor productividad en países como Italia y Bélgica, subrayando la necesidad de políticas para aumentar la oferta de vivienda asequible y mejorar el bienestar.```{r}#Hogares que viven en condiciones de hacinamientodf_03 <- rio::import("./datos/Households_living_in_overcrowded_conditions.csv")codigos_paises_02 <-c("ESP", # España"FRA", # Francia"ITA", # Italia"BEL", #Belgica"PRT", #Portugal"IRL"# Irlanda)df_04 <- df_03 %>%select(REF_AREA, OBS_VALUE, TIME_PERIOD) %>%filter(REF_AREA %in% codigos_paises_02) %>%filter(TIME_PERIOD %in%c(2010,2018))df_04 %>%mutate(REF_AREA =fct_reorder(REF_AREA, OBS_VALUE, .fun = max)) %>%ggplot(aes(REF_AREA, OBS_VALUE, fill =factor(TIME_PERIOD))) +geom_col(position =position_dodge(0.8)) +scale_fill_manual(values =c("2010"="#A6B8CF","2018"="#355C7D" )) +scale_y_continuous(labels =function(x) paste0(x, "%")) +labs(title ="Porcentaje de hogares que viven en condiciones de hacinamiento",subtitle ="Comparación entre los años 2010 y 2018",x ="País",y ="Tasa de hacinamiento",fill ="Año" ) +theme_minimal() +theme(plot.title =element_text(family ="sans",size =12,face ="plain"), axis.text.x =element_text(size =8),axis.text.y =element_text(size =8))```------------------------------------------------------------------------<br>## 5. Acceso a la vivienda en términos financierosObservamos en el gráfico varias fases claramente diferenciadas del ciclo monetario, estrechamente ligadas a la coyuntura macroeconómica europea.Hasta aproximadamente 2005, el tipo de interés muestra una tendencia descendente, coherente con un contexto de estabilidad macroeconómica y baja inflación. Posteriormente, aumenta hasta 2008, en respuesta al fuerte crecimiento económico y a las presiones inflacionistas previas a la crisis financiera.Con el estallido de la crisis financiera global, el BCE reduce los tipos de interés de forma drástica, iniciando un largo periodo de política monetaria ultraexpansiva que se extiende hasta 2022. Este entorno de tipos excepcionalmente bajos favorece el acceso al crédito, impulsa la demanda de vivienda y contribuye al aumento de los precios inmobiliarios en los principales países europeos.A partir de 2022, se produce un cambio de régimen monetario: el fuerte repunte de la inflación obliga al BCE a elevar los tipos de interés de forma rápida hasta 2024. Este endurecimiento de la política monetaria encarece el crédito hipotecario, reduce la demanda solvente de vivienda y frena la actividad del mercado inmobiliario, especialmente en economías con alta dependencia del crédito hipotecario.En conjunto, el gráfico pone de manifiesto que el tipo de interés actúa como una variable clave del ciclo inmobiliario, condicionando tanto la evolución de la demanda como la sostenibilidad del crecimiento de los precios de la vivienda. EN las fases de subida el coste de las hipotecas es más alto (el Euríbor y los tipos suben rápidamente). Las cuotas mensuales se encarecen notablemente y por ello la demanda se reduce. Menos compradores pueden pasar las pruebas de esfuerzo bancarias o asumir la cuota hipotecaria. Por el contrario, cuando baja el tipo el coste de las hipotecas es más bajoy las cuotas mensuales son más asequibles, de modo que aumenta la demanda.CÓMO: Para elaborar este gráfico, descargamos el fichero que contiene los datos del BCE y los importamos. Dado que es por mes, hacemos la media anual y armonizamos los datos para poder comparar de manera adecuada con el resto del trabajo. Después, hacemos un ggplot normal basado en lo explicado en clase.```{r}tabla_tipo_interes <- rio::import("./datos/datos_ECB_tipo_interes.csv")tabla_tipo_interes_2 <- tabla_tipo_interes |>separate(`TIME PERIOD`, into =c("Year", "Month"), sep =4) |>group_by(Year) |>summarise(media_anual_interes =mean(`Cost of borrowing for households for house purchase (MIR.M.U2.B.A2C.AM.R.A.2250.EUR.N)`))ggplot(tabla_tipo_interes_2, aes(x = Year, y = media_anual_interes)) +geom_line(aes(group =1), color ="#36648B", linewidth =0.8) +labs(title ="Tipo de interés hipotecario promedio aplicado por bancos de la zona euro a \n nuevas hipotecas para compra de vivienda", subtitle ="AAR Interes", x ="Año", y ="Tipo de interés", caption ="Fuente: Banco Central Europeo") +scale_x_discrete(breaks =seq(2003, 2025, by =4))```