En la parte 6 de este documento se introdujeron los modelos no lineales, mencionando las regresiones polinómicas cuadráticas de una o múltiples variables; como continuación de las regresiones no lineales se presenta uno de los métodos de regresiones no paramétricas: regresión local.
En las regresiones no paramétricas no se asume un modelo particular de la relación entre la variable dependiente y las independientes. En los anteriores modelos de regresión se establecía un modelo teórico (por ejemplo el de la regresión lineal simple) con el que se pretende calcular el valor de los parámetros \(\beta_i\). En este caso no se tiene ese modelo teórico inicial, esto es, no se tiene un modelo de regresión con una forma predeterminada.
Si bien existen varios métodos no paramétricos, en este documento solo se desarrolla el modelo de regresión local. Modelos como Splines, Smoothing Splines y Modelo Aditivo Generalizado, entre otros, usan de parámetros específicos que requieren un desarrollo detallado para encontrar los óptimos, por ejemplo el número de knots o los grados de libertad.
En R, la librería ggplot tiene la opción de agregar una línea de tendencia en un gráfico de dispersión. Generalmente para dicha línea de tendencia se tiene por defecto el método loess, es decir, regresión local. En las siguientes gráficas se presenta un comparativo (incluyendo una sola variable independiente) de la regresión local, la regresión cuadrática y la regresión lineal simple.
En R se usa la función ‘loess’ para generar los modelos de regresión local, esta función trabaja con dos parámetros principales: span y degree.
Span: se define la proporción de observaciones que se tomarán como vecinos
Degree: se establecer si a regresión con los vecinos será lineal o cuadrática
Para definir los modelos de regresión local se debe establecer 1) las variables independientes a incluir, 2) la formula de ‘relación’ entre variables, y 3) los valores span y dregree. Cada combinación de estos puntos genera un modelo diferente, lo que abre la posibilidad a múltiples opciones de modelos de regresión local que se podrían plantear en este ejercicio. En el presente documento se trabajará con 4 modelos, cada uno tendrá en común el valor de span (0.2), en lo demás, se modificaran la cantidad de variables y los grados. Es muy posible que la modificación del valor span genere mejores resultados, sin embargo, no es posible explorar una mayor cantidad a las que se plantearán.
Las configuraciones a estudiar serían:
Un modelo de 3 variables independientes (lstat, rm, ptratio) con un valor degree de 1.
Un modelo de 3 variables independientes (lstat, rm, ptratio) con un valor degree de 2.
Un modelo de 2 variables independientes (lstat, rm) con un valor degree de 1.
Un modelo de 2 variables independientes (lstat, rm) con un valor degree de 2.
## Call:
## loess(formula = medv ~ lstat + rm + ptratio, data = Train, span = 0.2,
## degree = 1, normalize = FALSE)
##
## Number of Observations: 405
## Equivalent Number of Parameters: 22.56
## Residual Standard Error: 4.486
## Trace of smoother matrix: 32.19 (exact)
##
## Control settings:
## span : 0.2
## degree : 1
## family : gaussian
## surface : interpolate cell = 0.2
## normalize: FALSE
## parametric: FALSE FALSE FALSE
## drop.square: FALSE FALSE FALSE
Para este modelo el error estándar residual es de 4.49, muy similar a los resultados que han mostrado los modelos trabajados anteriormente. Al hacer la predicción de los valores de medv haciendo uso del dataset test:
En términos generales se podría mencionar que el modelo de regresión local con 3 variables y de grado uno, parece tener un buen desempeño en las predicciones para los valores bajos de medv, no obstante, para las observaciones superiores a 60 las diferencias comienzan a ser mayores.
## Call:
## loess(formula = medv ~ lstat + rm + ptratio, data = Train, span = 0.2,
## degree = 2, normalize = FALSE)
##
## Number of Observations: 405
## Equivalent Number of Parameters: 49.4
## Residual Standard Error: 4.588
## Trace of smoother matrix: 61.95 (exact)
##
## Control settings:
## span : 0.2
## degree : 2
## family : gaussian
## surface : interpolate cell = 0.2
## normalize: FALSE
## parametric: FALSE FALSE FALSE
## drop.square: FALSE FALSE FALSE
Para este planteamiento la única modificación, con respecto al anterior, es el grado, en este caso el modelo se establece con grado 2. El error estándar residual es 4.60 (mayor al modelo de grado 1), en principio se podría concluir que se tiene un menor desempeño en este modelo, sin embargo, este resultado se validará más adelante cuando se realicen los cálculos de RMSE. El resultado de la predicción de los valores se observa así:
Los resultados que se observan en la gráfica son muy similares al modelo grado 1: una mayor cercanía a los valores reales para las observaciones de 1 a 60 y una mayor distancia en los datos predichos de las observaciones superiores a 60.
## Call:
## loess(formula = medv ~ lstat + rm, data = Train, span = 0.2,
## degree = 1, normalize = FALSE)
##
## Number of Observations: 405
## Equivalent Number of Parameters: 17.42
## Residual Standard Error: 4.25
## Trace of smoother matrix: 23.08 (exact)
##
## Control settings:
## span : 0.2
## degree : 1
## family : gaussian
## surface : interpolate cell = 0.2
## normalize: FALSE
## parametric: FALSE FALSE
## drop.square: FALSE FALSE
Al eliminar la variable ptratio y con usar grado 1, el error estándar residual disminuye a 4.25. El resultado del modelo parece ser mejor al eliminar una variable. Ahora, al predecir los valores con el dataste Test, así se observan los resultados:
Los modelos de regresión local parecen presentar la misma tendencia, se observa un buen ajuste para valores reales de medv bajos (esto es por debajo de la observación 60) y una mayor dispersión para las demás observaciones. Cabe resaltar que en este modelo, en las últimas 6 observaciones las predicciones muestran una tendencia a estar por debajo de los valores reales.
## Call:
## loess(formula = medv ~ lstat + rm, data = Train, span = 0.2,
## degree = 2, normalize = FALSE)
##
## Number of Observations: 405
## Equivalent Number of Parameters: 31.69
## Residual Standard Error: 4.158
## Trace of smoother matrix: 37.87 (exact)
##
## Control settings:
## span : 0.2
## degree : 2
## family : gaussian
## surface : interpolate cell = 0.2
## normalize: FALSE
## parametric: FALSE FALSE
## drop.square: FALSE FALSE
El último modelo de regresión local planteados muestra el menor error estándar residual, que se ubica en 4.16. Sobre este resultado se puede presumir el mejor desempeño en los resultados de la predicción, no obstante, dicha conclusión deberá ser ratificada con los resultados del RMSE. Con este modelo, los resultados de la predicción son:
En este caso, los resultados de las predicciones son similares al modelo con dos variables y grado 1, es decir, la misma tendencia para las primeras observaciones y el caso de las predicciones por debajo de los datos reales para las últimas observaciones. Las diferencias en error estándar residual pueden obedecer a diferencias mínimas en grupos de observaciones y no cambios de tendencia relevantes en las predicciones.
No existen diferencias relevantes en los modelos de regresión local, es decir, la modificación del número de variables o el grado definido no es significativa en el desempeño del modelo, el error estándar residual estuvo entre 4.16 y 4.58 siendo el menor el alcanzado con el modelo de dos variables y grado 2. No se observan cambios en los resultados al modificar los grados en la regresión local mientras que si se observa una leve diferencia al momento de eliminar una de las variables (lo que resulta positivo si se tiene en cuenta que a menos variable el modelo resulta menos complejo). Los resultados gráficos para cada regresión local se observan de esta forma:
Para las regresiones locales se observar valores de RMSE que están entre 3.93 y 4.53, siendo el modelo de dos variables 2 y de grado 1 el de menor RMSE. En todo caso la diferencia absoluta de los RMSE es de 600 dólares para el valor medio de las casas, esta diferencia no es significativa. En este caso, el modelo más simple (de los analizados) es el de menor error.