Análisis Urbanístico Multicriterio del Precio del Alquiler de la Ciudad de Madrid

De MateWiki
Saltar a: navegación, buscar
Trabajo sobre SIG
Título Análisis Urbanístico Multicriterio del Precio del Alquiler de la Ciudad de Madrid
Autores Juan Casteres Cortiñas
Roddyk Arven Inocencio Bahía
Mario González López
Asignatura Sistemas de Información Geográfica Aplicados a la Ingeniería Civil
Curso Curso 25/26
Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura


1 Introducción

El presente estudio documenta una investigación de ciencia de datos espaciales orientada a identificar y cuantificar el peso estadístico de los diferentes factores urbanísticos, demográficos y ambientales que inciden en la fijación de los precios del mercado de alquiler en la ciudad de Madrid. Mediante la aplicación de un Modelo de Precios Hedónicos, se analiza la correlación entre la oscilación del precio de la vivienda y variables espaciales en los 131 barrios del municipio.

Imagen 1: Mapa de situación
Imagen 2: Fotografía de la Ciudad de Madrid

1.1 Contexto y Justificación

El mercado inmobiliario de Madrid ha experimentado fluctuaciones significativas en el periodo comprendido entre 2019 y 2026. Históricamente, el valor del suelo y de los alquileres en la capital se explicaba mediante factores dotacionales clásicos, como la proximidad al centro (M-30) o la cobertura de transporte público. Sin embargo, la irrupción de nuevas dinámicas urbanas ha alterado este modelo tradicional. Este proyecto surge de la necesidad de establecer un diagnóstico objetivo y cuantificable que permita entender si las reglas clásicas de habitabilidad siguen dictando los precios, o si factores contemporáneos ejercen una mayor presión sobre el mercado residencial.

1.2 Objetivos del Estudio

El objetivo principal de esta investigación es determinar qué porcentaje de la variación del precio del alquiler se explica por factores estructurales y qué porcentaje obedece a nuevas presiones del mercado.

Para ello, se establecen los siguientes objetivos específicos:

  • Analizar dinámicas de oferta y demanda: Cruzar la variación porcentual del stock de vivienda con los flujos demográficos (pérdida o ganancia de población) y variación de precio a escala de barrio.
  • Cuantificar el impacto del mercado de corta estancia: Medir la correlación estadística entre la densidad de alojamientos turísticos (Airbnb) y el precio absoluto del alquiler.
  • Evaluar la influencia de las dotaciones urbanas: Medir la revalorización aportada por la conectividad (transporte público) y la proximidad a zonas verdes y otras dotaciones públicas como polideportivos, residencias, etc.
  • Integrar el factor medioambiental: Determinar si la habitabilidad climática, medida a través de la Temperatura de la Superficie Terrestre (LST) y las Islas de Calor Urbanas, supone una prima o una penalización en el precio final.

2 Metodología

El núcleo analítico de esta investigación se basa en la estructuración de un Modelo de Precios Hedónicos. Según el INE (Instituto Nacional de Estadística), este modelo econométrico asume que el precio de un bien inmobiliario no es un valor indivisible, sino la suma matemática de las disposiciones a pagar por cada una de las características que lo componen. Para aislar y cuantificar estos componentes de forma precisa en el entorno urbano de Madrid, las variables independientes se han procesado de forma geoespacial y se han estructurado en tres grandes dimensiones:

1. Influencia Geográfica y Dotacional

Esta dimensión evalúa el valor espacial clásico dictado por la estructura y la morfología de la ciudad. Se centra en cómo la conectividad, la localización y el urbanismo penalizan o añaden primas al valor del alquiler.

  • Centralidad y Fronteras Urbanas: Uso de variables binarias (variables que tán solo pueden adquirir dos valores diferentes) para evaluar el impacto de las barreras estructurales, destacando las autopistas de circunvalación M-30 y M-40 como líneas divisorias históricas de precios entre la Almendra Central y la periferia metropolitana.
  • Accesibilidad y Movilidad: Análisis espacial de conectividad (mediante herramientas de geoproceso y áreas de influencia o buffers en QGIS) para medir la cobertura, distancia y proximidad a la red de transporte público pesado (Metro, Cercanías y Metro Ligero).
  • Dotaciones Públicas: Cuantificación de la proximidad a equipamientos urbanos clave, prestando especial atención a las grandes zonas verdes, evaluando su capacidad tradicional para revalorizar el entorno residencial.

2. Influencia Socioeconómica y de Mercado

Esta dimensión trata de analizar y comparar las principales variables socioeconómicas y de mercado. Se centra tanto en la parte residencial (variación de la población, stock de viviendas, variación del precio) como en la parte turística (viviendas uso turístico, VUT).

  • Variaciones Residenciales: Mediante los datos proporcionados por el Portal de Datos Abiertos del Ayuntamiento de Madrid y plataformas del sector inmobiliario como Idealista, se ha cuantificado la evolución del mercado tradicional. Para evitar sesgos derivados del tamaño de cada barrio, se calcularon tasas de variación porcentual entre 2019 y 2026. Esto nos permite identificar de forma equitativa qué zonas ganan o pierden población, dónde aumenta el stock de vivienda y cómo fluctúan los precios del alquiler.
  • Presión Turística (Efecto Airbnb/VUT): Para medir el impacto del mercado de corta estancia sobre el alquiler tradicional, se extrajeron y espacializaron los datos de viviendas de uso turístico. El análisis se centra en la rentabilidad (precio medio por noche) y la densidad de alojamientos por barrio para evaluar matemáticamente su capacidad de arrastre sobre los precios residenciales.
  • Integración de Datos: Todas estas métricas fueron unidas espacialmente a la cartografía de los 131 barrios. Esta matriz de datos alimenta el modelo de regresión múltiple posterior, cuyo objetivo es confrontar de manera simultánea la demografía, la oferta y el turismo para aislar los verdaderos catalizadores del mercado inmobiliario.

3. Influencia Ambiental y Climática

La tercera dimensión introduce la habitabilidad y el confort medioambiental como un vector emergente de estudio. El análisis busca determinar si el mercado inmobiliario internaliza o ignora el peso de la diferencia climática de los barrios.

  • Teledetección y Temperatura Superficial (LST): Procesamiento de imágenes satelitales (sensores térmicos de Landsat 8/9) para obtener mapas ráster continuos con el grado de irradiación térmica del suelo urbano.
  • Análisis de la Isla de Calor Urbana (UHI): Aplicación de herramientas en QGIS para agregar los valores de los píxeles térmicos y calcular la temperatura media de los polígonos de cada barrio, permitiendo enfrentar la variable climática de forma directa con la oscilación del precio.
  • Nivel de Frecuencia de Limpieza de Calles: Análisis espacial de la intensidad de limpieza viaria a partir de la capa municipal de tramos de calle clasificados por niveles de frecuencia. Posteriormente, se construye un índice ponderado con el fin de obtener un indicador normalizado entre barrios y aproximar el grado de mantenimiento del espacio público y evaluar si la calidad percibida del entorno urbano se refleja en la distribución del precio del alquiler residencial.

A continuación se hará una descripción detallada de la metodología específica de cada una de las tres partes.

2.1 Estudio geográfico y Dotacional

A continuación se detalla la metodología empleada para estudiar las diferentes variables geométricas de la Ciudad de Madrid.

2.1.1 Densidad dotacional

La valoración de los activos residenciales está condicionada significativamente por las externalidades espaciales y la accesibilidad a dotaciones urbanas del entorno. La proximidad a centros de decisión política, nodos culturales y servicios de alta gama genera una renta de situación que se traduce en un incremento del precio del alquiler. Por otro lado, la presencia de infraestructuras críticas de servicio o centros de asistencia social puede generar externalidades negativas que impactan en la percepción del valor residencial del entorno inmediato.

Origen y Captura de Datos

Los datos brutos proceden del Portal de Datos Abiertos del Ayuntamiento de Madrid, que ofrece una lista exhaustiva de los equipamientos y servicios distribuidos en la ciudad de Madrid.

  • Dataset utilizado: capa de "Puntos de interés de la ciudad de Madrid".
  • Naturaleza de los datos: datos puntuales que contienen el nombre y la tipología detallada de cada dotación o servicio.

Clasificación jerárquica

Dado el gran volumen de puntos y tipologías de la capa de puntos de interés en Madrid, se ha realizado una filtración anterior, consistente en una categorización jerárquica de 4 clases y asignándoles un coeficiente de ponderación basado en su impacto socioeconómico estimado:

  • Muy positivo (+3): equipamientos asociados a alta calidad urbana, prestigio, actividad cultural, conectividad estratégica y centralidad, como museos, universidades, parques históricos o instituciones internacionales. Estos elementos suelen localizarse en áreas con elevada demanda residencial y mayores precios de alquiler.
  • Positivo (+2): servicios urbanos que incrementan la habitabilidad y accesibilidad del barrio, como centros sanitarios, transporte público, instalaciones deportivas, bibliotecas o mercados. Su presencia suele contribuir positivamente al valor residencial, aunque con menor intensidad.
  • Neutro (+1): equipamientos de servicio cotidiano o administrativo cuyo efecto sobre el mercado inmobiliario es moderado, como oficinas de atención ciudadana, centros educativos generales o servicios de proximidad.
  • Negativo (-3): usos que, a pesar de ser necesarios para el funcionamiento de la ciudad, están vinculados a vulnerabilidad social, tales como centros de emergencia social, cementerios, tanatorios o determinados equipamientos asistenciales. Estos elementos tienden a correlacionarse con menores niveles de renta y precios de alquiler más bajos.

Este proceso de asignación de pesos en la tabla de atributos se ha realizado mediante un script de Python con la asistencia de la IA, cuyo código se incluye en el Anejo 1: Scripts de Python.

Agregación por barrios

Para trasladar la información puntual a una unidad de análisis territorial, se procedió a la agregación espacial de los coeficientes de ponderación.

  • Herramienta: “Unir atributos por localización (resumen)” en QGIS.
  • Procedimiento: se utilizó la capa de barrios como capa de entrada y la capa de puntos de interés ponderada como capa de comparación. Se seleccionó el predicado geométrico “intersecan”.
  • Cálculo: el software identificó todos los puntos contenidos dentro de los límites de cada barrio y ejecutó la suma de los valores del campo de ponderación. Este proceso permite obtener el peso dotacional total de cada barrio.

Normalización y Obtención del Índice

Para obtener una variable que permitiera la comparación equitativa entre barrios, eliminando el sesgo producido por el diferente tamaño de las unidades territoriales, se realizó una normalización por superficie. El coeficiente de ponderación total obtenido para cada barrio se dividió entre su área en kilómetros cuadrados, obteniendo así la densidad dotacional por barrio.

A continuación, se presenta el mapa de los puntos de interés en la Ciudad de Madrid, y el mapa de la densidad dotacional:

Imagen 3: Mapa de localización de POIs
Imagen 4: Mapa de densidad dotacional

2.1.2 Cobertura de transporte público

El transporte público y su infraestructura son uno de los principales motores de revalorización del suelo, influyendo directamente en los precios del alquiler de las viviendas. Con el objeto de determinar el grado de conexión de los distintos barrios, se ha analizado la cobertura espacial de las estaciones de Metro, Cercanías y Metro Ligero, evaluando su área de influencia sobre el tejido urbano.

Origen y Captura de Datos

Para este análisis se han utilizado las capas vectoriales de la red de transporte ferroviario y la base de datos de ocupación del suelo.

  • Datasets utilizados: capas de estaciones de Metro, Metro Ligero y Cercanías de la Comunidad de Madrid, del Portal de Datos Abiertos del Consorcio Regional de Transportes de Madrid; y la capa de usos de suelo de SIOSE (Sistema de Información sobre Ocupación del Suelo de España) de 2014.
  • Naturaleza de los datos: datos puntuales para las estaciones y datos poligonales para los usos de suelo.
  • Filtro de suelo urbano: con el fin de no distorsionar el análisis con zonas no correspondientes a áreas residenciales (zonas industriales, zonas verdes, descampados, etc.), se filtró la capa SIOSE seleccionando únicamente las clases denominadas "Casco", "Ensanche" y "Discontinua". '

Modelización de Áreas de Influencia mediante buffers

En primer lugar, se generaron áreas de influencia alrededor de cada estación para simular la accesibilidad peatonal, asignando distancias diferenciadas según la relevancia y capacidad de cada modo de transporte:

  • Cercanías: buffer de 800 metros.
  • Metro: buffer de 500 metros.
  • Metro Ligero: buffer de 300 metros.

Posteriormente, estas tres capas se integraron mediante un proceso de "Disolver" en QGIS para obtener una única geometría que represente el área de influencia total del transporte público, evitando solapamientos de superficie.

Procesamiento Espacial en QGIS

El cálculo del indicador requiere identificar qué parte del suelo estrictamente urbano de cada barrio está efectivamente cubierta por la red de transporte.

  • Obtención de suelo urbano por barrio: se realizó la intersección entre la capa de usos de suelo filtrada (SIOSE) y la capa de los 131 barrios de Madrid para obtener la superficie urbana total disponible en cada barrio.
  • Cálculo de la intersección de cobertura: se realizó una segunda intersección entre la capa de buffers de transporte y la capa de suelo urbano por barrio obtenida en el paso anterior.
  • Medición de áreas: mediante la calculadora de campos, se obtuvo el área en metros cuadrados de la intersección resultante para cada barrio.
  • Normalización de datos y fórmula: Finalmente, para obtener un indicador comparable que no dependa de la extensión absoluta del barrio, se calculó el porcentaje de cobertura de transporte sobre el suelo urbano. La fórmula aplicada es la siguiente:

[math] Índice = \frac{A_i}{A_t}\cdot 100 [/math]

Donde:

  • [math]A_i[/math] es la superficie del suelo urbano del barrio que queda dentro de los radios de influencia de las estaciones.
  • [math]A_t[/math] es la superficie total de las clases "Casco", "Ensanche" y "Discontinua" dentro de los límites del barrio.


Este indicador permite discriminar qué barrios cuentan con una infraestructura de transporte plenamente integrada en sus zonas residenciales frente a aquellos donde, a pesar de existir estaciones, estas no dan servicio a la totalidad del área urbana consolidada.

A continuación, se presenta el mapa de cobertura del transporte público, donde se incluye la superficie total de cobertura en la ciudad de Madrid, y el tejido urbano del municipio.

Imagen 5: Mapa de cobertura del transporte público

2.1.3 Influencia de barreras geográficas (M-30 y M-40)

Históricamente, las autopistas de circunvalación de la M-30 y M-40 han actuado como verdaderas barreras geográficas, que no solamente generaron separaciones físicas entre barrios, sino que han influido socialmente y económicamente en la determinación del valor de suelo de los barrios. Se ha integrado dicho factor en el análisis multicriterio,

Origen de Datos

Los datos se han obtenido del Padrón de Madrid, en el que ya se clasifican los barrios y distritos de Madrid según su situación relativa a la M-30 y M-40 en una tabla, distinguiendo:

  • Interior M-30 (Almendra Central)
  • Entre M-30 y M-40 (1.ª periferia)
  • Exterior M-40 (2.ª periferia y PAUs)

Debido a que la clasificación de las situaciones geográficas de los barrios ya es un dato que se posee, no se requiere un procesamiento posterior de datos en el programa QGIS. Por lo tanto, los siguientes pasos están orientados a hacer un mapa que represente visualmente la posición de los barrios con respecto a las autopistas.

Desarrollo en QGIS

  • Trazado de M-30 y M-40: Se han creado dos capas vectoriales de polilíneas, para trazar manualmente el recorrido de la M-30 y la M-40.
  • Conversión de polilíneas: Se ha utilizado la herramienta "Líneas a polígonos" para poligonizar las capas creadas en el anterior paso.
  • Intersección de polígonos: Se ha utilizado la herramienta "Intersección" entre la capa de barrios de Madrid y las capas poligonizadas, para obtener finalmente las tres zonas principales divididas por las barreras geográficas.

A continuación se presenta el mapa de división de barreras geográficas, donde se representa en verde los barrios que pertenecen a la Almendra Central, en amarillo las que se ubican en la zona intermedia entre los dos anillos y en rojo los que se sitúan en el exterior de la M-40.

Imagen 6: Mapa de división de barreras geográficas (M-30 y M-40)

2.2 Estudio Socioeconómico y de Mercado

A continuación se detalla la metodología empleada para estudiar las principales variables socioeconómicas y de mercado, tales como, la presión turística, el stock de viviendas, la variación de la población o la variación del precio medio de las viviendas en los últimos años.


2.2.1 Metodología de Análisis de la Presión Turística

El análisis de la influencia del mercado de viviendas de uso turístico (VUT) se ha integrado en el modelo como una variable de distorsión de precios residenciales. Para ello, se ha generado una base de datos propia mediante el procesamiento de datos masivos de oferta turística. Los pasos empleados para obtener una base de datos capaz de otorgar información de calidad para el estudio ha sido la siguiente:

Origen y Captura de Datos

Los datos brutos fueron obtenidos de la plataforma de datos abiertos Inside Airbnb, un proyecto independiente de análisis de datos que proporciona registros detallados de la actividad de la plataforma en las principales capitales mundiales.

  • Dataset utilizado: Listings.csv para el municipio de Madrid.
  • Naturaleza de los datos: Datos puntuales (geolocalización latitud/longitud) que contienen información sobre el tipo de alojamiento, disponibilidad, precio por noche y ubicación exacta.

Importación y Preparación en QGIS

La integración de los datos en el Sistema de Información Geográfica (QGIS) se realizó siguiendo los siguientes pasos técnicos:

  1. Importación: Los datos se incorporaron como una "Capa de texto delimitado", asignando los campos longitude y latitude a los ejes X e Y respectivamente.
  2. Georreferenciación: Se utilizó inicialmente el sistema de coordenadas WGS 84 (EPSG:4326) y se procedió a una reproyección al sistema local ETRS89 / Madrid TM 30 (EPSG:25830) para garantizar la precisión en los cálculos de distancias y superficies.
  3. Limpieza: Se filtraron los registros en una hoja de cálculo externa para eliminar valores nulos o inconsistentes en el campo de precio.

Cálculo de la Densidad de Airbnb (VUT)

Para cuantificar la intensidad turística de cada barrio, se realizó un análisis de agregación espacial:

  • Herramienta: "Contar puntos en polígono" (Count Points in Polygon).
  • Procedimiento: Se cruzó la capa de puntos de alojamientos con la capa poligonal de los 131 barrios de Madrid.
  • Indicador: El resultado se normalizó dividiendo el número de alojamientos por la superficie del barrio en kilómetros cuadrados, obteniendo así la variable Densidad_Airbnb (Puntos/km²). Este indicador permite comparar barrios de distinto tamaño de forma equitativa.

Cálculo del Precio Medio por Noche

Con el fin de identificar la brecha de renta entre el uso turístico y el residencial, se calculó el valor económico medio de la oferta de Airbnb:

  • Herramienta: "Unir atributos por localización con resumen".
  • Procedimiento: El software identificó todos los puntos de Airbnb contenidos dentro de los límites de cada polígono.
  • Resultado: Se calculó la media aritmética del campo precio de todos los alojamientos capturados por cada polígono, generando la columna precio_medio. Este dato representa el precio medio por noche que un propietario puede obtener en el mercado turístico en ese barrio específico.

A continuación, se muestra el mapa relativo a la densidad de VUT obtenido mediante esta metodología, representando el rojo oscuro una mayor densidad y el rojo claro una menor.

Imagen 7: Mapa de densidad de VUT
Imagen 8: Mapa de localización de VUT

2.2.2 Metodología de Análisis de Stock de Viviendas

El estudio del parque residencial es un factor determinante en el modelo de precios hedónicos, ya que permite evaluar la elasticidad de la oferta frente a la demanda. Esta variable analiza cómo el crecimiento físico de la ciudad (nuevas edificaciones) influye en la estabilización o incremento de los precios del alquiler.

Fuente y Origen de los Datos

La información relativa al número de unidades residenciales se ha obtenido a partir de los registros administrativos de la Dirección General del Catastro y el Portal de Datos Abiertos del Ayuntamiento de Madrid.

  • Dataset: "Indicadores por distritos y barrios: Vivienda y Urbanismo".
  • Unidad de análisis: Número total de viviendas principales y secundarias por polígono de barrio.
  • Periodo temporal: Se han extraído los datos correspondientes a los cortes anuales de 2018 (línea base) y la última actualización disponible proyectada a 2024.

Cálculo de la Variación del Stock

Para medir el crecimiento del parque inmobiliario, se ha procesado la diferencia relativa entre ambos periodos mediante la siguiente fórmula matemática implementada en la calculadora de campos de QGIS:

[math]\text{Var}_{pct} = \frac{\text{Stock}_{2026} - \text{Stock}_{2019}}{\text{Stock}_{2019}} \cdot 100[/math]

Este cálculo genera un valor porcentual que indica el ritmo de construcción de nuevas viviendas en cada uno de los 131 barrios de Madrid.

Procesamiento y Normalización Geográfica

El flujo de trabajo en QGIS para la integración de estos datos consistió en:

  1. Unión de Tablas (Join): Se realizó un Join de tablas alfanuméricas (archivos .csv) a la capa vectorial de barrios utilizando el código unívoco de barrio (CODBAR) como campo de enlace.
  2. Tratamiento de Datos Nulos: Se identificaron barrios con variaciones atípicas o falta de datos (generalmente zonas de uso industrial o parques forestales), procediendo a su exclusión del modelo estadístico para evitar sesgos.
  3. Categorización: Los resultados se clasificaron mediante intervalos naturales (Jenks) para identificar los focos de expansión urbana (como los PAUs de la periferia este y sureste) frente a la saturación constructiva del centro histórico.

Interpretación en el Modelo Hedónico

La variable de variación del stock se introduce en la regresión lineal múltiple con el fin de verificar la hipótesis de la rigidez de la oferta. Un coeficiente negativo indicaría que el aumento del stock ayuda a reducir o frenar el precio del alquiler, mientras que un coeficiente cercano a cero sugeriría que el mercado no es capaz de absorber la subida de precios únicamente mediante la construcción de nueva vivienda.

Imagen 9: Variación porcentual del stock de vivienda

2.2.3 Metodología de Análisis de Variación Poblacional

El análisis de las dinámicas demográficas constituye un pilar fundamental para comprender la presión de la demanda en el mercado inmobiliario. Esta variable cuantifica el crecimiento o vaciamiento poblacional de cada barrio, permitiendo contrastar la teoría clásica de oferta y demanda residencial con fenómenos contemporáneos de sustitución vecinal.

1. Fuente y Origen de los Datos

La información demográfica se ha extraído de los registros oficiales del Padrón Municipal de Habitantes, procesados a través de los paneles de indicadores del Portal de Datos Abiertos del Ayuntamiento de Madrid.

  • Dataset utilizado: Indicadores demográficos por distrito y barrio.
  • Unidad de análisis: Número total de personas empadronadas por polígono de barrio.
  • Horizonte temporal: Se contrastan los datos consolidados del año base (2019) con el último corte proyectado (2026/actualidad) para mantener la coherencia temporal con el resto de variables del modelo.

2. Cálculo de la Variación Poblacional

Para evaluar la evolución demográfica de forma equitativa entre barrios de distinta densidad, no se utilizó el incremento absoluto de personas, sino la tasa de variación relativa. Este cálculo se ejecutó mediante la calculadora de campos de QGIS aplicando la siguiente expresión algebraica:

[math]\text{VAR}_{Pob} = \frac{\text{Población}_{2026} - \text{Población}_{2019}}{\text{Población}_{2019}} \cdot 100[/math]

El resultado genera un valor porcentual continuo, donde los valores positivos reflejan tracción demográfica (atracción y fijación de nuevos residentes, típico de los desarrollos periféricos o PAUs) y los negativos indican un vaciamiento vecinal (pérdida neta de población empadronada).

3. Integración Geográfica y Simbología

La transformación de estos datos estadísticos en información espacial requirió el siguiente flujo de trabajo en QGIS:

  1. Unión Relacional (Join): Las tablas alfanuméricas (.csv) se enlazaron a la geometría de los 131 barrios madrileños utilizando el código identificativo único de cada área.
  2. Representación Analítica: Para su visualización cartográfica, se descartaron métodos de clasificación estándar (como Cuantiles) en favor de una simbología divergente (Jenks). Esto permitió generar un mapa de diagnóstico visual inmediato, donde los tonos fríos aíslan geográficamente a los barrios que pierden vecinos, y los tonos cálidos (verde oscuro) destacan los focos de expansión demográfica.

4. Rol en el Modelo de Precios Hedónicos

Dentro del análisis estadístico multivariable (Modelo de Dinámicas de Mercado), la variable de variación poblacional resulta sumamente interesante para identificar procesos de gentrificación o masificación.

Imagen 10: Variación porcentual de la población

2.2.4 Metodología de Análisis de Variación del Precio del Alquiler

El estudio de la variación del precio de la vivienda en régimen de alquiler constituye el eje central del análisis de las dinámicas de mercado de este proyecto. A diferencia del valor absoluto actual (€/m²), que describe la estructura consolidada de la ciudad, el análisis de la variación porcentual permite identificar la velocidad a la que se encarece la vida en cada barrio, mapeando así la diferencia de precios y los procesos de tensionamiento inmobiliario.

1. Origen y Tratamiento de los Datos

Los datos relativos al mercado inmobiliario residencial se han obtenido a partir de fuentes secundarias especializadas y portales inmobiliarios de referencia (como Idealista), que registran los precios de oferta reales frente a los valores catastrales teóricos.

  • Métrica utilizada: Precio medio del metro cuadrado de alquiler mensual (€/m²).
  • Corte temporal: Se ha establecido un marco comparativo de siete años, tomando como línea base el año pre-pandemia (2019) frente a la proyección de precios de la actualidad (2026).
  • Limpieza de datos: Se han filtrado y excluido polígonos industriales y grandes áreas verdes sin mercado residencial representativo para evitar distorsiones estadísticas en el modelo.

2. Cálculo de la Variación del Precio

Para medir la agresividad de la subida de los alquileres de manera estandarizada, se procedió a calcular la tasa de crecimiento relativo de cada barrio. Mediante la calculadora de campos de QGIS, se aplicó la siguiente formulación matemática:

[math]\text{VAR}_{Prec} = \frac{\text{Precio}_{2026} - \text{Precio}_{2019}}{\text{Precio}_{2019}} \times 100[/math]

Esta variable arroja un porcentaje que homogeniza la lectura de los datos: Por ejemplo, un incremento de 5€/m² representa un impacto mucho mayor en un barrio de la periferia sur que en el Distrito Centro, y esta fórmula pondera matemáticamente dicha realidad socioeconómica.

3. Integración Cartográfica y Simbología

Tras ejecutar la unión espacial (Join) de los valores a la capa vectorial de los 131 barrios de Madrid, se procedió a su representación visual:

  • Se aplicó una rampa de color divergente (de tonos fríos a cálidos).
  • Dado que el mercado inmobiliario madrileño en este periodo presenta un crecimiento casi generalizado, la cartografía resultante resalta en tonos rojos de máxima intensidad aquellos barrios que han experimentado incrementos desproporcionados (por encima de la media de la ciudad), identificando visualmente las zonas de mayor tensión relativa a los precios.

4. Rol en el Modelo Econométrico

En el marco de la regresión lineal múltiple, la variable de variación de precio funciona como la Variable Dependiente (Y) del Modelo de Dinámicas de Mercado. El objetivo analítico ha sido someter este porcentaje de crecimiento al contraste con variables independientes (X) como la variación del stock, la variación poblacional y la presión de la densidad de viviendas de uso turístico (VUT), logrando así aislar matemáticamente los verdaderos catalizadores del mercado.

Imagen 11: Variación porcentual del precio del alquiler

2.3 Estudio de la Influencia Ambiental y Climática

A continuación se procederá a explicar la metodología empleada para el estudio de la influencia ambiental y climática. Cabe destacar, la ayuda obtenida por el profesor Carlos Morillas durante la obtención de los datos e imágenes satelitales respectivos al apartado de Teledetección y Temperatura Superficial (LST)

2.3.1 Teledetección y Temperatura Superficial (LST)

El análisis del impacto ambiental en los precios del alquiler se ha instrumentado a través del estudio de la Temperatura Superficial Terrestre (LST, por sus siglas en inglés). Esta variable permite cartografiar y modelizar el fenómeno de la Isla de Calor Urbana (ICU) y la distribución del confort térmico en el municipio de Madrid.

  • Origen y Naturaleza de los Datos: Los datos térmicos se obtuvieron a partir de teledetección satelital mediante el programa espacial Landsat, con una resolución espacial de píxel de 30 metros. Es un matiz metodológico crítico señalar que el sensor mide la temperatura de la superficie (cubiertas, asfalto, calles, suelo desnudo, vegetación y agua) y no la temperatura del aire. Esta aproximación es idónea para el estudio econométrico espacial, ya que captura directamente las propiedades físicas e infrarrojas de los materiales urbanos, lo que justifica la aparición de valores térmicos más extremos que los reportados por las estaciones meteorológicas convencionales.
  • Criterios de Selección Temporal y Calidad Óptica: Para capturar la estacionalidad del fenómeno, se seleccionaron dos escenas satelitales representativas de los periodos más extremos del año, aplicando criterios estrictos de proximidad temporal y calidad radiométrica:
    • Periodo Estival (Verano): Ante la ausencia de un sobrevuelo útil programado para la fecha objetivo inicial (17 de julio de 2025), se seleccionó la escena del 18 de julio de 2025. Esta decisión metodológica se justificó por ser la imagen cronológicamente más cercana y por presentar el mayor índice de píxeles limpios y útiles sobre el área de estudio.
    • Periodo Invernal (Invierno): Se utilizó la escena correspondiente al 10 de enero de 2026. Se constató la presencia de nubosidad en la escena general, lo que requirió la aplicación de un proceso de enmascaramiento de píxeles (píxeles sin valor o NoData). A pesar de esta limitación por nubosidad, la imagen fue validada para el modelo por ser la de mayor calidad radiométrica disponible para dicho ciclo invernal.
  • Geoprocesamiento y Estadísticas Zonales por Barrio: Las imágenes raster originales de temperatura superficial fueron sometidas a un análisis de estadísticas zonales (Zonal Statistics) cruzándolas con la capa vectorial de los 131 barrios de Madrid. De este proceso se derivaron matrices en formato CSV y archivos Shapefile correlacionados. Aunque el procesamiento automatizado calculó métricas de dispersión como la desviación estándar ([math]t\_sd\_C[/math]), valores mínimos ([math]t\_min\_C[/math]) y máximos ([math]t\_max\_C[/math]), el modelo hedónico global adoptó como variable independiente principal la temperatura superficial media del barrio ([math]t\_mean\_C[/math]). Para el control metodológico y asegurar la trazabilidad del modelo, cada registro integró datos críticos de control de calidad como el porcentaje de píxeles válidos urbanos ([math]valid\_pct[/math]) y la cobertura de nubes global de la escena ([math]cloud\_cov[/math]).

A continuación se muestran las imágenes satelitales de la Comunidad de Madrid con el gradiente de temperatura visualizado en tonos rojizos. Para facilitar la vista de los barrios, se ha solapado el mapa de la Ciudad de Madrid por encima del de la Comunidad. Cabe destacar, que en la Imagen 13, tal y como se ha explicado anteriormente, no es posible analizar todos los píxeles debido a la nubosidad de la fecha seleccionada.

Imagen 12: Imagen temperatura superficial media verano 2025 (Landsat)
Imagen 13: Imagen temperatura superficial media invierno 2026 (Landsat)

2.3.2 Nivel de Frecuencia de Limpieza de Calles

El análisis del nivel de frecuencia de limpieza de calles se ha integrado en el modelo como una variable representativa del mantenimiento del espacio público y de la calidad percibida del entorno urbano. La limpieza viaria puede actuar como un indicador indirecto de intensidad de uso, centralidad, presión peatonal y cuidado municipal del espacio urbano. Para obtener una variable comparable entre barrios, se ha construido un índice ponderado a partir de la longitud de calles asignada a cada nivel de limpieza.

Origen y Captura de Datos

Los datos de limpieza viaria utilizados proceden del Portal de Descarga de Datos del Ayuntamiento de Madrid, en la que se recogen los tramos de calle clasificados según su nivel de frecuencia de limpieza.

  • Dataset utilizado: capa vectorial de niveles de limpieza viaria del municipio de Madrid.
  • Naturaleza de los datos: datos lineales correspondientes a tramos de calle. Cada entidad contiene información relativa al nivel de limpieza asignado, la longitud del tramo y su localización espacial dentro del municipio.
  • Clasificación original: los tramos aparecen clasificados en cuatro niveles de limpieza, del 1 al 4, siendo el nivel 1 el de mayor frecuencia de limpieza y el nivel 4 el de menor frecuencia.

Importación y Preparación en QGIS

La integración de la capa de limpieza viaria en QGIS se realizó mediante la incorporación del archivo vectorial correspondiente, junto con la capa poligonal de barrios de Madrid, obtenida también en el Portal de Descargas de Datos del Ayuntamiento de Madrid.

  • Importación: se cargó en QGIS la capa lineal de limpieza viaria y la capa poligonal de los 131 barrios de Madrid.
  • Sistema de coordenadas: ambas capas se trabajaron en el sistema ETRS89 / UTM zona 30N, EPSG:25830, con el fin de garantizar que los cálculos de longitud se realizaran correctamente en metros.
  • Revisión de atributos: se comprobaron los campos necesarios para el análisis, especialmente el nivel de limpieza y la longitud de cada tramo. También se revisaron posibles valores nulos o inconsistentes en el campo de nivel de limpieza, eliminando aquellos registros que no correspondían a los valores 1, 2, 3 o 4.

Asignación de Tramos de Calle a Barrios

Para obtener el nivel de limpieza de calles por barrio, fue necesario cruzar espacialmente la red viaria con la capa poligonal de barrios.

  • Herramienta: “Intersección” en QGIS.
  • Procedimiento: se utilizó la capa de limpieza viaria como capa de entrada y la capa de barrios como capa de superposición, manteniendo el atributo de nombre de barrio. De esta forma, cada tramo de calle quedó asociado al barrio en el que se localiza.
  • Ventaja metodológica: en aquellos casos en los que una calle atravesaba más de un barrio, la herramienta permitió dividir el tramo original en varios segmentos, asignando cada parte al barrio correspondiente. Esto evita duplicidades y permite calcular correctamente la longitud real de calle dentro de cada barrio.

Tras realizar la intersección, se recalculó la longitud de los nuevos tramos generados mediante la calculadora de campos de QGIS, utilizando la expresión $length

El nuevo campo de longitud representa la longitud efectiva de cada tramo dentro de su barrio correspondiente.

Construcción del Índice de Frecuencia de Limpieza Viaria

Una vez obtenida la capa de calles dividida por barrios, se exportó la tabla de atributos a Excel para realizar la agregación de longitudes por barrio y nivel de limpieza.

Para transformar la clasificación original en un indicador comparable, se asignó una ponderación inversa al número de nivel:

  • Nivel 1: frecuencia muy elevada → ponderación 4
  • Nivel 2: frecuencia elevada → ponderación 3
  • Nivel 3: frecuencia moderada → ponderación 2
  • Nivel 4: frecuencia baja → ponderación 1

Posteriormente, para cada barrio se calculó la longitud total de calles perteneciente a cada nivel de limpieza. A partir de estos valores, se obtuvo un índice ponderado mediante la siguiente fórmula:

[math] Índice = \frac{(L_1 \cdot 4) + (L_2 \cdot 3) + (L_3 \cdot 2) + (L_4 \cdot 1)}{L_1 + L_2 + L_3 + L_4} [/math]

Donde:

  • [math]L_1[/math] representa la longitud de calles con nivel de limpieza 1.
  • [math]L_2[/math] representa la longitud de calles con nivel de limpieza 2.
  • [math]L_3[/math] representa la longitud de calles con nivel de limpieza 3.
  • [math]L_4[/math] representa la longitud de calles con nivel de limpieza 4.

El resultado es un indicador normalizado entre 1 y 4. Los valores más cercanos a 4 indican una mayor intensidad de limpieza viaria, mientras que los valores más próximos a 1 reflejan una menor frecuencia relativa de limpieza. La división entre la longitud total de calles del barrio permite comparar unidades territoriales de distinto tamaño. De este modo, el índice no depende de que un barrio tenga más o menos metros de calle, sino de la distribución relativa de sus tramos según la frecuencia de limpieza.

Este indicador permite incorporar al modelo una dimensión relacionada con el mantenimiento del espacio público y la calidad urbana cotidiana, evaluando si los barrios con mayor intensidad de limpieza presentan también mayores valores en el mercado residencial.

A continuación, se muestra el mapa relativo al índice de frecuencia de limpieza viaria obtenido mediante esta metodología, representando los tonos más intensos una mayor frecuencia ponderada de limpieza y los tonos más claros una menor intensidad relativa.

Imagen 14: Mapa de nivel de frecuencia de limpieza de calles

3 Resultados

A continuación, se presentan los resultados obtenidos, clasificados nuevamente en tres grupos principales (geográfico y dotacional, socioeconómico, e influencia ambiental y climática). Posteriormente, estos datos se analizarán en conjunto para ofrecer una perspectiva integral y establecer las conclusiones globales de la investigación.

Para dotar de rigor al estudio, el geoprocesamiento tradicional se ha complementado con modelos estadísticos de regresión lineal ejecutados en el propio entorno de QGIS. Mediante el desarrollo de scripts automatizados en el lenguaje de programación Python, se ha extraído la información de las capas vectoriales para someterla a análisis estadístico, y de este modo, ser capaces de otorgar pesos y un criterio comparativo común entre todos los campos de estudio. Para ello, se ha procedido en todos los scripts con los siguientes puntos clave:

  • Modelado Matemático: Utilizando librerías científicas (como NumPy), se aplicaron modelos de regresión lineal simple y múltiple. Este método cruza matemáticamente las variables independientes (infraestructuras, clima, presión turística) con la variable dependiente (precio del alquiler) para descubrir sus correlaciones exactas.
  • Extracción de Métricas Clave: Los algoritmos programados calculan de forma automática el Coeficiente de Determinación ([math]R^2[/math]), que indica qué porcentaje de la realidad del mercado logra explicar cada variable urbana, así como los coeficientes exactos (pesos) que determinan si un factor penaliza o impulsa el precio al alza.
  • Automatización y Herramientas: El uso de Python no solo estandariza la creación de los gráficos de dispersión para el análisis, sino que permite integrar todos los datos en un modelo hedónico global. Esto ha culminado en la programación de una calculadora espacial interactiva capaz de tasar el valor teórico de una vivienda basándose en las condiciones geográficas y socioeconómicas de su entorno estudiadas en la presente investigación.

3.1 Estudio Geográfico y Dotacional

A continuación se presentan los resultados relativos al análisis geográfico y dotacional:

3.1.1 Densidad Dotacional

El análisis entre la densidad de Puntos de Interés (POIs) y el valor del alquiler residencial permite evaluar económicamente el concepto de "vitalidad urbana" o la "ciudad de los 15 minutos". El objetivo de este modelo es determinar si el mercado inmobiliario madrileño penaliza factores asociados a la saturación comercial (ruido, congestión) o si, por el contrario, capitaliza fuertemente la proximidad peatonal a los servicios.

Interpretación del Modelo Estadístico A partir del cruce espacial de las variables, la regresión lineal arroja los siguientes resultados clave que definen la estructura de precios:

  • Ecuación de la regresión: [math]y = 0.06x + 17.84[/math]
  • Coeficiente de Determinación ([math]R^2[/math]): 0.473
  • Significatividad (p-valor): 0.0000

1. La Capitalización de los Servicios (Pendiente Positiva) El modelo revela una correlación positiva y directamente proporcional. La pendiente de la recta indica que, estadísticamente, el incremento en la concentración de servicios por kilómetro cuadrado presiona el precio del alquiler al alza. Esto demuestra que en Madrid, la demanda valora positivamente la centralidad y la accesibilidad a los servicios, estando los ciudadanos dispuestos a pagar una prima por residir en entornos mixtos y vibrantes. Según la ordenada en el origen de la ecuación, el precio base de partida para un barrio puramente residencial (sin apenas comercios) se sitúa en los 16 €/m², incrementándose progresivamente a medida que aumenta la dotación.

2. Capacidad Explicativa (Análisis del [math]R^2[/math]) El coeficiente [math]R^2[/math] de 0.473 revela que, por sí sola, la densidad comercial es capaz de explicar alrededor del 47% de la variabilidad del precio del alquiler en el municipio. En el contexto de los estudios urbanos, donde el precio del suelo es un fenómeno multifactorial sumamente complejo, que una variable única alcance este grado de determinación subraya su importancia crítica. Confirma empíricamente que la dotación de servicios no es un factor secundario, sino un pilar estructural en la formación de rentas.

3. Fiabilidad del Modelo El p-valor de 0.0000 confirma que el resultado es estadísticamente muy significativo, garantizando que la relación de encarecimiento vinculada a la dotación comercial no es producto de una distribución aleatoria de los datos.

Conclusión de la Dinámica Urbana La distribución de los barrios en el diagrama de dispersión evidencia la fractura funcional de la ciudad. La aglomeración de puntos en la zona inferior izquierda dibuja la periferia, caracterizada por tejidos predominantemente residenciales y rentas más contenidas. A medida que la gráfica se expande hacia la derecha, se perfilan los barrios de la almendra central, donde la densidad dotacional dispara las rentas. No obstante, la existencia de cierta dispersión vertical indica la presencia de outliers: zonas residenciales de alto valor que, sin requerir una saturación comercial, mantienen precios elevados por otros factores sociales o espaciales, lo cual justifica la integración de esta variable en el modelo hedónico global.

Figura 1: Gráfico relación densidad de POIS vs precio alquiler residencial

3.1.2 Cobertura de Transporte Público

El análisis entre la cobertura de transporte público y el valor del alquiler residencial permite evaluar económicamente el grado de capitalización de la accesibilidad en la ciudad de Madrid. El objetivo de este modelo es determinar cómo la dotación y proximidad a las redes de movilidad (Metro, Cercanías, nodos de autobuses) influye en la formación de las rentas urbanas, cuantificando la disposición de la demanda a pagar por una mayor conectividad.

Interpretación del Modelo Estadístico A partir del cruce espacial de las variables, la regresión lineal arroja los siguientes resultados clave que definen la estructura de precios:

  • Ecuación de la regresión: [math]y = 0.06x + 16.05[/math]
  • Coeficiente de Determinación ([math]R^2[/math]): 0.231
  • Significatividad (p-valor): 0.0000

1. La Capitalización de la Accesibilidad (Pendiente Positiva)

El modelo revela una correlación positiva y directa. La pendiente de la recta indica que el incremento en la cobertura de transporte público empuja el precio del alquiler sistemáticamente al alza. Esto demuestra que, en Madrid, la red de transporte actúa como un fuerte elemento estructural del valor del suelo; los residentes asumen una prima de conectividad para reducir sus tiempos de desplazamiento diarios. Según la ordenada en el origen de la ecuación, el precio base teórico para un barrio con una conectividad nula (aislamiento total) se situaría en torno a los 16 €/m², cifra que escala de forma constante a medida que mejora la infraestructura del entorno.

2. Capacidad Explicativa (Análisis del [math]R^2[/math])

El coeficiente [math]R^2[/math] de 0.231 indica que, por sí sola, la cobertura de transporte público es capaz de explicar cerca del 23% de la variabilidad del precio del alquiler en el municipio. Aunque su peso explicativo individual es inferior al de la vitalidad urbana (densidad de servicios), explicar una quinta parte del precio de la vivienda con una sola infraestructura es un valor sumamente robusto. Esto consolida al transporte como una variable independiente esencial para comprender los contrastes inmobiliarios de la capital.

3. Fiabilidad del Modelo

El p-valor de 0.0000 certifica que el resultado es estadísticamente muy significativo, garantizando que la relación de encarecimiento vinculada a la infraestructura de movilidad no es fruto de una distribución aleatoria, sino un patrón estructural consolidado en el mercado madrileño.

Conclusión de la Dinámica Urbana

La distribución de los barrios en el diagrama de dispersión ilustra la geografía de la conectividad metropolitana. En el extremo izquierdo del gráfico se observa una agrupación de barrios con coberturas más limitadas y rentas contenidas, característicos de los tejidos periféricos de menor densidad o de desarrollos urbanísticos recientes (PAUs) donde la red pesada de transporte aún no se ha desplegado por completo.

A medida que la gráfica avanza hacia la derecha (niveles máximos de cobertura), se perfilan los barrios de la "almendra central" y los grandes nodos intermodales, donde los precios se disparan. No obstante, la importante dispersión vertical en los niveles altos de cobertura (entre el 80 y el 100) señala un matiz fundamental: tener un transporte excelente es una condición necesaria para alcanzar rentas altas, pero no suficiente. A igualdad de transporte, los precios más extremos se alcanzan cuando esta conectividad se suma a otros factores analizados en el modelo global, como la presión turística o la densidad comercial.

Figura 2: Gráfico relación cobertura de transporte público vs precio alquiler residencial

3.1.3 Influencia de Barrerras Geográficas (M-30 y M-40)

El análisis espacial del precio del alquiler en relación con los grandes anillos de circunvalación viaria (M-30 y M-40) permite evaluar la estructura de la renta urbana basada en el concepto centro-periferia. El objetivo de esta categorización es determinar si las grandes infraestructuras viarias actúan únicamente como ejes de movilidad o si, por el contrario, funcionan como fronteras psicológicas y económicas que segmentan drásticamente el mercado inmobiliario madrileño.

Interpretación del Análisis Espacial A partir de la agregación espacial de los barrios en función de su ubicación respecto a los anillos de circunvalación, el gráfico de barras arroja una clara estructura escalonada de los precios medios:

  • Interior M-30 (Almendra Central): Concentra los valores máximos, con un precio promedio significativamente superior al resto de la ciudad (aprox. 25 €/m²).
  • Entre M-30 y M-40 (Primera Periferia): Registra una caída drástica del precio medio, situándose en un escalón intermedio (aprox. 19 €/m²).
  • Exterior M-40 (Segunda Periferia y PAUs): Representa el estrato más económico, con una ligera reducción respecto al anillo intermedio (aprox. 17 €/m²).

1. La M-30 como "Frontera Económica"

El hallazgo más contundente del análisis es la abrupta discontinuidad espacial de precios que genera la M-30. Al cruzar esta autopista hacia el exterior, el valor medio del metro cuadrado sufre un desplome severo. Esto confirma que la M-30 no es solo una vía de tránsito, sino una barrera socioeconómica que delimita el área más valiosa (la almendra central, dotada de la mayor densidad de servicios, transporte e interés turístico) del resto del municipio. La demanda está dispuesta a pagar una enorme prima de centralidad por residir dentro de este primer anillo.

2. La Atenuación del Efecto Periferia

A diferencia del gran salto de precios que ocurre al cruzar la M-30, la diferencia de precios entre el anillo intermedio (M-30 a M-40) y el exterior (fuera de la M-40) es mucho más suave. Esto indica que, una vez superada la frontera de la almendra central, el mercado inmobiliario se vuelve más homogéneo. Los desarrollos situados más allá de la M-40 (frecuentemente los Programas de Actuación Urbanística o PAUs) logran mantener cierta competitividad en precios debido, en parte, a la oferta de vivienda más moderna, mayores superficies y urbanizaciones cerradas, compensando la pérdida de centralidad estricta.

Conclusión de la Dinámica Urbana

La representación por anillos concéntricos demuestra que el mercado de alquiler en Madrid obedece a un modelo clásico de gradiente de renta, donde el valor del suelo decae a medida que aumenta la distancia al centro histórico y de negocios. Sin embargo, este declive no es una pendiente suave y continua, sino que está escalonado por fracturas urbanas creadas por las infraestructuras pesadas. La M-30 actúa como un muro de los precios más altos, encapsulando la presión turística y la escasez de suelo, mientras que los anillos exteriores funcionan como válvulas de escape para la población residente, absorbiendo la demanda a precios más contenidos, aunque cada vez más presionados por el efecto contagio de la almendra central.

Figura 3: Gráfico precio medio del alquiler residencial en función de la distancia a las principales vías de circunvalación.

3.2 Estudio Socioeconómico y de Mercado

El análisis socioeconómico aborda la interacción entre las lógicas del mercado turístico, los movimientos demográficos y la disponibilidad de vivienda. Este bloque es fundamental para comprender si el encarecimiento del alquiler en Madrid responde a un crecimiento orgánico de la ciudad o se pueden encontrar anomalías relacionadas con el aumento del turismo o la masificación.

Nota Metodológica: Evaluación del Ajuste (Lineal vs. Polinómico)

Antes de consolidar los resultados de este bloque, se llevó a cabo un análisis exploratorio para determinar la naturaleza matemática de la relación de los datos previamente obtenidos. Para ello, se evaluó si el comportamiento de los datos respondía mejor a una función lineal simple o a un modelo polinómico de mayor grado.

Aunque los ajustes polinómicos (representados en las curvas de regresión exploratorias) pueden aumentar marginalmente el coeficiente [math]R^2[/math] al perseguir a los datos atípicos (outliers), se determinó que la regresión lineal simple explica el fenómeno subyacente con la suficiente robustez estadística sin caer en el sobreajuste (overfitting). Por tanto, los resultados definitivos presentados a continuación se basan exclusivamente en relaciones lineales, garantizando así un modelo explicativo sólido, generalizable y acorde a la teoría urbana tradicional.

1. El Impacto de la Presión Turística (El "Rent Gap" de Airbnb)

El cruce lineal entre la rentabilidad turística (precio medio por noche en Airbnb) y el precio del alquiler residencial permite evaluar el grado de permeabilidad entre el mercado vacacional y el residencial.

  • Ecuación de la regresión lineal: [math]y = 0.02x + 18.22[/math]
  • Coeficiente de Determinación ([math]R^2[/math]): 0.126
  • Significatividad (p-valor): 0.0000

Interpretación del Mercado Turístico

El modelo revela una correlación positiva. El coeficiente [math]R^2[/math] demuestra que la rentabilidad turística, por sí sola, explica una parte de la variabilidad del precio del alquiler tradicional en la ciudad (aproximadamente el 13%). Esto constata la existencia de una brecha de renta: los propietarios alinean los precios del alquiler de larga estancia con las expectativas de beneficio del mercado de corta estancia. Así, cabe la posibilidad, de que los barrios con mayor concentración de viviendas de uso turístico actúen como ligeros núcleos de aumento de precios, desvinculando el valor de la vivienda de las rentas salariales locales y empujando el mercado hacia una lógica de inversión alcista.

Figura 4: Gráfico relación precio VUT vs precio alquiler

2. Dinámicas de Población, Stock de Vivienda y Variación de Precio

El análisis conjunto (representado en la visualización multidimensional de regresión múltiple) de la variación poblacional, la evolución del stock de vivienda, la densidad de VUT y el incremento del precio del alquiler confronta la teoría clásica de oferta y demanda con la realidad urbana tensionada. Sin embargo, tal y como se puede apreciar, los valores obtenidos tanto de [math]R^2[/math] como de p-valor son estadísticamente malos, por lo que se necesitará más contexto para determinar si son o no relevantes para el módelo (ver apartado 3.4)

Interpretación Demográfica y Residencial

Los resultados visibilizan la complejidad de las dinámicas de gentrificación y expansión en Madrid:

  • El Efecto del Stock: Se observa que el incremento del stock de vivienda (nueva construcción) tiende a concentrarse en los anillos exteriores y áreas de expansión, lo que ayuda a contener parcialmente la escalada de precios en esas zonas, amortiguando la presión de la demanda desplazada.
  • La Reestructuración Vecinal: En el tejido central consolidado, donde el stock es inelástico, el modelo detecta un proceso claro de sustitución: las áreas que experimentan un menor crecimiento relativo de población residente suelen coincidir con fuertes subidas de precios y altas rentabilidades de alquiler. El vaciamiento demográfico no enfría los precios porque sigue habiendo, aunque ligero, un crecimiento del número de residentes, a lo que hay que añadir, que algunas de las viviendas cambian hacia usos turísticos o rotacionales, desplazando a los residentes tradicionales hacia coronas periféricas, lo que a su vez tensiona el mercado en los anillos exteriores.

Conclusión del Modelo Socioeconómico

Las dinámicas analizadas en este bloque demuestran empíricamente que el mercado del alquiler en Madrid se encuentra estructuralmente tensionado por usos no residenciales y crecimiento sistemático de la población. La rentabilidad del mercado turístico (Airbnb), sumado a otros factores mencionados en este estudio, establecen un suelo económico elevado en las áreas centrales, forzando dinámicas de desplazamiento vecinal. Simultáneamente, la capacidad de la periferia para absorber esta demanda desplazada mediante nuevo stock de vivienda amortigua en parte el impacto, aunque no evita el contagio generalizado del alza de precios en toda el área metropolitana.

3.3 Estudio de Influencia Ambiental y Climática

A continuación, se muestran y discuten los datos obtenidos relativos a la influencia ambiental y climática:

3.3.1 Teledetección y Temperatura Superficial (LST)

El análisis de las temperaturas superficiales (extraídas mediante teledetección satelital para los meses de verano e invierno) frente al precio del alquiler permite evaluar la capitalización de las condiciones ambientales en el mercado inmobiliario. Este enfoque busca determinar cómo el fenómeno de la "Isla de Calor Urbana" (ICU) —la acumulación de calor debido a la densificación, el asfalto y la escasez de zonas verdes— interactúa con el valor del suelo en la capital.

1. El Efecto de la Isla de Calor en Verano

El análisis de las temperaturas estivales arroja resultados altamente significativos que revelan una paradoja en la valoración del confort ambiental:

  • Ecuación de la regresión: [math]y = -0.57x + 46.17[/math]
  • Coeficiente de Determinación ([math]R^2[/math]): 0.063
  • Significatividad (p-valor): 0.0041

Interpretación del Modelo Estival

La recta de regresión presenta una pendiente ligeramente negativa y un [math]R^2[/math] cercano al 6%. Esto indica que, estadísticamente, a menor temperatura superficial en verano, mayor es el precio del alquiler.

Evidentemente, la demanda no paga un sobreprecio por sufrir estrés térmico. Lo que este modelo demuestra es que la temperatura estival actúa como un "proxy" (indicador indirecto) de la densidad urbana y la centralidad. Los barrios que retienen más calor en verano son precisamente los de la "almendra central": áreas con altísima compacidad edificatoria, escasa cubierta vegetal, gran sellado del suelo y alta actividad antrópica. Puesto que estos barrios centrales son los más cotizados por su conectividad y dotación, el mercado asume la "penalización climática" de la isla de calor como un mal necesario derivado de vivir en el núcleo económico de la ciudad.

1. El Efecto de la Isla de Calor en Verano

El análisis de las temperaturas estivales frente a las rentas residenciales revela una clara estratificación climática y urbana en la capital:

  • Ecuación de la regresión: [math]y = -0.57x + 46.17[/math]
  • Coeficiente de Determinación ([math]R^2[/math]): 0.063
  • Significatividad (p-valor): 0.0041

Interpretación del Modelo Estival

La recta de regresión presenta una pendiente negativa y un [math]R^2[/math] del 6.3%. Esto indica que, estadísticamente, a menor temperatura superficial en verano, mayor es el precio del alquiler. La significatividad del modelo (p-valor de 0.0041) garantiza que esta relación térmica no es aleatoria, sino un patrón consolidado en la ciudad.

Este hallazgo demuestra que en Madrid, el mercado inmobiliario premia económicamente el confort térmico, el cual actúa como un reflejo directo de la morfología urbana de las zonas de rentas altas. Los barrios más exclusivos de la capital disfrutan de una dotación de infraestructura verde y arbolado maduro superior, elemento que funcionan como potentes sumideros de calor en los meses más extremos.

Por el contrario, los distritos más asequibles suelen concentrarse en el sur y sureste, caracterizados por una densificación histórica, escasez de grandes parques y una altísima proporción de suelo sellado (asfalto y hormigón). Esto evidencia, que el público madrileño premia el estar cerca de zonas verdes, y la mitigación de temperaturas extremas.

Figura 7: Gráfico relación temperatura media de la superficie (verano) vs precio alquiler

2. El Efecto de la Temperatura en Invierno

El cruce del precio con los datos térmicos invernales ofrece un panorama muy similar sobre la estructura del tejido residencial:

  • Ecuación de la regresión: [math]y = -1.03x + 25.43[/math]
  • Coeficiente de Determinación ([math]R^2[/math]): 0.097
  • Significatividad (p-valor): 0.0003

Interpretación del Modelo Invernal

En este caso, la pendiente continua siendo negativa, indicando que los barrios más cálidos en invierno tienden a registrar precios ligeramente inferiores, y viceversa. Aunque la capacidad explicativa de este factor aislado es moderada (explica apenas un 10% de la varianza del precio), el p-valor (0.0003) confirma su validez estadística.

Esta relación puede explicarse por la distribución geográfica de las rentas más altas de Madrid (como el eje de la Castellana o los desarrollos del norte/noroeste), que suelen ubicarse en cotas de mayor altitud o en zonas con mayor apertura espacial y arbolado, lo que propicia temperaturas superficiales ligeramente más frías en los meses de invierno en comparación con los densos distritos del sur y sureste, que adicionalmente, al ser desarrollos más recientes, tienen zonas verdes más jóvenes y menos densas.

Figura 8: Gráfico relación temperatura media de la superficie (invierno) vs precio alquiler

Conclusión de la Dinámica Ambiental y Urbana

El análisis conjunto de las temperaturas superficiales estivales e invernales constata que la mitigación climática funciona en Madrid como un bien posicional que incrementa el precio. Lejos de ser un fenómeno neutro, la Isla de Calor Urbana (ICU) evidencia una profunda segregación espacial: los distritos de mayores rentas registran temperaturas más bajas todo el año gracias a su menor edificabilidad y abundante arbolado, actuando como refugios climáticos. Por el contrario, los tejidos residenciales más asequibles del sur y sureste sufren una severa penalización ambiental debido a su alta compacidad y jóvenes zonas verdes. En definitiva, estos modelos demuestran empíricamente que el confort térmico es un atributo fuertemente ligado al precio de los alquileres madrileños.

3.3.2 Nivel de Frecuencia de Limpieza de Calles

El análisis entre el Índice de Limpieza (basado en la densidad de avisos y gestión de residuos urbanos) y el valor del alquiler residencial permite evaluar cómo influye el mantenimiento del espacio público en la formación de rentas. Este enfoque busca determinar si la degradación visual o la saturación de residuos actúan como un factor devaluador del suelo o si, por el contrario, el mercado prioriza otros factores de localización pese a los posibles puntos negativos que pudiese ofrecer una mala gestión urbana.

Interpretación del Modelo Estadístico

A partir del cruce espacial de las variables en los 131 barrios de Madrid, la regresión lineal arroja los siguientes resultados clave:

  • Ecuación de la regresión: [math]y = 4.05x + 10.00[/math]
  • Coeficiente de Determinación ([math]R^2[/math]): 0.279
  • Significatividad (p-valor): 0.0000

1. Interpretación de la pendiente (Pendiente positiva)

El modelo revela una correlación positiva: a medida que el índice de gestión de residuos aumenta (lo que suele correlacionar con zonas de mayor presión, actividad comercial y avisos), el precio del alquiler tiende a ser más elevado. Esto confirma que, en Madrid, la limpieza actúa como un determinante directo del precio. Aunque los barrios del centro histórico y comercial, que presentan los precios más altos de la ciudad, son los que sufren un mayor desgaste del espacio público y una mayor generación de residuos debido a la población flotante y la actividad turística, tienen un nivel de índice de recogida de basura mayor, lo que proporciona que los espacios públicos estén limpios, y por ende no se vean perjudicados negativamente por la creciente actividad turísitica en el centro de la capital.

2. Capacidad Explicativa (Análisis del [math]R^2[/math])

El coeficiente [math]R^2[/math] de 0.279 indica que el estado de limpieza y gestión de residuos explica aproximadamente el 27.9% de la variabilidad del precio. Aunque es un peso moderado, su significatividad es irrefutable.

3. Fiabilidad del Modelo

El p-valor de 0.0000 certifica que la relación es estadísticamente muy significativa. Esto garantiza que el patrón observado no es producto del azar, sino una característica estructural de la segregación de precios en la capital.

Conclusión de la Dinámica Urbana

La distribución de los barrios en el diagrama de dispersión evidencia una clara distinción entre la "ciudad residencial" y la "ciudad central". En la zona izquierda del gráfico se agrupan los barrios periféricos, con índices de gestión más bajos y entornos más despejados, pero con rentas más contenidas. En contraste, la zona derecha muestra la presión de la almendra central: precios máximos conviviendo con una gestión de residuos mucho más compleja y exigente.

Esta variable cierra el modelo demostrando la importancia de las variables urbanísticas en el precio del alquiler de la Ciudad de Madrid, tal y como se ha apreciado también en apartados anteriores como el de la densidad de POIS o la cobertura de transporte público.

Figura 9: Gráfico relación índice de recogida de basura vs precio alquiler residencial

3.4 El Modelo Hedónico de Precios Global: Síntesis y Conclusiones del Análisis

El epígrafe final del análisis de resultados se articula en torno al Modelo Hedónico de Precios Global. Este marco matemático funciona como la conclusión analítica de la investigación, unificando todas las dimensiones aisladas previamente analizadas (accesibilidad, barreras físicas, variables ambientales y dinámicas socioeconómicas) en una única ecuación predictiva y explicativa.

Fundamento Teórico del Modelo Hedónico

La aplicación de este modelo se fundamenta en la Teoría de los Precios Hedónicos (Rosen, 1974), la cual establece que los bienes heterogéneos —como la vivienda— no poseen un valor fijado de forma monolítica, sino que su precio es la suma de los precios implícitos de cada uno de los atributos que los componen. En el mercado del alquiler de Madrid, un inquilino no paga únicamente por la superficie construida (característica estructural); paga por un "paquete de externalidades" espaciales, ambientales y sociales.

El objetivo de transicionar desde los análisis bivariados previos hacia este modelo global es evitar el sesgo de variable omitida. En la realidad urbana, las variables no actúan de forma aislada: la proximidad al transporte público suele correlacionar con una alta densidad comercial y, a su vez, con una mayor densidad de viviendas de uso turístico. Este modelo multivariable permite limpiar esas interferencias interconectadas, aislando el peso neto y real de cada factor sobre el precio del alquiler mensual (€/m²).

Metodología Estadística del Modelo Global

El modelo global se ha construido mediante una regresión lineal múltiple por Mínimos Cuadrados Ordinarios (OLS) ejecutada a través de los scripts programados en Python. La ecuación matemática general responde a la siguiente estructura:

[math]Y = \beta_0 + \beta_1(Transporte) + \beta_2(M30\_M40) + \beta_3(ICU) + \beta_4(Limpieza) + \beta_5(Airbnb) + \beta_6(Stock) + \dots + \epsilon[/math]

Donde:

  • [math]Y[/math] representa la variable dependiente (Precio del Alquiler en €/m²).
  • [math]\beta_0[/math] es el intercepto o precio base teórico del suelo sin externalidades.
  • [math]\beta_n[/math] representan los coeficientes de regresión parcial (los pesos del modelo).
  • [math]\epsilon[/math] representa el término de error o variabilidad no explicada.

Para garantizar la validez econométrica del modelo global y evitar el problema de la multicolinealidad (que variables independientes se expliquen entre sí distorsionando los resultados), el algoritmo en Python evaluó el Factor de Inflación de la Varianza (VIF). Tras asegurar la independencia de los factores, el modelo normalizó los coeficientes, permitiendo establecer un ranking de importancia relativa: a mayor valor absoluto del coeficiente estandarizado, mayor es el impacto y la sensibilidad de esa variable sobre el precio final. (Anselin, 1988)

Interpretación de los Pesos y Jerarquía de Variables

Los resultados del modelo global ofrecen la lectura más robusta de la investigación, ya que obligan a todas las variables urbanas a competir simultáneamente entre sí. La lectura que se puede obtener del modelo final es la siguiente:

  1. La Capitalización de la Accesibilidad (Transporte, POIS y Barreras): Los coeficientes vinculados a la cobertura de transporte público, la densidad de POIS y la segmentación por anillos viarios (M-30/M-40) retienen un peso estadístico significativo. El modelo global confirma que la accesibilidad estructural sigue siendo un pilar fundamental; cruzar las barreras de circunvalación viaria supone una depreciación paramétrica directa del valor del suelo.
  2. La Importancia de los Factores Ambientales (ICU y Limpieza): Un hallazgo metodológico crítico del modelo global es cómo se reajustan los pesos de las variables climáticas y de mantenimiento del espacio público. Al controlar el modelo con más variables de peso, los coeficientes de la Isla de Calor Urbana (verano e invierno) y del Índice de Limpieza muestran su verdadero peso relativo. Se constata que, aunque el confort térmico (barrios más fríos y arbolados) es un atributo de lujo que cotiza al alza, su capacidad de variar el precio final queda subordinada a otros factores como la centralidad geográfica o la cobertura de servicios. No obstante, se demuestra que este tipo de factores no son despreciables y conviene tenerlos en cuenta a la hora de entender el precio final de los alquileres de la zona.
  3. La Dimensión Socioeconómica como Base : Al introducir todas las variables simultáneamente, la presión turística y la rentabilidad de las viviendas de uso turístico consolidan su posición como un vector alcista importante en el modelo. Aunque este resulta el apartado con menor peso, si que es capaz de demostrar, que factores como la variación del stock de viviendas, reubicación de los vecinos, aumento de la población o la transformación de algunas viviendas en alquileres de corta estancia tienen un peso directo en el cambio del precio del alquiler.

Conclusión General del Bloque de Resultados

El Modelo Hedónico Global aporta mayor solidez científica a la investigación. Al arrojar un Coeficiente de Determinación Ajustado ([math]R^2[/math] corregido) global significativamente superior al de los modelos individuales, se demuestra matemáticamente que el mercado del alquiler en Madrid no puede explicarse mediante el uso de pocas variables.

La formación de los precios en la capital responde a una compleja estructura jerárquica donde la geografía física y funcional (cobertura de transporte público, dotación de servicios y el efecto frontera de las barreras viarias) se erige como el pilar fundamental que vertebra el valor estructural del suelo. Sobre esta base de accesibilidad, los factores ambientales (el confort térmico frente a la Isla de Calor Urbana y la gestión del espacio público) actúan como el segundo gran determinante del precio, confirmando que el confort climático y la calidad del entorno se han convertido en atributos residenciales altamente capitalizados. Finalmente, y con un impacto que le sigue muy de cerca, las dinámicas socioeconómicas y la presión turística operan como el catalizador que termina de tensionar el mercado y segmentar el espacio metropolitano. Este modelo dota al proyecto de una herramienta predictiva real, demostrando empíricamente que la geografía cuantitativa y la econometría espacial son disciplinas indispensables para diagnosticar y comprender las complejas dinámicas de las ciudades contemporáneas.

Imagen 15: Captura del Informe del Análisis Hedónico Espacial
Figura 10: Gráfico de fuerza del impacto estandarizado de las variables determinantes de la variación del precio de alquiler
Figura 11: Gráfico de fuerza del impacto estandarizado de las variables determinantes del precio actual del alquiler

4 Conclusiones

El presente estudio ha demostrado empíricamente que el mercado del alquiler en la ciudad de Madrid constituye un ecosistema altamente complejo que debe explicarse mediante el uso de variables multidisciplinares. La aplicación de Sistemas de Información Geográfica (SIG/QGIS) y modelos de econometría espacial han permitido diseccionar la geografía del precio, tratando de cuantificar de manera matemática cómo interactúan las externalidades urbanas en la fijación de las rentas residenciales.

De la integración del Modelo Hedónico Global se extraen las siguientes conclusiones fundamentales, las cuales dialogan directamente con las principales teorías de la economía urbana y la sociología espacial:

1. El determinismo geográfico y la accesibilidad (El cimiento del valor)

Tal y como demuestra el modelo, la geografía física y funcional constituye el pilar fundamental que vertebra el precio del suelo madrileño. Los resultados confirman las teorías clásicas de la renta de situación espacial, donde la proximidad a los nodos de centralidad y la vitalidad urbana (densidad de POIs) justifican las mayores primas económicas. Asimismo, se constata que infraestructuras como la M-30 o la M-40 actúan como verdaderas fronteras socioeconómicas. Cruzar este primer anillo de circunvalación supone una fractura abrupta en los precios, demostrando que la accesibilidad estructurada en torno a la "almendra central" y la cobertura de transporte público pesado siguen siendo las directrices inamovibles de la tasación inmobiliaria (en consonancia con los postulados de la econometría espacial de Anselin, 1988).

2. El medio ambiente urbano como bien posicional de lujo

Uno de los hallazgos más reveladores de la investigación es la constatación empírica de la importancia de la componente ambiental. Los datos relativos a la Temperatura Superficial Terrestre (LST) demuestran que el mercado inmobiliario internaliza el confort climático. Lejos de ser un factor neutro, la mitigación de la Isla de Calor Urbana (ICU) actúa como un bien posicional que incrementa el precio: los barrios más exclusivos (norte y noroeste) operan como refugios climáticos gracias a su menor edificabilidad y arbolado maduro. Por el contrario, los distritos del sur y sureste asumen una fuerte penalización ambiental (mayor temperatura estival y sellado del suelo). Esto demuestra que la resiliencia climática y la calidad del entorno (medida también a través de la eficacia en la limpieza viaria) son atributos residenciales fuertemente capitalizados por la demanda.

3. La irrupción del mercado turístico y la reestructuración vecinal

Aunque subordinada a la estructura geográfica, la dimensión socioeconómica opera como el catalizador que tensiona actualmente el mercado. El modelo valida matemáticamente la teoría de la "Brecha de Renta" o Rent Gap (Smith, 1979), demostrando que la rentabilidad de las viviendas de uso turístico (VUT) y la continuación del crecimiento poblacional en toda la ciudad, ejercen un efecto de arrastre sobre el alquiler tradicional. Esta presión turística y no reducción de la demanda, imponen lógicas de inversión alcista en los barrios centrales, lo que se traduce en un evidente proceso de reestructuración vecinal (gentrificación): las áreas centrales pierden población residente tradicional, desplazando la demanda hacia coronas periféricas (PAUs) donde el nuevo stock de vivienda amortigua, pero no detiene, la escalada general de precios.

Conclusión Aplicada: Desarrollo de la Calculadora Predictiva Espacial

Como resultado definitivo y transferencia práctica del conocimiento generado en esta investigación, se ha logrado materializar el marco teórico (basado en la Teoría de los Precios Hedónicos de Rosen, 1974) en una herramienta analítica real: una Calculadora Predictiva de Precios programada mediante un script de Python en el entorno de QGIS.

En lugar de depender de estimaciones heurísticas o promedios simples, esta herramienta integra los coeficientes exactos (pesos o [math]\beta_n[/math]) obtenidos en la regresión lineal múltiple para cada una de las tres dimensiones estudiadas (geográfica, ambiental y socioeconómica). De este modo, la calculadora es capaz de tasar el valor teórico del alquiler mensual de una vivienda aplicando el peso estadístico real que el mercado madrileño otorga a la densidad de servicios de ese barrio, a su cobertura de metro, a sus anomalías térmicas y a la densidad de presión turística de su entorno.

La elaboración de este simulador paramétrico no solo valida la solidez predictiva de los datos recabados durante el proyecto, sino que demuestra de forma concluyente la practicidad y utilidad de el presente estudio, permitiendo pasar del mero análisis descriptivo a la modelización predictiva.

En definitiva, si bien este proyecto no pretende predecir el mercado inmobiliario madrileño con absoluta exactitud, dada la imposibilidad de abarcar la totalidad de variables que influyen en el precio final de las rentas, su verdadero valor radica en su capacidad de interpretar las complejas dinámicas de la metrópolis contemporánea desde una perspectiva transversal que integra el urbanismo, la economía, la influencia medioambiental y la modelización matemática.

Imagen 16: Calculadora predictiva espacial del precio de alquiler

5 Referencias

Anselin, L. (1988). Spatial econometrics: methods and models. Kluwer Academic Publishers. (1)

Ayuntamiento de Madrid. (2026). Portal de Datos Abiertos y Geoportal cartográfico. Recuperado de https://datos.madrid.es/ y https://geoportal.madrid.es/ (2)

Banco de España. (2019). El impacto del alquiler turístico en el mercado de la vivienda. Boletín Económico, 3/2019. (3)

Consorcio Regional de Transportes de Madrid [CRTM]. (2026). Datos Abiertos y cartografía de la red de Transporte Público. (4)

Freeman, L. (2006). There goes the 'hood: Views of gentrification from the ground up. Temple University Press. (5)

Idealista. (2026). Informes históricos de evolución del precio de la vivienda en alquiler en la ciudad de Madrid. (6)

Inside Airbnb. (2026). Madrid Dataset: Archivo Listings. Recuperado de http://insideairbnb.com/ (7)

Ley, D. (1986). Alternative explanations for inner-city gentrification: a Canadian assessment. Annals of the Association of American Geographers, 76(4), 521-535. (8)

Ley, D. (1996). The New Middle Class and the Remaking of the Central City. Oxford University Press. (9)

Rosen, S. (1974). Hedonic prices and implicit markets: product differentiation in pure competition. Journal of Political Economy, 82(1), 34-55. (10)

Smith, N. (1979). Toward a Theory of Gentrification: A Back to the City Movement by Capital, not People. Journal of the American Planning Association, 45(4), 538-548. (11)

U.S. Geological Survey [USGS] / NASA. (2026). Landsat 8-9 OLI/TIRS Surface Temperature. Archivo de teledetección espacial EarthExplorer. (12)

---

Detalles y uso de las fuentes:

1. Referencia fundamental para la aplicación de los modelos estadísticos de econometría espacial empleados en el estudio y la interpretación del aislamiento de variables.

2. Fuente primaria oficial de la que se ha extraído toda la cartografía base (límites de los 131 barrios, M-30 y M-40), las bases de datos demográficas (Padrón), variaciones del stock residencial catastral, el nivel de frecuencia de limpieza viaria y el catálogo geolocalizado de Puntos de Interés (POIs).

3. Referencia teórica y macroeconómica utilizada para dar contexto y respaldar los hallazgos sobre el tensionamiento de los precios residenciales derivado de la penetración de plataformas de corta estancia.

4. Base de datos espaciales empleada para extraer las geometrías de las estaciones de Metro, Metro Ligero y Cercanías, permitiendo la generación de las áreas de influencia (buffers) del indicador de cobertura de transporte.

5. Estudio sociológico y estadístico utilizado para matizar las teorías de desplazamiento absoluto, aportando evidencia empírica de que la gentrificación y el encarecimiento del suelo no siempre resultan en la expulsión total de las clases bajas residentes, quienes en ocasiones logran permanecer y beneficiarse de la revitalización del entorno.

6. Proveedor de los datos empíricos de mercado utilizados para establecer la variable dependiente de los modelos: la estimación del precio absoluto (€/m²) y el cálculo de la variación porcentual del coste del alquiler (2019-2026).

7. Repositorio de datos masivos a partir del cual se extrajeron las coordenadas y el precio por noche de las Viviendas de Uso Turístico (VUT) para cuantificar la presión de Airbnb en cada barrio.

8. Artículo académico clave empleado para contrastar las teorías de la oferta (Neil Smith). En este texto se evalúan empíricamente las explicaciones alternativas de la gentrificación, demostrando la importancia de los factores demográficos y los cambios en el mercado laboral frente a la pura especulación del suelo.

9. Obra magna y referencia teórica principal para la "teoría del consumo" o enfoque cultural de la gentrificación. Se utiliza para argumentar cómo la transición hacia una economía postindustrial y la aparición de una "nueva clase media" (con nuevas preferencias estéticas, culturales y residenciales) actúan como el motor principal de la revalorización de los centros urbanos.

10. Referencia teórica fundacional sobre la que se sostiene la metodología del Modelo Hedónico de Precios Global desarrollado en Python, justificando la descomposición del precio de la vivienda en la suma de sus atributos (servicios, transporte, clima, etc.).

11. Soporte teórico clave para interpretar la dinámica demográfica en el modelo socioeconómico, justificando el proceso de "Brecha de Renta" (Rent Gap) y la sustitución vecinal (gentrificación) que expulsa a los vecinos hacia las periferias.

12. Fuente de las imágenes satelitales ópticas y térmicas empleadas en el análisis geoespacial para medir la Temperatura Superficial Terrestre (LST) y cartografiar las dinámicas de la Isla de Calor Urbana (ICU) en verano e invierno.

6 Anejos

A continuación, se presentan los scripts elaborados en el lenguaje de programación Python para llevar a cabo los diferentes mapas, cálculos y gráficos en el entorno de QGIS.

Para no saturar el apartado de anejos, y permitir una buena comprensión de la estructura de programas que han sido utilizados a lo largo del trabajo (aproximadamente un script por cada gráfico generado), se ha decidido incluir los cuatro scripts más representativos, que a su vez, han sido aquellos que han servido como base para realizar todos los demás.

Ejemplo Gráfico y regresión lineal

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import linregress
from qgis.core import NULL

# ==========================================================
# 1. CONFIGURACION NOMBRE DE LAS COLUMNAS
# ==========================================================
col_barrio     = 'NOMBRE'           
col_precio_act = 'Prec_PRECIO_2026'  
col_transporte = 'Rod_Cobertura'  

capa = iface.activeLayer()

Y_act, X_transp, Nombres = [], [], []

# Extraer datos asegurando que no haya NULLs
for f in capa.getFeatures():
    if f[col_precio_act] != NULL and f[col_transporte] != NULL and f[col_barrio] != NULL:
        Y_act.append(float(f[col_precio_act]))
        X_transp.append(float(f[col_transporte]))
        Nombres.append(str(f[col_barrio])) # Guardamos el nombre como texto

Y_act = np.array(Y_act)
X = np.array(X_transp)

# ==========================================================
# 2. CÁLCULOS ESTADÍSTICOS
# ==========================================================
slope, intercept, r_value, p_value, std_err = linregress(X, Y_act)
r2 = r_value**2

# ==========================================================
# 3. GRÁFICO CON CAJA DE ESTADÍSTICAS E INTERACCIÓN
# ==========================================================
fig, ax = plt.subplots(figsize=(9, 6))
fig.suptitle('Impacto del Transporte Público en el Precio del Alquiler', 
             fontsize=14, fontweight='bold')

props_caja = dict(boxstyle='round,pad=0.5', facecolor='white', alpha=0.9, edgecolor='gray')

# Dibujar puntos guardando la variable "sc" (scatter) para la interactividad
sc = ax.scatter(X, Y_act, alpha=0.6, color='#27ae60', edgecolor='black') 
ax.plot(X, slope*X + intercept, color='black', linewidth=2)

# Texto de estadísticas
texto_stats = (f"Ecuación: y = {slope:.2f}x + {intercept:.2f}\n"
               f"$R^2$: {r2:.3f}\n"
               f"p-valor: {p_value:.4f}")

ax.text(0.05, 0.95, texto_stats, transform=ax.transAxes, fontsize=11,
         verticalalignment='top', horizontalalignment='left', bbox=props_caja)

ax.set_title('Cobertura de Transporte vs Precio (2026)', fontweight='bold')
ax.set_xlabel('Cobertura de Transporte Público', fontweight='bold')
ax.set_ylabel('Precio Actual del Alquiler (€/m²)', fontweight='bold', color='#2c3e50')
ax.grid(True, linestyle='--', alpha=0.5)

# ==========================================================
# 4. PROGRAMACIÓN DEL RATÓN
# ==========================================================
# Creamos la etiqueta de anotación vacía e invisible
annot = ax.annotate("", xy=(0,0), xytext=(10,10), textcoords="offset points",
                    bbox=dict(boxstyle="round,pad=0.4", fc="yellow", alpha=0.8),
                    arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=0"))
annot.set_visible(False)

# Función que actualiza el texto y posición de la etiqueta
def update_annot(ind):
    pos = sc.get_offsets()[ind["ind"][0]]
    annot.xy = pos
    
    # Recoger los nombres de los puntos superpuestos (por si hay varios muy juntos)
    text = ", ".join([Nombres[n] for n in ind["ind"]])
    annot.set_text(text)
    annot.get_bbox_patch().set_alpha(0.9)

# Función que detecta el movimiento del ratón
def hover(event):
    vis = annot.get_visible()
    if event.inaxes == ax:
        cont, ind = sc.contains(event)
        if cont:
            update_annot(ind)
            annot.set_visible(True)
            fig.canvas.draw_idle()
        else:
            if vis:
                annot.set_visible(False)
                fig.canvas.draw_idle()

# Conectar el evento de movimiento del ratón a nuestra gráfica
fig.canvas.mpl_connect("motion_notify_event", hover)

plt.tight_layout()
plt.show()

Modelo Hedónico de Precios

import numpy as np
import matplotlib.pyplot as plt
from qgis.core import NULL
from qgis.PyQt.QtWidgets import QDialog, QVBoxLayout, QTextEdit, QPushButton

# ==========================================================
# 1. CONFIGURACIÓN DE LOS DOS MODELOS CON LAS VARIABLES
# ==========================================================

# MODELO 1: DETERMINANTES DEL VALOR ACTUAL
y1_col = 'Prec_PRECIO_2026'
x1_cols = [
    ('Rod_Cobertura', 'Cobertura Transporte'),
    ('POIS_Indicador', 'Densidad POIs (Servicios)'),
    ('Indice_field_12', 'Índice de Basura'),
    ('t_mean_C', 'Isla de Calor (Verano)'),
    ('invierno_t_mean_C', 'Isla de Calor (Invierno)'),
    ('Airbnb_precio_n_1', 'Precio Noche Airbnb'),
    ('Airbnb_densidad', 'Presión Turística (Densidad)') # <-- Ahora evalúa el Precio Actual
]

# MODELO 2: ACELERADORES DEL PRECIO
y2_col = 'Prec_VAR_PRECIO_PCT'  
x2_cols = [
    ('Var_Pob', 'Variación Población'),
    ('Stock_VAR_STOCK_19_24_PCT', 'Variación Stock Vivienda')
    # Presión Turística eliminada de este modelo
]

capa = iface.activeLayer()

# Iniciamos el texto HTML explicativo
texto_resultados = """
<h1 style='color: #2c3e50; text-align: center;'>Informe del Análisis Hedónico Espacial</h1>
<p style='font-size: 14px; text-align: center;'><i>Resumen estadístico de las dinámicas de mercado en Madrid</i></p>
<hr>
"""

def ejecutar_modelo(y_nombre, lista_x, titulo_grafico):
    global texto_resultados
    nombres_x = [item[1] for item in lista_x]
    cols_x = [item[0] for item in lista_x]
    
    data_y, data_x = [], []
    
    # ------------------------------------------------------
    # A. Extracción y Limpieza
    # ------------------------------------------------------
    for f in capa.getFeatures():
        if f[y_nombre] == NULL or any(f[c] == NULL for c in cols_x):
            continue
        try:
            val_y = float(str(f[y_nombre]).replace(',', '.'))
            vals_x = [float(str(f[c]).replace(',', '.')) for c in cols_x]
            data_y.append(val_y)
            data_x.append(vals_x)
        except ValueError:
            continue
            
    if not data_y: return
    
    Y = np.array(data_y)
    X = np.array(data_x)
    
    # ------------------------------------------------------
    # B. Estandarización y Regresión Global
    # ------------------------------------------------------
    Y_norm = (Y - np.mean(Y)) / np.std(Y)
    X_norm = (X - np.mean(X, axis=0)) / np.std(X, axis=0)
    X_norm_int = np.column_stack((np.ones(len(Y_norm)), X_norm))
    
    coefs, _, _, _ = np.linalg.lstsq(X_norm_int, Y_norm, rcond=None)
    y_pred = X_norm_int.dot(coefs)
    ss_tot = np.sum((Y_norm - np.mean(Y_norm))**2)
    r2_global = 1 - (np.sum((Y_norm - y_pred)**2) / ss_tot)
    pesos = coefs[1:]
    
    # ------------------------------------------------------
    # C. Cálculo de Aportación Única (Drop-in R²)
    # ------------------------------------------------------
    aportaciones = []
    for i in range(len(cols_x)):
        X_reduced = np.delete(X_norm_int, i+1, axis=1)
        c_red, _, _, _ = np.linalg.lstsq(X_reduced, Y_norm, rcond=None)
        y_pred_red = X_reduced.dot(c_red)
        r2_red = 1 - (np.sum((Y_norm - y_pred_red)**2) / ss_tot)
        
        caida_r2 = max(0, r2_global - r2_red)
        aportaciones.append(caida_r2)

    # ------------------------------------------------------
    # D. GUARDAR EN EL TEXTO PARA LA VENTANA (Formato Explicativo)
    # ------------------------------------------------------
    texto_resultados += f"<h2 style='color: #2980b9;'>{titulo_grafico}</h2>"
    texto_resultados += "<h3 style='color: #34495e;'>Desglose del impacto por variable:</h3>"
    texto_resultados += "<ul style='font-size: 14px; line-height: 1.6;'>"
    
    for i in range(len(nombres_x)):
        direccion = "impulsa al alza" if pesos[i] > 0 else "presiona a la baja"
        color_dir = "green" if pesos[i] > 0 else "red"
        
        texto_resultados += f"<li><b>{nombres_x[i]}</b>: Esta variable <span style='color: {color_dir}; font-weight: bold;'>{direccion}</span> el mercado (Fuerza Beta: {pesos[i]:+.3f}). Si la elimináramos del análisis, perderíamos un <b>{aportaciones[i]*100:.2f}%</b> de nuestra capacidad para explicar los precios.</li>"
        
    texto_resultados += "</ul><hr>"

    # ------------------------------------------------------
    # E. Generación del Gráfico
    # ------------------------------------------------------
    fig, ax = plt.subplots(figsize=(11, 7), layout='constrained')
    colores = ['#e74c3c' if p > 0 else '#2ecc71' for p in pesos]
    bars = ax.barh(nombres_x, pesos, color=colores, edgecolor='black', alpha=0.8)
    
    max_abs_val = max(abs(min(pesos)), abs(max(pesos)))
    ax.set_xlim(-max_abs_val * 1.2, max_abs_val * 1.2)
    
    for bar in bars:
        w = bar.get_width()
        desplazamiento = max_abs_val * 0.02
        ax.text(w + (desplazamiento if w > 0 else -desplazamiento), bar.get_y() + bar.get_height()/2, 
                f'{w:+.3f}', va='center', ha='left' if w > 0 else 'right', fontweight='bold')
    
    ax.axvline(0, color='black', linewidth=1)
    ax.set_title(f'{titulo_grafico}\n(R² = {r2_global:.3f}


Calculadora Predictiva de Precios

import numpy as np
from qgis.core import NULL
from qgis.PyQt.QtWidgets import QDialog, QVBoxLayout, QFormLayout, QDoubleSpinBox, QLabel, QFrame, QSlider, QHBoxLayout
from qgis.PyQt.QtCore import Qt

# ==========================================================
# 1. CONFIGURACIÓN DEL MODELO DE PRECIO (El de Valor Actual)
# ==========================================================
y_col = 'Prec_PRECIO_2026'
x_cols = [
    ('Rod_Cobertura', 'Cobertura Transporte (%)'),
    ('POIS_Indicador', 'Densidad de Servicios (POIs)'),
    ('Indice_field_12', 'Índice de Basura'),
    ('t_mean_C', 'Isla de Calor Verano (ºC)'),
    ('invierno_t_mean_C', 'Isla de Calor Invierno (ºC)'),
    ('Airbnb_precio_n_1', 'Precio Noche Airbnb (€)'),
    ('Airbnb_densidad', 'Presión Turística (Densidad)') # <-- Variable añadida aquí
]

capa = iface.activeLayer()
data_y, data_x = [], []
cols_x = [item[0] for item in x_cols]
nombres_x = [item[1] for item in x_cols]

# ==========================================================
# 2. EXTRACCIÓN DE DATOS Y ENTRENAMIENTO "REAL" (NO ESTANDARIZADO)
# ==========================================================
for f in capa.getFeatures():
    if f[y_col] == NULL or any(f[c] == NULL for c in cols_x):
        continue
    try:
        val_y = float(str(f[y_col]).replace(',', '.'))
        vals_x = [float(str(f[c]).replace(',', '.')) for c in cols_x]
        data_y.append(val_y)
        data_x.append(vals_x)
    except ValueError:
        continue

Y = np.array(data_y)
X = np.array(data_x)

# Calculamos medias, mínimos y máximos para configurar la calculadora
X_means = np.mean(X, axis=0)
X_mins = np.min(X, axis=0)
X_maxs = np.max(X, axis=0)

# Regresión Múltiple en bruto (para obtener € reales)
X_int = np.column_stack((np.ones(len(Y)), X))
coefs, _, _, _ = np.linalg.lstsq(X_int, Y, rcond=None)

intercepto = coefs[0]
pesos_reales = coefs[1:]

# ==========================================================
# 3. CONSTRUCCIÓN DE LA INTERFAZ GRÁFICA (CALCULADORA)
# ==========================================================
class CalculadoraPrecios(QDialog):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Tasador Inmobiliario - Madrid 2026")
        self.resize(500, 550) # Aumentamos un poco el alto para que quepa bien el nuevo campo
        self.setStyleSheet("background-color: #f4f6f7; font-size: 11pt;")
        
        layout_principal = QVBoxLayout()
        
        # Título
        lbl_titulo = QLabel("<b>Simulador de Alquiler por Barrio</b>")
        lbl_titulo.setAlignment(Qt.AlignCenter)
        lbl_titulo.setStyleSheet("font-size: 14pt; color: #2c3e50; margin-bottom: 10px;")
        layout_principal.addWidget(lbl_titulo)
        
        # Formulario para los inputs del modelo
        self.form_layout = QFormLayout()
        self.spinboxes = []
        
        for i in range(len(nombres_x)):
            spinbox = QDoubleSpinBox()
            spinbox.setRange(X_mins[i] - 10, X_maxs[i] + 10) 
            spinbox.setDecimals(2)
            spinbox.setSingleStep( (X_maxs[i] - X_mins[i]) / 100 ) 
            spinbox.setValue(X_means[i]) 
            spinbox.setStyleSheet("background-color: white; padding: 3px;")
            
            spinbox.valueChanged.connect(self.actualizar_precio)
            
            self.spinboxes.append(spinbox)
            self.form_layout.addRow(f"{nombres_x[i]}:", spinbox)
            
        layout_principal.addLayout(self.form_layout)
        
        # Línea separadora
        linea1 = QFrame()
        linea1.setFrameShape(QFrame.HLine)
        linea1.setFrameShadow(QFrame.Sunken)
        layout_principal.addWidget(linea1)
        
        # === BARRA DE METROS CUADRADOS ===
        layout_m2 = QVBoxLayout()
        self.lbl_m2 = QLabel("<b>Superficie del piso: 80 m²</b>")
        self.lbl_m2.setAlignment(Qt.AlignCenter)
        self.lbl_m2.setStyleSheet("color: #2980b9; font-size: 12pt;")
        layout_m2.addWidget(self.lbl_m2)
        
        self.slider_m2 = QSlider(Qt.Horizontal)
        self.slider_m2.setRange(20, 300) # De 20 a 300 metros cuadrados
        self.slider_m2.setValue(80)      # Empieza en 80m2 por defecto
        self.slider_m2.setTickPosition(QSlider.TicksBelow)
        self.slider_m2.setTickInterval(10)
        self.slider_m2.valueChanged.connect(self.actualizar_precio)
        layout_m2.addWidget(self.slider_m2)
        
        layout_principal.addLayout(layout_m2)
        
        # Línea separadora
        linea2 = QFrame()
        linea2.setFrameShape(QFrame.HLine)
        linea2.setFrameShadow(QFrame.Sunken)
        layout_principal.addWidget(linea2)
        
        # Etiqueta del Precio Final (Muestra ambos: €/m2 y Total)
        self.lbl_resultado = QLabel("Calculando...")
        self.lbl_resultado.setAlignment(Qt.AlignCenter)
        self.lbl_resultado.setStyleSheet("font-size: 13pt; color: #34495e; padding: 15px; background-color: #fdebd0; border-radius: 8px;")
        layout_principal.addWidget(self.lbl_resultado)
        
        self.setLayout(layout_principal)
        
        # Calcular el valor inicial nada más abrir
        self.actualizar_precio()

    def actualizar_precio(self):
        # 1. Calcular el precio por metro cuadrado según el modelo
        precio_estimado_m2 = intercepto
        for i in range(len(self.spinboxes)):
            valor_usuario = self.spinboxes[i].value()
            precio_estimado_m2 += valor_usuario * pesos_reales[i]
            
        precio_estimado_m2 = max(0, precio_estimado_m2) # Evitar precios negativos
        
        # 2. Leer los metros cuadrados de la barra
        metros_cuadrados = self.slider_m2.value()
        self.lbl_m2.setText(f"<b>Superficie del piso: {metros_cuadrados} m²</b>")
        
        # 3. Calcular el precio total
        precio_total = precio_estimado_m2 * metros_cuadrados
        
        # 4. Actualizar el texto en pantalla (formateado con separador de miles)
        texto_final = (
            f"Valor de la zona: <b>{precio_estimado_m2:.2f} €/m²</b><br><br>"
            f"<span style='font-size: 18pt; font-weight: bold; color: #e74c3c;'>"
            f"ALQUILER TOTAL: {precio_total:,.0f} €/mes</span>"
        )
        self.lbl_resultado.setText(texto_final.replace(',', '.')) # Formato europeo para los miles

# Ejecutar la Calculadora
calc = CalculadoraPrecios()
calc.exec_()


6.1 Clasificación jerárquica de dotaciones

from qgis.core import *

from qgis.utils import iface

capa = iface.activeLayer()

campo_tipo = 'CAT_TIPO' 

campo_peso = 'peso_inmo'

pesos = {
    3: [
        'GALERÍAS DE ARTE', 'COLEGIOS PRIVADOS CONCERTADOS', 'OTROS ORGANISMOS INTERNACIONALES',
        'ADMINISTRACIÓN CENTRAL', 'SALAS DE EXPOSICIONES', 'BIBLIOTECAS ESPECIALIZADAS',
        'CONSEJERÍAS ASAMBLEA PRESIDENCIA CAM', 'AUDITORIOS Y SALAS DE CONCIERTO',
        'MONUMENTOS EDIFICIOS ARTÍSTICOS', 'UNION EUROPEA', 'BIBLIOTECAS PATRIMONIALES',
        'CAMPOS GOLF', 'CONSORCIOS', 'FUNDACIONES CULTURALES', 'MUSEOS', 'LIBRERÍAS',
        'TEATROS', 'CENTROS ALTO RENDIMIENTO DEPORTIVO', 'OTROS CENTROS UNIVERSITARIOS',
        'EMBAJADAS Y CONSULADOS', 'FACULTADES', 'SALAS DE CONGRESOS', 'COLECCIONES BOTÁNICAS',
        'PARQUES HISTÓRICOS', 'REALES ACADEMIAS', 'SALAS DE SUBASTAS', 'HIPÓDROMOS'
    ],
    2: [
        'AEROPUERTOS Y AERÓDROMOS', 'ENTIDADES COLABORADORAS LICENCIAS DE ACTIVIDAD ECLUS',
        'APARCAMIENTOS RESIDENTES', 'CÁMARAS COMERCIO', 'GALERÍAS COMERCIALES',
        'ESCUELAS UNIVERSITARIAS', 'CINES Y FILMOTECAS', 'HOSPITALES CLÍNICAS SANATORIOS',
        'ESCUELAS INFANTILES PRIVADAS GUARDERÍAS', 'CONSERVATORIOS ESCUELAS MÚSICA Y DANZA',
        'ESTACIONES TREN', 'INTERCAMBIADORES TRANSPORTE', 'MERCADOS', 'RECINTOS FERIALES'
    ],
    1: [
        'OFICINAS AGENCIA TRIBUTARIA ESTATAL', 'OFICINAS DE INFORMACIÓN DE LA SEGURIDAD SOCIAL',
        'AGENCIAS ORGANISMOS Y EMPRESAS', 'ORGANISMOS EMPRESAS MUNICIPALES',
        'GOBIERNO MUNICIPAL ALCALDE JUNTA GOBIERNO', 'ARCHIVOS CENTROS DOCUMENTACION',
        'ENTIDADES RELIGIOSAS', 'ASOCIACIONES CULTURALES Y CASAS REGIONALES', 'JUZGADOS',
        'AUDIENCIAS TRIBUNALES', 'CENTROS CULTURALES', 'SALAS DE ESTUDIO Y LECTURA',
        'TEMPLOS IGLESIAS CATÓLICAS', 'BIBLIOMETRO Y BIBLIORED', 'BIBLIOTECAS PÚBLICAS',
        'PARQUES Y JARDINES', 'ALQUILER TALLERES Y BICICLETAS', 'ESCUELAS INFANTILES PÚBLICAS',
        'COLEGIOS PÚBLICOS', 'GIMNASIOS', 'PISCINAS', 'CAMPOS ESTADIOS FUTBOL',
        'INSTITUTOS ENSEÑANZA SECUNDARIA', 'COMISARIAS OFICINAS DE POLICÍA',
        'OFICINAS DNI Y PASAPORTE', 'AYUNTAMIENTO DE MADRID', 'ESTACIONES AUTOBÚS',
        'VIVEROS EMPRESAS', 'INSTALACIONES DEPORTIVAS BÁSICAS', 'OFICINAS DE CORREOS',
        'ZOOS Y ACUARIOS', 'PLANETARIOS', 'CLÍNICAS CENTROS VETERINARIOS', 'CANCHAS BALONCESTO'
    ],
    -3: [
        'ALBERGUES SOCIALES Y CENTROS DE ACOGIDA', 'CENTROS DE DÍA PERSONAS CON DISCAPACIDAD',
        'CENTROS OCUPACIONALES PERSONAS CON DISCAPACIDAD', 'CENTROS ATENCIÓN SOCIAL A PERSONAS CON DISCAPACIDAD',
        'ASOCIACIONES ACCIÓN SOCIAL', 'ASOCIACIONES INMIGRANTES', 'ASOCIACIONES COOPERACIÓN Y DESARROLLO',
        'CEMENTERIOS', 'CENTROS ASISTENCIA DROGODEPENDIENTES', 'CENTROS ATENCIÓN SOCIAL INTEGRACIÓN DE INMIGRANTES',
        'COMEDORES SOCIALES', 'SERVICIOS GRUA', 'TANATORIOS', 'DEPURADORAS TRATAMIENTO RESIDUOS',
        'PUNTOS LIMPIOS FIJOS', 'PUNTOS LIMPIOS MÓVILES', 'FUNERARIAS', 'CENTROS SALUD MENTAL',
        'CENTROS DE REHABILITACIÓN PSICOSOCIAL'
    ]
}

pr = capa.dataProvider()
if capa.fields().indexFromName(campo_peso) == -1:
    pr.addAttributes([QgsField(campo_peso, QVariant.Int)])
    capa.updateFields()

idx_tipo = capa.fields().indexFromName(campo_tipo)
idx_peso = capa.fields().indexFromName(campo_peso)

capa.startEditing()
for feature in capa.getFeatures():
    valor_texto = str(feature[idx_tipo]).upper().strip()
    peso_asignado = 0 # Neutro por defecto
    
    for peso, lista in pesos.items():
        if valor_texto in lista:
            peso_asignado = peso
            break
            
    capa.changeAttributeValue(feature.id(), idx_peso, peso_asignado)

capa.commitChanges()
print("Proceso de pesaje inmobiliario finalizado.")