Planteamiento del problema

La predición del precio de vivienda basado en Xi variables independientes, ha sido una problemática altamente ilustrativa en el sector inmobiliario durante los últimos años. Esta aplicación requiere técnicas Estadísticas para evaluar la relación entre variables y modelos de Aprendizaje de Máquinas para calcular la precisión de la predicción.

En esta actividad, desarrollaremos 6 modelos de Aprendizaje de Máquinas basados en una base de datos sobre precios de vivienda en Taiwan, a continuación se define las variables y se describe el procedimiento.

##     X2         X3 X4       X5       X6    Y
## 1 32.0   84.87882 10 24.98298 121.5402 37.9
## 2 19.5  306.59470  9 24.98034 121.5395 42.2
## 3 13.3  561.98450  5 24.98746 121.5439 47.3
## 4 13.3  561.98450  5 24.98746 121.5439 54.8
## 5  5.0  390.56840  5 24.97937 121.5425 43.1
## 6  7.1 2175.03000  3 24.96305 121.5125 32.1

Análisis Estadístico

Inicialmente, vamos a representar la matriz de correlación de cada variable y su respectivo diagrama de dispersión de los datos. Podemos observar en la siguiente gráfica que, la mayor correlación presente en la muestra es entre las variables X3 y X6, la cual es de 0.81.Por ende, se decide eliminar una de las 2 varibles ya que si se tienen encuenta ambas variables no le suministra información relevante a los modelos. En este sentido, la mayor correlación entre la variable dependiente Y, se da con la variable X3, dando un primer indício sobre la importancia de esta variable para el modelo.

Hacemos una exploración de las variables predictoras para mirar si se observa alguna relación en escala logarítmica. La mayor relación lineal la encontramos al pasar X3 a escala logarítmica con menor varianza cuando la distancia al MRT aumenta y el precio disminuye.

Vale la pena ajustar los datos a una escala logarítmica con el fin de analizar el comportamiento de las variables. Podemos observar que todas las variables tienen una alta correlación con la función logaritmica de ella misma. No obstante, se puede apreciar que la correlación entre variables independientes se maximiza bajo esta escala.

Ahora bien, teniendo en cuenta el análisis anterior, procederemos a entrar en detalle en cada uno de los 6 modelos de aprendizaje de máquinas ejecutados.

Resultados

Regresión Lineal

Regresión Lineal Clásica

Al analizar el modelo de predicción lineal, observamos que los coeficientes estimados de los valores estimados de X2log(años de la vivienda) y X3log(distancia al RTM) dan negativo, lo que quiere decir que a medida que crecen ambas variables, el valor predicho Ylog (precio) decrece. Por el contrario, el valor estimado de X4log(número de tiendas) crece, el precio de la vivienda también crece al igual que la latitud.

Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.0017416 0.0305616 -0.0569858 0.9545914
X2log -0.1968134 0.0316480 -6.2188299 0.0000000
X3log -0.5031786 0.0432645 -11.6302887 0.0000000
X4log 0.0913641 0.0421915 2.1654617 0.0310772
X5log 0.3181774 0.0346964 9.1703426 0.0000000

También observamos que la mayor relación lineal se da con X3 al tener en valor absoluto el coeficiente más alto (0.5). Acá vemos el impacto de pasar los datos a escala logarítmica donde identificamos que esta misma variable en escala logarítmica (X3log) mostraba una tendencia lineal más pronunciada que las demás predictores

El desempeño del modelo lo evaluamos por medio del RMSE, para el caso de la regresión Lineal es:

RMSE_Regresión_Clasica:

## [1] 7.279727

Regresión Lineal ELASTIC NET

A continuación se representa la gráfica de Regresión Lineal tipo Elastic Net, la cual busca encontrar los parametros alpha y lambda que minimicen el RMSE, Podemos observar en el eje X los valores de alpha y en el eje Y el RMSE. Cada línea corresponde a los diferentes valores de lambda con los que se entrenó el modelo, encontrando que el menor RMSE encontrado fue con la combinación de alpha y lambda igual a 0.85 y 0.00365 respectivamente. Al ser alpha cercano a 1 nos indica que la naturaleza de Elastic Net se asocia más con la regresión de tipo Lasso, es decir que fuerza los coeficientes de las variables predictoras tiendan a cero con el fin de excluir los predictores menos relevantes.

## Warning in nominalTrainWorkflow(x = x, y = y, wts = weights, info = trainInfo, :
## There were missing values in resampled performance measures.
alpha lambda
341 0.85 0.0036562

Extrayendo los coeficientes del modelo de Elastic Net, vemos nuevamente que la variable X3 en términos abosultos presenta el mayor coeficiente, y por tanto nos indica que es la variable predictora con mayor impacto en el precio de venta.

## 5 x 1 sparse Matrix of class "dgCMatrix"
##                       1
## (Intercept) -0.02021451
## X2log       -0.19367333
## X3log       -0.50074613
## X4log        0.08978391
## X5log        0.32353972

RMSE_Regresión_Elastic_Net

## [1] 7.28627

Los siguientes dos métodos de aprendizaje automático tienen como base el algoritmo de arboles de decisión, la naturaleza del clasificador permite prescindir de la normalización o un pre procesamiento de las variables, esto debido a que el proceso consiste básicamente en hacer split’s sobre variables con un umbral definido.

RANDOM FOREST

Es un ensamble de arboles de decisión, se generan varios árboles con subsets de datos y se les asignan pesos dependiendo de la calidad de la predicción de cada uno.

Esta técnica permite identificar la importancia que pueden tener cada característica sobre la predicción, lo anterior depende de que tanto decae el índice de Gini con cada iteración (o split), entre mayor sea el decaimiento del índice de Gini de característica a característica, mas importante será. De alguna forma representa que tan bien puedo describir los datos a partir de esa variable.

Se puede observar que la variable con mayor importancia es el MRT (Distancia a Transporte Masivo) y la de menor importancia el número de tiendas. Es decir que, para la predicción, se puede describir mucho más el precio en función del MRT que de las demás variables.

RMSE_Random_Forest:

rmse_rf<-RMSE(y_pred, y)
rmse_rf
## [1] 7.827138

XGBoost

XGBoost está basado en arboles de decisión y utiliza una estructura de Gradient Boosting. Donde cada árbol trata de predecir enfocándose en aquellas cosas que el anterior predijo de forma incorrecta, teniendo en cuenta tanto el feedback de las iteraciones previas como la minimización del error utilizando gradiente descendente.

También es posible obtener la importancia relativa de cada variable utilizando este método.

Se puede observar que el orden de importancia de las variables descrito en Random Forest es el mismo que XGBoost, sin embargo, la diferencia en importancia que existe entre la primera variable MRT y el resto es mucho mayor que en Random Forest.

RMSE_XGBoost:

## [1] 8.901608

SVM

SVM se fundamenta en encontrar los hiperplanos que mejor dividan el dataset, a los hiperplanos se les agrega unos vectores cercanos que en conjunto hacen las veces de margen sobre para los datos, permitiendo m{a flexibilidad y control sobre el modelo.

la librería utilizada por defecto escala los datos, el resultado de utilizar el algoritmo es el siguiente:

RMSE_SVM:

## [1] 7.199442

SVM tiene varios parametros cruciales(costo, gamma y epsilon), a continuación se busca encontrar los parametros optimos para el modelo, a esta practica se le conoce como fine tuning.

A continuación se puede observar la evolución de las predicciones sobre el conjunto de testeo, comparandose con la variable de mayor importancia para el problema (MRT)

RMSE_TUNED_SVM:

## [1] 7.091327

Se puede observar que a pesar del fine tunning no se evidencia una mejoría notable en terminos de RMSE, lo anterior puede entenderse por el tamaño del dataset que se está utilizando. Un fine tunning tiene más sentido cuando se están abordando problemas con volumenes más grandes. Para este escenario el desempeño mejora ligeramente, el uso o no de técnicas de fine tuning dependera en gran medida de las necesidades del negocio, del costo computacional y de la importancia que pueda asociarse al error, aunque en este escenario parece no evidenciarse, en algunos casos por sútil que pueda ser la mejora marcaría una diferencia importante sobre el funcionamiento.

REDES NEURONALES

Finalmente, el último modelo evauado son las Redes Neuronales, su arquitectura está definida por 1 capa oculta y 2 neuronas, la funcion de activacion es tipo logistica. Se puede observar que, X3 posee el mayor peso en la red, lo cual indica su importancia dentro de la estructura.

La siguiente tabla, recopila los datos reales, predecidos y calcula el error para cada observación. Por último, se puede analizar graficamente la dispersión de los datos predecidos Vs Reales.

##          Real Predicted      Error
## 1  0.27570519 0.4014659 0.45614207
## 15 0.24294813 0.2704480 0.11319221
## 34 0.37943585 0.3673082 0.03196237
## 35 0.43221110 0.4172447 0.03462754
## 46 0.27934486 0.2664792 0.04605667
## 49 0.05277525 0.0896419 0.69855940
## Warning: Ignoring unknown parameters: method
## `geom_smooth()` using formula 'y ~ x'

Resumen de los Modelos

La siguiente grafica recopila la informacion del RMSE obtenido de cada metodo. En este caso, el metodo de Redes Neuronales es el que presenta un menor error de precision en los datos.

Preguntas adicionales

  1. ¿Que variables tienen el mayor impacto en el precio de la vivienda? ¿Como aporta cada modelo al conocimiento de este impacto?

En la matriz de correlación observamos que la distancia del sistema de transporte masivo tiene un mayor impacto sobre el precio de la vivienda con una correlación de 0,67. Así mismo, vimos como en las regresiones lineales el coeficiente de esta variable predictora (X3) en términos absolutos es mayor en comparación a los demás, reflejando un mayor peso e impacto sobre el precio de la vivienda. Dado que el coeficiente es negativo, nos indica una relación inversamente proporcional, en el caso de Random Forest y XGBoost se puede identificar la variable X3(MRT) como la de mayor importancia, en el caso de la red neuronal también se resalta los pesos de la misma variable como los más altos dentro de la arquitectura. Las observaciones que se pueden hacer desde cada modelo son coherentes

  1. ¿Cual es el mejor modelo entre los usados para resolver este problema? ¿Que criterios se pueden utilizar para responder a esta pregunta?

El desempeño de los diferentes modelos se midio por medio del RMSE. Comparando los valores obtenidos observamos que el modelo con mejores resultados fue el de Redes Neuronales con un RMSE de 6.35, seguido por los modelos de SVM y finalmente los de regresión lineal. Otros criterios de evaluacion a utilizar para medir el desempeño son: - Accuracy: con qué frecuencia es correcto el clasificador. En vez de validar el menor error como lo hicimos con el RMSE, será determinar el de mayor exactitud. - Precision: Cuando predice si, con qué frecuencia es correcto. - Recall: Cuando en realidad es un si, con qué frecuencia predice un si - F1 Score: es un promedio entre el resultado del Recall y Precisión, donde la puntuación del F1 alcanza su mejor valor en 1 (Precision y Recall perfectos) y el peor en 0.

Bibliografia