1 Introducción

Este documento presenta un caso de estudio para ejemplificar como se construye e interpreta un modelo de regresión lineal, utilizando R como lenguaje de análisis de datos.

Se asume que existe un conocimiento previo de estadística básica y un nivel básico de manejo del lenguaje R.

El ejemplo usa las siguientes librerías:



2 Contexto: Valuación de bienes raíces

Se obtuvieron datos históricos del mercado de bienes raíces del distrito Sindian en la ciudad de Nueva Taipei, en Taiwan. Las características son:

  • edad: Edad de la propiedad (en años).
  • distancia: La distancia a la estación de transporte MRT más cercana (en metros).
  • tiendas: Cantidad de tiendas de conveniencia en las cercanías a una distancia realizable a pie.
  • latitud: Latitud de la ubicación de la propiedad (en grados).
  • longitud: Longitud de la ubicación de la propiedad (en grados).
  • precio: Precio por Ping (múltiplos de 10000 dólares de Nueva Taiwan - un Ping es una unidad de área equivalente a 3.3 metros cuadrados)

Queremos averiguar si el precio de las propiedades puede ser estimado (predicho) a partir de alguna o algunas de las demás variables,

Descarga el archivo de datos aquí


Los datos fueron tomados del UCI Machine Learning Repository (https://archive.ics.uci.edu/ml/datasets/Real+estate+valuation+data+set) y fueron adaptados para este ejemplo.

Referencia: Yeh, I. C., & Hsu, T. K. (2018). Building real estate valuation models with comparative approach through case-based reasoning. Applied Soft Computing, 65, 260-271.



3 Limpieza y preparación de los datos

Primero se identifican las características de los datos que se analizarán:

Variable Tipo Subtipo Nivel de medición
edad Cuantitativa Continua De Razón
distancia Cuantitativa Continua De Razón
tiendas Cuantitativa Discreta De Razón
latitud Cuantitativa Continua De Razón
longitud Cuantitativa Continua De Razón
precio Cuantitativa Continua De Razón

Se cargan los datos y se verifica que el tipo de R sea consistente con las características indicadas:

## 'data.frame':    414 obs. of  6 variables:
##  $ edad     : num  32 19.5 13.3 13.3 5 7.1 34.5 20.3 31.7 17.9 ...
##  $ distancia: num  84.9 306.6 562 562 390.6 ...
##  $ tiendas  : int  10 9 5 5 5 3 7 6 1 3 ...
##  $ latitud  : num  25 25 25 25 25 ...
##  $ longitud : num  122 122 122 122 122 ...
##  $ precio   : num  37.9 42.2 47.3 54.8 43.1 32.1 40.3 46.7 18.8 22.1 ...

Se observa que R clasificó las variables como num o int, lo que es correcto con base en el nivel de medición.

Obtenemos el resumen básico de las variables.

##       edad          distancia          tiendas          latitud     
##  Min.   : 0.000   Min.   :  23.38   Min.   : 0.000   Min.   :24.93  
##  1st Qu.: 9.025   1st Qu.: 289.32   1st Qu.: 1.000   1st Qu.:24.96  
##  Median :16.100   Median : 492.23   Median : 4.000   Median :24.97  
##  Mean   :17.713   Mean   :1083.89   Mean   : 4.094   Mean   :24.97  
##  3rd Qu.:28.150   3rd Qu.:1454.28   3rd Qu.: 6.000   3rd Qu.:24.98  
##  Max.   :43.800   Max.   :6488.02   Max.   :10.000   Max.   :25.01  
##     longitud         precio      
##  Min.   :121.5   Min.   :  7.60  
##  1st Qu.:121.5   1st Qu.: 27.70  
##  Median :121.5   Median : 38.45  
##  Mean   :121.5   Mean   : 37.98  
##  3rd Qu.:121.5   3rd Qu.: 46.60  
##  Max.   :121.6   Max.   :117.50

Se observa que todos los valores parecen ser correctos en función de su definición (por ejemplo, no hay distancias negativas), igualmente se observa que no hay datos faltantes ni datos vacíos.

Se checa si existen valores extremos (outliers).

Se observa que a excepción de edad y tiendas, las demás variables presentan valores extremos (outliers), sin embargo, el manejo de esta situación se discutirá más adelante.

A partir de este momento, procedemos a realizar los análisis de regresión lineal.



4 REGRESIÓN LINEAL SIMPLE

Procederemos a ejemplificar como se realiza y evalúa un modelo de regresión lineal simple.


4.1 Conceptos teóricos

En estadística, regresión lineal es un modelo matemático que busca explicar la relación entre un efecto o respuesta y una o más causas.

A la variable del efecto se le llama variable dependiente (y) y a la variable o variables de las causas se les llama variables explicativas o independientes (xi) y se asume que la relación entre las variables dependiente e independiente(s) es lineal. A partir de los datos, se estiman los parámetros del modelo.

El caso más sencillo es cuando existe únicamente una variable independiente y se denomina regresión lineal simple y el modelo se escribe:

y = \(\beta\)0 + \(\beta\)1 x

Los valores de los parámetros \(\beta\)0 y \(\beta\)1 son los que se estiman para encontrar el modelo adecuado a los datos analizados.

Existen varios supuestos para que sea válido usar regresión lineal simple:

  1. La relación entre las variables debe ser lineal (linealidad).
  2. Los residuales deben distribuirse normalmente con media cero (normalidad).
  3. La varianza de los residuales debe ser constante (homocedasticidad).
  4. Los residuales deben ser independientes entre sí (independencia).


4.2 Establecimiento de hipótesis

Queremos entender que factores afectan el precio que las personas están dispuestas a pagar por las propiedades y ya que estamos usando regresión lineal simple, debe existir una sola variable que esté relacionada con el precio.

Asumamos que la movilidad es un factor crítico para comprar estas propiedades, por lo tanto, la distancia a la estación de transporte MRT más cercana sería la variable explicativa a considerar.

Analicemos su comportamiento con una gráfica de dispersión (scatter plot).

Se observa una relación entre las variables, ya que conforme aumenta la distancia, el precio se reduce; obtengamos el coeficiente de correlación para tener una medida de la fuerza de asociación entre ambas variables.

## [1] -0.6736129

El signo negativo nos indica que la relación es inversa, es decir, una variable aumenta mientras que la otra disminuye (y viceversa), lo que confirma lo observado en la gráfica; el valor obtenido indica una correlación importante entre ambas variables.

La hipótesis es que el precio depende de distancia.


4.3 Construcción del modelo

En R se usa la función lm para crear un modelo de regresión lineal.

## 
## Call:
## lm(formula = precio ~ distancia, data = bienesraices)
## 
## Coefficients:
## (Intercept)    distancia  
##   45.851427    -0.007262

Obtenemos el detalle del modelo.

## 
## Call:
## lm(formula = precio ~ distancia, data = bienesraices)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -35.396  -6.007  -1.195   4.831  73.483 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 45.8514271  0.6526105   70.26   <2e-16 ***
## distancia   -0.0072621  0.0003925  -18.50   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 10.07 on 412 degrees of freedom
## Multiple R-squared:  0.4538, Adjusted R-squared:  0.4524 
## F-statistic: 342.2 on 1 and 412 DF,  p-value: < 2.2e-16

La columna Estimate indica el valor estimado de los parámetros del modelo; en el caso de regresión lineal simple, (Intercept) indica el punto donde la línea recta corta el eje Y (la ordenada al origen) mientras que el segundo estimado, distancia en este caso, indica la pendiente de la línea recta.

La columna t value indica el valor del estadístico t asociado a cada coeficiente, mientras que la columna Pr(>|t|) es el valor p correspondiente de la prueba de hipótesis; la hipótesis a validar es que el coeficiente es igual a cero, es decir, no tiene impacto en el fenómeno. Observamos que para ambos coeficientes, el valor p es menor a 0.05 por lo tanto, ambos coeficientes son diferentes de cero (estadísticamente significativos) para un nivel de confianza del 95%.

El valor Múltiple R-squared, conocido como coeficiente de determinación, indica la proporción del fenómeno que es explicado por el modelo de regresión; en este caso, 45.38% del comportamiento del precio es explicado por la distancia.

El valor F-statistic y p-value (valor p) corresponden a la prueba F del modelo de regresión que verifica la existencia de una relación lineal entre las variables, dado que el valor p es menor que 0.05, la interpretación es que el modelo es significativo con un nivel de confianza del 95%.

En este punto, se asume que el modelo es válido y explica una proporción aceptable del fenómeno.

##  (Intercept)    distancia 
## 45.851427058 -0.007262052

El modelo de regresión lineal simple para nuestro caso es:

y = \(\beta\)0 + \(\beta\)1 x

precio = 45.851427058 - 0.007262052 * distancia


4.4 Evaluación del modelo


4.4.1 Valores ajustados

Los valores ajustados (fitted values) son el valor de la variable de respuesta cuando se evalúan los valores de las variables predictoras en el modelo. Por ejemplo, para las primeras seis propiedades, los valores ajustados serían:

## [1] 45.23503 43.62492 41.77027 41.77027 43.01510 30.05625

En el modelo, estos valores están contenidos en la propiedad fitted.values:

##        1        2        3        4        5        6 
## 45.23503 43.62492 41.77027 41.77027 43.01510 30.05625


4.4.2 Residuales

Los residuales (residuals) son la diferencia entre el valor real y el valor ajustado, es decir, es el error que no es explicado por la línea de regresión. Por ejemplo, para las primeras seis observaciones, los residuales serían:

##           1           2           3           4           5           6 
## -7.33503269 -1.42492052  5.52973339 13.02973339  0.08490082  2.04375307

En el modelo, estos valores están contenidos en la propiedad residuals:

##           1           2           3           4           5           6 
## -7.33503269 -1.42492052  5.52973339 13.02973339  0.08490082  2.04375307


4.4.3 Gráficas de diagnóstico

El modelo obtenido en R contiene gráficas de diagnóstico para evaluar ciertos aspectos del mismo:

  • Residuales vs valores ajustados (residuals vs fitted values)
  • Gráfica de distribución normal (normal Q-Q)
  • Gráfica Escala-Ubicación (scale-location)
  • Residuales vs valor de palanca (residuals vs leverage)

En la primera gráfica, residuales vs valores ajustados, si el modelo predice adecuadamente los datos, los residuales deben observarse distribuidos de manera aleatoria alrededor de la línea punteada horizontal, es decir, no debe observarse un patrón sistemático. Si existe linealidad, la línea roja sólida roja debe ser horizontal y lineal. Si existe homocedasticidad, los residuales deben distribuirse parejo a lo largo de la línea y = 0. Para nuestro modelo, se observa que hay haber problemas con la linealidad y la homocedasticidad, ya que los residuales se agrupan.

En la segunda gráfica, de distribución normal, si los residuales se distribuyen normalmente, los puntos deben situarse a lo largo de la línea punteada. En nuestro caso, se observa que en general, los puntos siguen la línea sin embargo, al acercarse a la derecha, los puntos abandonan la línea recta, lo que implica un problema con la normalidad.

En la tercera gráfica, de escala-ubicación, si la varianza es constante (homocedasticidad) se debe observar una línea roja horizontal y los residuales deben estar distribuidos de manera constante a lo largo de ella. En nuestro caso, se observa que los residuales se concentran a la derecha de la gráfica, lo que indica que la varianza no es constante (heterocedasticidad) y esto contradice unos de los supuestos básicos para poder utilizar un modelo de regresión.

En la cuarta gráfica, residuales vs valor de palanca, sirve para encontrar las observaciones influyentes (leverage), Si no existen observaciones influyentes, no debe observarse una curva punteada roja, o en caso de verse ligeramente en las esquinas de la gráfica, no deben existir puntos en esa zona. En nuestro modelo, aunque se identifican ciertas observaciones (149, 250, 271), ninguna cruza la curva de distancia, por lo tanto no tenemos problema de valores influyentes.

También es posible desplegar las 4 gráficas combinadas.


4.4.4 Pruebas estadísticas

Es posible usar la función gvlma que aplica varias pruebas para verificar los supuestos para el modelo de regresión lineal.

## 
## Call:
## lm(formula = precio ~ distancia, data = bienesraices)
## 
## Coefficients:
## (Intercept)    distancia  
##   45.851427    -0.007262  
## 
## 
## ASSESSMENT OF THE LINEAR MODEL ASSUMPTIONS
## USING THE GLOBAL TEST ON 4 DEGREES-OF-FREEDOM:
## Level of Significance =  0.05 
## 
## Call:
##  gvlma(x = modelo) 
## 
##                        Value   p-value                   Decision
## Global Stat        1043.9332 0.000e+00 Assumptions NOT satisfied!
## Skewness            109.9943 0.000e+00 Assumptions NOT satisfied!
## Kurtosis            878.2889 0.000e+00 Assumptions NOT satisfied!
## Link Function        55.4943 9.370e-14 Assumptions NOT satisfied!
## Heteroscedasticity    0.1557 6.931e-01    Assumptions acceptable.
  • Global Stat: Rechazo de la hipótesis nula significa que no se cumple el supuesto de linealidad entre las variables.
  • Skewness: Rechazo de la hipótesis nula significa que no se cumple el supuesto de normalidad debido a una asimetría significativa.
  • Kurtosis: Rechazo de la hipótesis nula significa que no se cumple el supuesto de normalidad debido a una curtosis significativa.
  • Link Function: Rechazo de la hipótesis nula significa que el modelo de regresión lineal no es el más adecuado para el fenómeno estudiado.
  • Heteroscedasticy: Rechazo de la hipótesis nula significa que no se cumple el supuesto de **homocedasticidad*.


4.4.5 Valores extremos (outliers)

Para este punto, usamos la función outlierTest que detecta los valores extremos por medio de la prueba de Bonferroni.

##     rstudent unadjusted p-value Bonferroni p
## 271 7.827433         4.2664e-14   1.7663e-11

La observación 271 quedó identificada como valor extremo (outlier).


4.4.6 Ajustes al modelo

Existen diversas estrategias para corregir los problemas que presenta un modelo, una de ellas es eliminar los valores identificados en las gráficas, es decir, valores extremos y valores influyentes. Para nuestro modelo, eliminaremos las observaciones 114, 149, 250, 271 y 313, repitiendo todo el procedimiento.

## [1] -0.7130446
## 
## Call:
## lm(formula = precio ~ distancia, data = bienesraices.ajustado)
## 
## Coefficients:
## (Intercept)    distancia  
##   45.724787    -0.007405
## 
## Call:
## lm(formula = precio ~ distancia, data = bienesraices.ajustado)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -24.359  -5.638  -0.932   4.887  33.956 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 45.7247873  0.5891226   77.61   <2e-16 ***
## distancia   -0.0074046  0.0003609  -20.52   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 8.997 on 407 degrees of freedom
## Multiple R-squared:  0.5084, Adjusted R-squared:  0.5072 
## F-statistic:   421 on 1 and 407 DF,  p-value: < 2.2e-16

## 
## Call:
## lm(formula = precio ~ distancia, data = bienesraices.ajustado)
## 
## Coefficients:
## (Intercept)    distancia  
##   45.724787    -0.007405  
## 
## 
## ASSESSMENT OF THE LINEAR MODEL ASSUMPTIONS
## USING THE GLOBAL TEST ON 4 DEGREES-OF-FREEDOM:
## Level of Significance =  0.05 
## 
## Call:
##  gvlma(x = modelo.ajustado) 
## 
##                      Value   p-value                   Decision
## Global Stat        91.1703 0.000e+00 Assumptions NOT satisfied!
## Skewness           15.1171 1.010e-04 Assumptions NOT satisfied!
## Kurtosis           11.0580 8.830e-04 Assumptions NOT satisfied!
## Link Function      64.4997 9.992e-16 Assumptions NOT satisfied!
## Heteroscedasticity  0.4955 4.815e-01    Assumptions acceptable.

4.5 Conclusión

Con toda la información previa, aún después de hacer algunos ajustes, se concluye que no es válido el modelo encontrado ya que no se cumplen los supuestos necesarios.




5 Referencias

Ciaburro, G. (2018). Regression analysis with R. Packt Publishing.

Zumel, N; Mount, J. (2020), Practical data science with R. Manning Publications Co.



 

Dr. José Luis Barrera Canto

jose.luis.barrera.canto@gmail.com