1. Carga de datos:

Antes de proceder con el análisis, es fundamental contar con los conjuntos de datos ya depurados. Para evitar repetir el proceso de limpieza, hemos guardado las versiones finales de las bases de datos en archivos .Rds.

Las bases limpias se guardaron utilizando los siguientes comandos:

saveRDS(Valencia_Sale, file = "base_2018_limpia.Rds")
saveRDS(Valencia_Sale_2025, file = "base_2025_limpia.Rds")

Una vez guardadas, podemos cargarlas fácilmente en el entorno mediante:

Valencia_2018 <- readRDS("base_2018_limpia.Rds")
Valencia_2025 <- readRDS("base_2025_limpia.Rds")

Así, podremos proceder con los datos previamente depurados, lo que garantiza mayor coherencia y eficiencia en el análisis.

2. Librerías:

Además, será necesario cargar ciertas librerías que nos permitirán realizar y visualizar los modelos de regresión lineal y los gráficos de correlaciones que vamos a utilizar. Estas son:

3. Selección de variables:

Ahora que ya contamos con las bases de datos limpias y las librerías necesarias, el siguiente paso consiste en seleccionar las variables comunes de ambas bases de datos para poder comparar su influencia en un año respecto a otro. Además, transformaremos la variable precio a su logaritmo para así reducir la variabilidad y permitir un análisis menos segado. También nos permitirá interpretar los coeficientes como cambios porcentuales en la regresión, y capturar relaciones no lineales:

  1. Para 2018
modelo_vars <- c(
  "PRICE","CONSTRUCTEDAREA","ROOMNUMBER","BATHNUMBER","HASLIFT", "BUILTTYPEID_1",
  "BUILTTYPEID_2","BUILTTYPEID_3","DISTANCE_TO_CITY_CENTER","DISTANCE_TO_METRO",
  "RHabitacion_Banyo"
)

Valencia_modelo_2018 <- Valencia_2018[,modelo_vars]
Valencia_modelo_2018$Precio_m2 <- Valencia_2018$Precio_m2
Valencia_modelo_2018$geometry <- NULL

Valencia_modelo_2018 <- Valencia_modelo_2018 %>%
  mutate(
    BUILTTYPEID = case_when(
      BUILTTYPEID_1 == 1 ~ 1,
      BUILTTYPEID_2 == 1 ~ 2,
      BUILTTYPEID_3 == 1 ~ 3,
      TRUE ~ NA_real_  # por si hubiera algún caso inesperado
    ),
    BUILTTYPEID = factor(BUILTTYPEID)
  )

Valencia_modelo_2018$BUILTTYPEID_1 <- NULL
Valencia_modelo_2018$BUILTTYPEID_2 <- NULL
Valencia_modelo_2018$BUILTTYPEID_3 <- NULL

Valencia_modelo_2018$LOGPRICE = log(Valencia_2018$PRICE)
Valencia_modelo_2018$PRICE <- NULL

Además, como en 2018 no hay distritos, será necesario crearlos nosotros:

# Diccionario de mapeo de barrios a distritos
barrio_distrito <- c(
  # --- Ciutat Vella ---
  "LA SEU" = "Ciutat Vella", "LA XEREA" = "Ciutat Vella", "EL CARME" = "Ciutat Vella",
  "EL MERCAT" = "Ciutat Vella", "EL PILAR" = "Ciutat Vella", "SANT FRANCESC" = "Ciutat Vella",
  
  # --- L'Eixample ---
  "RUSSAFA" = "L'Eixample", "LA GRAN VIA" = "L'Eixample", "EL PLA DEL REMEI" = "L'Eixample",
  
  # --- Extramurs ---
  "EL BOTANIC" = "Extramurs", "LA ROQUETA" = "Extramurs", "LA PETXINA" = "Extramurs", "ARRANCAPINS" = "Extramurs",
  
  # --- Campanar ---
  "CAMPANAR" = "Campanar", "SANT PAU" = "Campanar", "LES TENDETES" = "Campanar",
  
  # --- La Saïdia ---
  "EL CALVARI" = "La Saïdia", "MARXALENES" = "La Saïdia", "MORVEDRE" = "La Saïdia", 
  "TRINITAT" = "La Saïdia", "ELS ORRIOLS" = "La Saïdia", "TORMOS" = "La Saïdia",
  
  # --- El Pla del Real ---
  "EXPOSICIO" = "El Pla del Real", "MESTALLA" = "El Pla del Real", 
  "JAUME ROIG" = "El Pla del Real", "CIUTAT UNIVERSITARIA" = "El Pla del Real",
  
  # --- L'Olivereta ---
  "NOU MOLES" = "L'Olivereta", "TRES FORQUES" = "L'Olivereta", "LA FONTSANTA" = "L'Olivereta",
  "LA LLUM" = "L'Olivereta", "SOTERNES" = "L'Olivereta",
  
  # --- Patraix ---
  "PATRAIX" = "Patraix", "SAFRANAR" = "Patraix", "SANT ISIDRE" = "Patraix",
  "LA RAIOSA" = "Patraix", "L'HORT DE SENABRE" = "Patraix", "FAVARA" = "Patraix",
  "FAITANAR" = "Patraix", "VARA DE QUART" = "Patraix",
  
  # --- Jesús ---
  "LA CREU COBERTA" = "Jesús", "SANT MARCEL.LI" = "Jesús", "CAMI REAL" = "Jesús",
  
  # --- Quatre Carreres ---
  "MONTOLIVET" = "Quatre Carreres", "NA ROVELLA" = "Quatre Carreres", "EN CORTS" = "Quatre Carreres",
  "MALILLA" = "Quatre Carreres", "LA PUNTA" = "Quatre Carreres",
  "CIUTAT DE LES ARTS I DE LES CIENCIES" = "Quatre Carreres", "LA FONTETA S.LLUIS" = "Quatre Carreres",
  
  # --- Poblats Marítims ---
  "EL GRAU" = "Poblats Marítims", "AIORA" = "Poblats Marítims", "CABANYAL-CANYAMELAR" = "Poblats Marítims",
  "LA MALVA-ROSA" = "Poblats Marítims", "BETERO" = "Poblats Marítims", "LA CREU DEL GRAU" = "Poblats Marítims",
  "NATZARET" = "Poblats Marítims",
  
  # --- Camins al Grau ---
  "CAMI FONDO" = "Camins al Grau", "PENYA-ROJA" = "Camins al Grau", "LA VEGA BAIXA" = "Camins al Grau",
  
  # --- Algirós ---
  "L'AMISTAT" = "Algirós", "ALBORS" = "Algirós", "CIUTAT JARDI" = "Algirós",
  "L'ILLA PERDUDA" = "Algirós", "LA CARRASCA" = "Algirós",
  
  # --- Benimaclet ---
  "BENIMACLET" = "Benimaclet", "CAMI DE VERA" = "Benimaclet",
  
  # --- Rascanya ---
  "SANT LLORENS" = "Rascanya", "TORREFIEL" = "Rascanya", "SANT ANTONI" = "Rascanya",
  
  # --- Benicalap ---
  "BENICALAP" = "Benicalap", "CIUTAT FALLERA" = "Benicalap", "BENIFERRI" = "Benicalap",
  "POBLE NOU" = "Benicalap",
  
  # --- Otros ---
  "LA PATACONA" = "La Patacona",
  "ALBORAIA CENTRO" = "Alboraya Centro"
)

# Convertimos el diccionario en data.frame
barrio_distrito_df <- tibble::tibble(
  BARRIO = names(barrio_distrito),
  DISTRITO = unname(barrio_distrito)
)

Valencia_modelo_2018$BARRIO <- Valencia_2018$BARRIO

# Join con la tabla principal
Valencia_modelo_2018 <- Valencia_modelo_2018 %>%
  left_join(barrio_distrito_df, by = "BARRIO")

Valencia_modelo_2018$BARRIO <- NULL
  1. Para 2025
modelo_vars <- c(
  "size","rooms","bathrooms","hasLift",
  "status","distance","distancia_min_estacion_m", "district"
)
Valencia_modelo_2025 = Valencia_2025[,modelo_vars]
Valencia_modelo_2025$logprice = log(Valencia_2025$price)
Valencia_modelo_2025 <- Valencia_modelo_2025[Valencia_modelo_2025$bathrooms != 0, ]  # evitar división por 0
Valencia_modelo_2025$RHabitacion_Banyo = Valencia_modelo_2025$rooms / Valencia_modelo_2025$bathrooms
Valencia_modelo_2025 <- na.omit(Valencia_modelo_2025)

Regresión lineal

Ahora que ya tenemos las bases de datos correctas, podemos iniciar el análisis de la influencia de cada variable. Para ello, empezaremos realizando regresión lineal utilizando como variable a predecir la variable log(precio):

  1. Para 2018
modelo_full_2018 <- lm(LOGPRICE ~ ., data = Valencia_modelo_2018)
vif(modelo_full_2018)  # Verifica mejoras
##                             GVIF Df GVIF^(1/(2*Df))
## CONSTRUCTEDAREA         2.513250  1        1.585323
## ROOMNUMBER              3.731460  1        1.931699
## BATHNUMBER              4.910594  1        2.215986
## HASLIFT                 1.186683  1        1.089350
## DISTANCE_TO_CITY_CENTER 5.467340  1        2.338234
## DISTANCE_TO_METRO       2.266758  1        1.505576
## RHabitacion_Banyo       3.733345  1        1.932186
## BUILTTYPEID             1.134693  2        1.032095
## DISTRITO                8.697489 15        1.074764
modelo_opt_2018 <- stepAIC(modelo_full_2018, direction = "both", trace = FALSE)
summary(modelo_opt_2018)
## 
## Call:
## lm(formula = LOGPRICE ~ CONSTRUCTEDAREA + ROOMNUMBER + BATHNUMBER + 
##     HASLIFT + DISTANCE_TO_CITY_CENTER + DISTANCE_TO_METRO + RHabitacion_Banyo + 
##     BUILTTYPEID + DISTRITO, data = Valencia_modelo_2018)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.4686 -0.1872 -0.0083  0.1887  1.8188 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)               1.125e+01  2.197e-02 512.264  < 2e-16 ***
## CONSTRUCTEDAREA           6.256e-03  6.466e-05  96.766  < 2e-16 ***
## ROOMNUMBER               -3.458e-02  3.599e-03  -9.608  < 2e-16 ***
## BATHNUMBER                1.833e-01  6.463e-03  28.357  < 2e-16 ***
## HASLIFT                   3.368e-01  4.936e-03  68.236  < 2e-16 ***
## DISTANCE_TO_CITY_CENTER  -7.310e-02  4.446e-03 -16.443  < 2e-16 ***
## DISTANCE_TO_METRO        -7.083e-02  6.640e-03 -10.667  < 2e-16 ***
## RHabitacion_Banyo         1.340e-01  1.514e-02   8.853  < 2e-16 ***
## BUILTTYPEID2             -4.509e-01  1.206e-02 -37.389  < 2e-16 ***
## BUILTTYPEID3             -2.808e-01  1.077e-02 -26.064  < 2e-16 ***
## DISTRITOBenicalap        -1.949e-01  1.275e-02 -15.284  < 2e-16 ***
## DISTRITOBenimaclet        1.084e-01  1.601e-02   6.772 1.29e-11 ***
## DISTRITOCamins al Grau    3.184e-01  1.635e-02  19.469  < 2e-16 ***
## DISTRITOCampanar          1.429e-01  1.429e-02  10.003  < 2e-16 ***
## DISTRITOCiutat Vella      3.111e-01  1.524e-02  20.417  < 2e-16 ***
## DISTRITOEl Pla del Real   2.764e-01  1.463e-02  18.888  < 2e-16 ***
## DISTRITOExtramurs         6.930e-02  1.379e-02   5.026 5.03e-07 ***
## DISTRITOJesús            -2.646e-01  1.563e-02 -16.927  < 2e-16 ***
## DISTRITOL'Eixample        3.758e-01  1.407e-02  26.704  < 2e-16 ***
## DISTRITOL'Olivereta      -2.985e-01  1.238e-02 -24.107  < 2e-16 ***
## DISTRITOLa Saïdia        -2.290e-01  1.297e-02 -17.659  < 2e-16 ***
## DISTRITOPatraix          -2.348e-01  1.188e-02 -19.758  < 2e-16 ***
## DISTRITOPoblats Marítims  8.370e-02  1.257e-02   6.657 2.84e-11 ***
## DISTRITOQuatre Carreres  -1.189e-01  1.225e-02  -9.705  < 2e-16 ***
## DISTRITORascanya         -1.516e-01  1.382e-02 -10.972  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3052 on 27294 degrees of freedom
## Multiple R-squared:  0.7864, Adjusted R-squared:  0.7862 
## F-statistic:  4187 on 24 and 27294 DF,  p-value: < 2.2e-16

Resultados

  1. Superficie construida (CONSTRUCTEDAREA) Esta variable presenta un coeficiente positivo de 0.00626, altamente significativo (p < 2e-16). Esto implica que, manteniendo constantes el resto de variables, un incremento de un metro cuadrado en la superficie construida se traduce en un aumento del log-precio del 0.626%. En términos reales, se trata de uno de los factores más importantes a la hora de explicar el precio, lo que es coherente con la literatura inmobiliaria: las viviendas más grandes suelen tener un precio absoluto superior.

  2. Número de habitaciones (ROOMNUMBER) Sorprendentemente, el número de habitaciones muestra un coeficiente negativo de −0.0346, también estadísticamente significativo (p < 2e-16). Esto indicaría que, a igualdad del resto de variables, cada habitación adicional reduce el precio en un 3.4% aproximadamente. Este resultado puede parecer contraintuitivo, pero podría estar capturando un efecto de correlación con viviendas de gran tamaño y distribución menos eficiente, o ubicadas en zonas menos cotizadas, es decir, más habitaciones no siempre implican más valor si el resto de características no son proporcionales (como baños o superficie útil).

  3. Número de baños (BATHNUMBER) En cambio, el número de baños tiene una influencia muy positiva sobre el precio, con un coeficiente de 0.1833 (p < 2e-16), lo que implica que un baño adicional incrementa el precio en torno a un 20.1%. Esto evidencia la importancia de este elemento como indicador de confort y adecuación para familias o usos intensivos de la vivienda.

  4. Ascensor (HASLIFT) La presencia de ascensor está asociada con un coeficiente de 0.3368, también altamente significativo. Su interpretación implica que una vivienda con ascensor es, en promedio, un 40% más cara que una equivalente sin este equipamiento. Este resultado es especialmente relevante en ciudades con edificios antiguos o de varias plantas, donde el ascensor representa un factor diferencial clave en la valoración.

  5. Distancia al centro urbano (DISTANCE_TO_CITY_CENTER) Esta variable presenta un coeficiente negativo de −0.0731 (p < 2e-16), indicando que, por cada unidad adicional de distancia al centro (presumiblemente en kilómetros), el precio de la vivienda disminuye en un 7.3%. Esto refleja el valor asociado a la cercanía al centro histórico y comercial de Valencia, donde se concentran los servicios, oportunidades laborales y atractivos culturales.

  6. Distancia a la estación de metro más cercana (DISTANCE_TO_METRO) Del mismo modo, la distancia al metro muestra una relación negativa con el precio, con un coeficiente de −0.0708, también muy significativo. Esto sugiere que, por cada unidad de distancia adicional al metro, el precio cae un 6.8%, lo que evidencia la importancia del acceso al transporte público en la valoración de un inmueble.

  7. Relación entre habitaciones y baños (RHabitacion_Banyo) La variable RHabitacion_Banyo refleja cómo se distribuyen los espacios funcionales en el interior de la vivienda. Su coeficiente de 0.1340 implica que una mejor proporción entre habitaciones y baños se asocia con un mayor precio, posiblemente porque indica una vivienda más equilibrada y cómoda. Aunque su efecto no es tan grande como otras variables, sigue siendo estadísticamente significativo.

Variables categóricas:

  1. Tipo de construcción (BUILTTYPEID) Se ha recodificado esta variable a partir de tres dummies (BUILTTYPEID_1, _2, _3) en una única variable categórica. El modelo ha tomado como categoría de referencia el tipo 1, comparando contra este los efectos de los tipos 2 y 3:
  • BUILTTYPEID2: coeficiente de −0.4509, lo que indica que las viviendas de tipo 2 tienen un precio un 36.3% inferior al tipo 1.

  • BUILTTYPEID3: coeficiente de −0.2808, es decir, un 24.5% inferior al tipo 1.

Estos efectos son altamente significativos y reflejan que el tipo constructivo de la vivienda tiene un peso considerable sobre el precio, posiblemente vinculado a la antigüedad, materiales o diseño arquitectónico.

Distrito (DISTRITO) La variable DISTRITO agrupa las viviendas según su ubicación en uno de los 16 distritos administrativos de Valencia. En el modelo, se ha considerado como referencia uno de los distritos (no mostrado, probablemente el primero alfabéticamente o el que se codificó como base). Se observan diferencias sustanciales en el precio medio de las viviendas entre distritos:

Distritos con efecto positivo (mayor precio que la media):

  • L’Eixample: +37.6%

  • Ciutat Vella: +31.1%

  • Camins al Grau: +31.8%

  • El Pla del Real: +27.6%

  • Campanar: +14.3%

Estos distritos corresponden a zonas centrales o muy demandadas, con fuerte actividad comercial, cultural y buenas infraestructuras.

Distritos con efecto negativo (menor precio que la media):

  • L’Olivereta: −29.8%

  • Jesús: −26.5%

  • Patraix: −23.5%

  • La Saïdia: −22.9%

  • Benicalap: −19.5%

Estas zonas, generalmente más periféricas o menos urbanizadas, presentan precios significativamente inferiores, lo que pone de manifiesto la segregación espacial del mercado inmobiliario en Valencia.

Conclusión global: El modelo de regresión explica aproximadamente un 78.6% de la varianza del log-precio de las viviendas (R² ajustado = 0.786), lo que evidencia un buen poder explicativo. Todas las variables incluidas resultaron estadísticamente significativas, con signos coherentes con la teoría económica o, en caso contrario, explicables por interacciones entre variables o sesgos del mercado.

Entre los principales determinantes del precio destacan: la superficie construida, el número de baños, la presencia de ascensor y la localización (tanto en términos de distrito como de distancia al centro o al transporte). Estos resultados permiten entender cómo se valoran distintos atributos en el mercado de compraventa de viviendas en Valencia y pueden servir de base para la toma de decisiones por parte de promotores, compradores o administraciones públicas.

  1. Para 2025
modelo_full_2025 <- lm(logprice ~ ., data = Valencia_modelo_2025)
vif(modelo_full_2025)  # Verifica mejoras
##                               GVIF Df GVIF^(1/(2*Df))
## size                      3.211066  1        1.791945
## rooms                     7.542823  1        2.746420
## bathrooms                 6.748917  1        2.597868
## hasLift                   1.290693  1        1.136087
## status                    1.184001  2        1.043129
## distance                  7.478360  1        2.734659
## distancia_min_estacion_m  1.870644  1        1.367715
## district                 15.406666 17        1.083759
## RHabitacion_Banyo         5.844287  1        2.417496
modelo_opt_2025 <- stepAIC(modelo_full_2025, direction = "both", trace = FALSE)
summary(modelo_opt_2025)
## 
## Call:
## lm(formula = logprice ~ size + bathrooms + hasLift + status + 
##     distance + district + RHabitacion_Banyo, data = Valencia_modelo_2025)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.71732 -0.16787  0.02008  0.19692  1.28748 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)              12.9324413  0.2496445  51.803  < 2e-16 ***
## size                      0.0047487  0.0001655  28.702  < 2e-16 ***
## bathrooms                 0.1321975  0.0133347   9.914  < 2e-16 ***
## hasLift                   0.3242507  0.0158975  20.396  < 2e-16 ***
## statusnewdevelopment      0.1253698  0.0368683   3.400 0.000682 ***
## statusrenew              -0.1557713  0.0209226  -7.445 1.27e-13 ***
## distance                 -0.0001279  0.0000138  -9.271  < 2e-16 ***
## districtAlgirós          -0.8586118  0.2450096  -3.504 0.000465 ***
## districtBenicalap        -1.0447375  0.2439544  -4.283 1.91e-05 ***
## districtBenimaclet       -0.9639333  0.2506289  -3.846 0.000123 ***
## districtCamins al Grau   -0.7826477  0.2430551  -3.220 0.001296 ** 
## districtCampanar         -0.8379746  0.2440120  -3.434 0.000603 ***
## districtCiutat Vella     -0.8019552  0.2469100  -3.248 0.001176 ** 
## districtEl Pla del Real  -0.7729900  0.2468300  -3.132 0.001755 ** 
## districtExtramurs        -0.9507878  0.2462419  -3.861 0.000115 ***
## districtJesús            -1.1471413  0.2441916  -4.698 2.75e-06 ***
## districtL'Eixample       -0.7154828  0.2460929  -2.907 0.003673 ** 
## districtL'Olivereta      -1.2670231  0.2438456  -5.196 2.18e-07 ***
## districtLa Patacona      -0.1788630  0.2455693  -0.728 0.466452    
## districtLa Saïdia        -1.0527010  0.2450263  -4.296 1.79e-05 ***
## districtPatraix          -1.1575641  0.2443684  -4.737 2.27e-06 ***
## districtPoblats Marítims -0.7461436  0.2417341  -3.087 0.002044 ** 
## districtQuatre Carreres  -0.9030419  0.2434831  -3.709 0.000212 ***
## districtRascanya         -1.2656560  0.2433211  -5.202 2.11e-07 ***
## RHabitacion_Banyo        -0.0317329  0.0091112  -3.483 0.000503 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3404 on 2896 degrees of freedom
## Multiple R-squared:  0.7735, Adjusted R-squared:  0.7716 
## F-statistic:   412 on 24 and 2896 DF,  p-value: < 2.2e-16

Resultados

  1. Superficie construida (size)
    La variable size presenta un coeficiente positivo de 0.00475, altamente significativo (p < 2e-16). Esto implica que, manteniendo constantes el resto de variables, un metro cuadrado adicional se traduce en un aumento del 0.475% en el log-precio de la vivienda. Este efecto es consistente con la literatura del mercado inmobiliario, donde el tamaño es uno de los principales determinantes del valor.

  2. Número de baños (bathrooms)
    El número de baños muestra un coeficiente positivo de 0.1322 (p < 2e-16), lo que indica que un baño adicional incrementa el precio en torno a un 14.1% (exp(0.1322) − 1). Esto resalta la importancia de los baños como indicador de confort y adecuación para familias o viviendas de gran tamaño.

  3. Ascensor (hasLift)
    La variable hasLift tiene un coeficiente de 0.3243, también muy significativo. Esto implica que, en promedio, las viviendas con ascensor son aproximadamente 38.3% más caras que aquellas que no lo tienen (exp(0.3243) − 1). La presencia de ascensor representa un factor diferencial, especialmente en edificios antiguos sin esta instalación.

  4. Estado del inmueble (status)
    Esta variable categórica incluye tres niveles: vivienda usada (base), nueva (statusnewdevelopment) y renovada (statusrenew). Sus efectos son:

  • statusnewdevelopment: coef. = 0.1254 → las viviendas nuevas son 13.4% más caras que las usadas.
  • statusrenew: coef. = −0.1558 → las viviendas renovadas son 14.4% más baratas que las usadas.

Estos resultados sugieren que el mercado valora más una vivienda completamente nueva que una reformada.

  1. Distancia al centro urbano (distance)
    Con un coeficiente negativo de −0.000128 (p < 2e-16), se interpreta que cada metro adicional de distancia al centro urbano reduce el precio de la vivienda en un 0.0127%, lo cual es coherente con la mayor demanda por vivir cerca del núcleo urbano.

  2. Distrito (district)
    district es una variable categórica que agrupa las viviendas según los 17 distritos de Valencia. Se ha tomado como referencia un distrito (no mostrado en el resumen). Se observan efectos negativos y significativos en la mayoría de los distritos respecto a esa referencia:

Ejemplos destacados: - districtBenicalap: coef. = −1.045 → aproximadamente −64.8% respecto al distrito base. - districtL’Olivereta: coef. = −1.267 → unas −71.7% más barato. - districtL’Eixample: coef. = −0.715 → −50.5%, aunque sigue siendo más caro en términos absolutos (esto depende de la categoría base).

Estas diferencias reflejan la importancia de la localización dentro de la ciudad, evidenciando la existencia de una clara segmentación espacial en el mercado inmobiliario de Valencia.

  1. Relación habitaciones-baños (RHabitacion_Banyo)
    Esta variable mide la proporción o equilibrio entre número de habitaciones y baños. Su coeficiente de −0.0317 (p < 0.001) sugiere que, a igualdad del resto, una mayor proporción de habitaciones respecto a baños reduce ligeramente el precio (−3.1%). Este resultado podría interpretarse como un indicio de viviendas con distribución menos eficiente.

Conclusión global El modelo explica el 77.2% de la varianza del log-precio (R² ajustado = 0.7716), lo que indica un buen ajuste. La mayoría de las variables incluidas resultaron estadísticamente significativas y con signos coherentes con la teoría económica.

Los principales determinantes del precio son:

  • Superficie

  • Número de baños

  • Ascensor

  • Distancia al centro urbano

  • Ubicación distrital

Estos resultados permiten comprender cómo se valoran distintos atributos en el mercado inmobiliario de Valencia, siendo útiles tanto para análisis académicos como para toma de decisiones por parte de compradores, promotores o responsables públicos.

Correlaciones

Por último, para terminar de analizar las diferencias que hay entre la influencia de estas variables sobre el precio entre los dos años, haremos uso de correlaciones de Pearson. De esta forma, observaremos qué variables están más correlacionadas con el precio y como cambia esta importancia de 2018 a 2025:

  1. Para 2018
# Seleccionamos las variables numéricas + LOGPRICE
Valencia_modelo_2018$HASLIFT <- as.numeric(Valencia_modelo_2018$HASLIFT)
cor_data_2018 <- Valencia_modelo_2018 %>%
  dplyr::select(LOGPRICE, CONSTRUCTEDAREA, ROOMNUMBER, BATHNUMBER, HASLIFT,
         DISTANCE_TO_CITY_CENTER, DISTANCE_TO_METRO, RHabitacion_Banyo)

cor_matrix_2018 <- cor(cor_data_2018, use = "complete.obs")


# Correlación solo con respecto a LOGPRICE
corrplot(cor_matrix_2018, method = "color", type = "lower", 
         tl.col = "black", tl.cex = 0.8, addCoef.col = "black",
         number.cex = 0.7, order = "hclust")

1. Variables con mayor correlación positiva con el precio (LOGPRICE)

Constructed Area (CONSTRUCTEDAREA): Con una correlación de 0.58, es la variable que presenta la mayor asociación positiva con el precio. Esto indica que, en términos generales, cuanto mayor es el área construida de una vivienda, mayor es su precio, lo cual es coherente con la lógica del mercado inmobiliario.

Número de Baños (BATHNUMBER): Presenta una correlación de 0.46 con LOGPRICE. Tener más baños se relaciona con viviendas más completas o de mayor confort, lo que se traduce en precios más altos.

Habitación con Baño (RHabitacion_Banyo): Tiene una correlación positiva de 0.34. La presencia de habitaciones con baño privado parece asociarse con un mayor valor del inmueble, posiblemente por asociarse a construcciones más modernas o de alta gama.

Ascensor (HASLIFT): Con un valor de 0.30, indica que los edificios con ascensor tienden a tener viviendas con precios más altos, lo que podría deberse a su asociación con edificios más recientes o de mejor calidad.

Número de Habitaciones (ROOMNUMBER): Muestra una correlación moderada de 0.34 con el precio. Aunque se espera una asociación positiva, su efecto es menor que el del área construida o el número de baños, lo cual podría indicar que el número total de habitaciones no siempre implica mayor valor si no están bien distribuidas o si son pequeñas.

2. Variables con correlación negativa con el precio

Distancia al Centro (DISTANCE_TO_CITY_CENTER): Con una correlación de -0.33, muestra una relación negativa importante: cuanto más alejada está la vivienda del centro urbano, menor es su precio. Esto es esperable en contextos urbanos donde el centro suele concentrar mayor valor comercial y servicios.

Distancia al Metro (DISTANCE_TO_METRO): Presenta una correlación de -0.20, lo cual sugiere que las viviendas más alejadas de estaciones de metro tienden a tener precios más bajos. Este resultado subraya la importancia de la accesibilidad al transporte público.

3. Correlaciones entre variables explicativas

Es importante mencionar que algunas variables independientes presentan correlaciones entre sí, como:

ROOMNUMBER y BATHNUMBER (0.56): viviendas con más habitaciones tienden a tener también más baños.

CONSTRUCTEDAREA se relaciona tanto con BATHNUMBER (0.50) como con ROOMNUMBER (0.39), lo cual tiene sentido ya que una mayor área permite más espacios funcionales.

Estas asociaciones deben ser consideradas para evitar problemas de colinealidad en modelos predictivos más complejos, aunque el análisis previo de VIF sugiere que no hay problemas críticos de multicolinealidad.

Conclusión

El análisis de correlación confirma que variables como el tamaño, la calidad de los acabados (baños, habitaciones en suite), y la accesibilidad (proximidad al centro o al metro) tienen un impacto importante en el precio de la vivienda. Estos resultados apoyan la selección de variables realizada en el modelo de regresión lineal y serán tenidos en cuenta en fases posteriores del análisis como el PCA o modelos predictivos más avanzados.

  1. Para 2025
# Seleccionamos las variables numéricas + logprice
Valencia_modelo_2025$hasLift <- as.numeric(Valencia_modelo_2025$hasLift)
cor_data_2025 <- Valencia_modelo_2025 %>%
  dplyr::select(logprice, RHabitacion_Banyo, size, rooms, bathrooms, hasLift,
  distance, distancia_min_estacion_m)

cor_matrix_2025 <- cor(cor_data_2025, use = "complete.obs")


# Correlación solo con respecto a LOGPRICE
corrplot(cor_matrix_2025, method = "color", type = "lower", 
         tl.col = "black", tl.cex = 0.8, addCoef.col = "black",
         number.cex = 0.7, order = "hclust")

1. Variables con mayor correlación positiva con el precio (logprice)

size (Superficie construida): Correlación = 0.65 Es la variable que presenta la mayor asociación positiva con el precio. A mayor superficie construida, mayor precio, lo que es totalmente coherente con el comportamiento esperado en el mercado inmobiliario.

bathrooms (Número de baños): Correlación = 0.69 Una de las variables con más peso. Los inmuebles con más baños tienden a tener mayor valor, dado que reflejan un mayor nivel de confort y adecuación para familias o viviendas grandes.

hasLift (Ascensor): Correlación = 0.48 La presencia de ascensor tiene una fuerte relación con el precio. Esto podría deberse a que muchos edificios antiguos (sin ascensor) suelen tener un precio más bajo por su falta de accesibilidad.

rooms (Número de habitaciones): Correlación = 0.47 Aunque es positivo, su influencia es menor que la de size o bathrooms. Esto puede reflejar que no todas las habitaciones aportan el mismo valor si no están bien distribuidas.

RHabitacion_Banyo (Relación habitaciones/baños): Correlación = 0.23 Una distribución eficiente entre habitaciones y baños también parece estar relacionada con precios más altos.

2. Variables con correlación negativa con el precio

distance (Distancia al centro): Correlación = −0.32 Cuanto más alejada del centro está la vivienda, menor es su precio. Esto es esperable, ya que la localización céntrica suele tener mayor demanda y valor.

distancia_min_estacion_m (Distancia mínima a estación de metro): Correlación = −0.13 La relación es más débil pero sigue siendo negativa: las viviendas más alejadas del metro tienden a ser más baratas, lo que subraya la importancia del transporte público.

3. Correlaciones entre variables explicativas

bathrooms y size: Correlación = 0.76 Es muy alta. Las viviendas más grandes suelen tener más baños, lo cual es coherente y esperable.

rooms y bathrooms: Correlación = 0.54 También elevada, lo que indica que hay un patrón de coexistencia entre ambos elementos.

rooms y size: Correlación = 0.67 La superficie construida aumenta generalmente con el número de habitaciones.

Estas correlaciones sugieren cierta colinealidad entre variables explicativas, aunque los valores de VIF vistos anteriormente indican que no representan un problema grave para el modelo de regresión.

Conclusión

El análisis de correlaciones confirma la importancia de variables como el tamaño (size), el confort (bathrooms, hasLift) y la localización (distance) en la explicación del precio (logprice). Estos resultados respaldan las elecciones realizadas para la regresión lineal y orientan futuros análisis, como la selección de variables o la reducción de dimensión (e.g. PCA).

Conclusion general

Aunque algunas variables siguen siendo clave (como el tamaño y los baños), su influencia ha disminuido con el tiempo, posiblemente debido a cambios en las preferencias del comprador, mejoras en estándares de vivienda o el desarrollo de nuevas zonas residenciales. Por otro lado, variables como la relación entre habitaciones y baños ganan relevancia, lo que indica una evolución hacia la valoración del confort y el diseño funcional más que de simples cantidades.