1 Introducción

Desarrollo de un modelo AVM, basado en XGBoost, para valoración inmobiliaria residencial a partir de 3 únicos datos introducidos en Preveo:

  • Superficie

  • Ubicación (sección censal)

  • Estado (Nueva; Usada, no necesita reformas; Usada, con reformas; Usada, necesita reformas; Usada, necesita reforma integral)

Una vez desarrollado el modelo, quedaban pendientes dos fases:

  • Validación del modelo. Desde el departamento técnico se propuso una muestra de viviendas para validar el modelo. El resultado no fue satisfactorio (algunas viviendas antigüas se valoraban por encima de otras nuevas).

  • Puesta en producción del modelo. A través de un Api que consulta una tabla de reducido tamaño y estima el valor AVM a partir de la ubicación del inmueble, su superficie y el estado proporcionado por el usuario.

Además de cómo trasladar la variable antigüedad de los inmuebles a la variable estado empleada en Preeo.

2 Validación: precio unitario vs. estado

Se constata que el precio no es lineal con la antigüedad a nivel nacional. Este comportamiento se repite en un número relevante de municipios.

Relación entre el precio unitario y la antigüedad, media a nivel nacional

Histograma antigüedad, nivel nacional

  • Hay zonas en las que no aparece oferta de vivienda nueva; o cuando lo hace los precios no son fiables (anuncios del tipo “Precio desde …”).

  • Además de las viviendas nuevas, las de una antigüedad + 100 años también pueden distorsionar la muestra, pese a tener un porcentaje relativamente pequeño. En el siguiente apartado se explica el motivo.

3 Valores estimados por el modelo AVM

El modelo AVM no hace otra cosa que reflejar lo que observamos en los datos de Fotocasa; sin embargo, el comportamiento del precio en relación a la antigüedad no es razonable en algunos casos. A continuación una muestra de diferentes municipios:

  • Se observa que las viviendas nuevas tienen, en muchos casos, precios unitarios inferiores a las viviendas 1-5 años.

  • Las viviendas más antigüas son más caras que otras más recientes.

Valores obtenidos por el modelo AVM

4 Reestimación de los valores del modelo AVM

Una solución pasa por:

  • Eliminar los extremos: viviendas nuevas y viviendas +100 años.

  • Ajustar una regresión sobre el resto de puntos.

Nueva estimación del modelo AVM

El objetivo es que una vivienda sea más cara cuánto más reciente sea su construcción (mejor sea su estado de conservación).

Reasignación de la antigüedad al estado:

  • “1 a 5 años” -> “Nueva”
  • “5 a 10 años” -> “Casi nueva”
  • “10 a 20 años” y “20 a 30 años” -> “Usada, no necesita reformas”
  • “30 a 50 años” y “50 a 70 años” -> “Usada, necesita reformas”
  • “70 a 100 años” -> “Usada, necesita reforma integral”

Con la nueva clasificación se reentrena el modelo AVM.

4.1 Reentrenamiento modelo AVM: ejemplo testigos seleccionados por el departamento técnico

Ahora comprobamos sobre los 95 testigos seleccionados por el departamento técnico que, en la mayoría de los casos, la relación entre el precio unitario y el estado es consistente desde un punto de vista valorativo.

Relación entre precio unitario y antigüedad

4.2 Resumen ejercicio AVM

Se han tomado todos los testigos de Fotocasa (940.000) y creado réplicas variando la antigüedad:

Testigo Sección censal Superficie Estado
1 0301501001 85 Nueva
1 0301501001 85 Casi nueva
1 0301501001 85 Usada, no necesita reformas
1 0301501001 85 Usada, necesita reformas
1 0301501001 85 Usada, necesita reforma integral
2 2807904002 112 Nueva
2 2807904002 112 Casi nueva

Resumen:

  • Porcentaje de testigos con relación positiva (errónea) entre precio m2 y antigüedad: 0,09%.

Se replica la tabla anterior pero no sobre los testigos de Fotocasa, sino sobre las 36.000 secciones censales. Se quiere conocer cómo se comporta el precio unitario respecto del estado para secciones en las que ni tan siquiera tenemos testigos:

  • Porcentaje de testigos con relación positiva (errónea) entre precio m2 y antigüedad: 0,17%.

5 Validación: precio unitario vs. superficie

En el modelo se observa cómo el precio unitario disminuye con la superficie. Cuidado porque en algunos casos una vivienda de 100 m2 puede tener un valor total superior a una vivienda de 101 m2.

Se repite el experimento de la variable estado, ahora con la superficie, replicando los testigos para diferentes niveles de superficie (11):

  • Superficie en [40.0, 60.5, 81.0, 101.5, 122.0, 142.5, 163.0, 183.5, 204.0, 224.5, 245.0]

  • Porcentaje de testigos con relación positiva (errónea) entre precio m2 y antigüedad: 0%.

6 Validación: precio unitario vs. [estado + superficie]

  • De nuevo se realiza el experimento creando réplicas de los 940.000 testigos de Fotocasa, para los 5 niveles de estado y 11 niveles de superficie.

  • Porcentaje de testigos con relación positiva entre precio m2 y antigüedad: 0,096%

  • Porcentaje de testigos con relación negativa entre precio m2 y superficie: 0%

7 Puesta en producción

Para la puesta en producción del modelo AVM se propone consultar una tabla con las siguientes características:

  • Se ha diseñado una tabla con tantas filas como secciones censales, y cuyas columnas son los coeficientes del modelo de regresión (constante, área construida y estado).

  • Todas las secciones censales tienen signo positivo en el área construida.

  • 75 secciones censales (0,2%) tienen signo positivo en estado (antigüedad).

  • PREVEO: el cliente proporciona superficie y estado, y el valor se calcula a partir de la siguiente tabla:

secc_censal constante superficie estado
100101001 48.640,3 1.826,5 -8.055,9
100101002 59.257,5 1.815,3 -9.332,4
100201001 88.866,9 1.659,4 -16.240,4
100201002 82.286,6 1.724,1 -17.632,1
100201003 81.197,2 1.605,5 -17.202,6
100201004 110.072,7 1.331,8 -20.103,0
100201005 103.833,2 1.495,8 -18.451,5
100201006 75.829,0 1.505,5 -13.191,1
100201007 113.519,5 1.278,7 -26.368,7

A continuación se relacionan algunas secciones censales donde el estado no tiene un signo coherente (aparece con la antigüedd original, para observar la evolución):

secc_censal = 2807904012

Antigüedad Precio unitario
20 a 30 años 8375
30 a 50 años 8420
50 a 70 años 8830
70 a 100 años 9898

secc_censal = 2807904002

Antigüedad Precio unitario
5 a 10 años 8778
30 a 50 años 11740
50 a 70 años 9866
70 a 100 años 10159

secc_censal = 2807901003

Antigüedad Precio unitario
5 a 10 años 4783
10 a 20 años 5608
20 a 30 años 3665
30 a 50 años 6047
70 a 100 años 8200