Configuración del ambiente de trabajo
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
##
## Please cite as:
## Hlavac, Marek (2022). stargazer: Well-Formatted Regression and Summary Statistics Tables.
## R package version 5.2.3. https://CRAN.R-project.org/package=stargazer
## ! Using an auto-discovered, cached token.
## To suppress this message, modify your code or options to clearly consent to
## the use of a cached token.
## See gargle's "Non-interactive auth" vignette for more details:
## <https://gargle.r-lib.org/articles/non-interactive-auth.html>
## ℹ The googlesheets4 package is using a cached token for
## 'juan.ceballoss@udea.edu.co'.
A continuación, se presenta el siguiente modelo sobre el precio de venta de una muestra aleatoria de 321 viviendas seleccionadas en un estado de USA (datos de corte transversal).
\[ \begin{equation} \label{eq1} \begin{split} precioventa_i = \beta_1 + \beta_2 tamaño\_lote_i + \beta_3 baños_i + \beta_4 Distancia\_incinerador_i + \beta_5 nu\_vecinos_i + \beta_6 Dist\_bus_i + \beta_7 dis\_centro_i + \\ \beta_8 nu\_alcobas_i + \beta_9 metros\_casa_i + \beta_{10} edad\_casa_i + \beta_{11} edad^2_i + \beta_{12} lejos\_sitios\_nocturnos_i + \mu_i\\ \end{split} \end{equation} \]
Donde:
\(nu\_vecinos_i\) = número de vecinos en la manzana
\[lejositiosnocturnos_i = \begin{cases} 1, & \text{si está lejos a sitios nocturnos de alto ruido} \\ 0, & \text{si no está lejos a sitios nocturnos de alto ruido} \end{cases} \]
## ✔ Reading from "precioviviendas321".
## ✔ Range 'Hoja 1'.
Las demás variables se describen por su nombre.
## [1] "edad_casa" "edad_cuadra" "nu_vecinos"
## [4] "dist_bus" "dist_centro" "precio_venta"
## [7] "alcobas" "metros_casa" "tamaño_lote"
## [10] "baños" "distancia_incinerador" "lejos_sitios_nocturnos"
La relación parabólica entre precio y edad es que las casas muy nuevas son muy costosas, pero las casas muy viejas también pueden ser muy costosas (una parábola abriéndose hacia arriba).
## [1] 32
##
## Call:
## lm(formula = precio_venta ~ tamaño_lote + baños + distancia_incinerador +
## nu_vecinos + dist_bus + dist_centro + alcobas + metros_casa +
## edad_casa + I(edad_casa^2) + lejos_sitios_nocturnos, data = data1[-r,
## ])
##
## Residuals:
## Min 1Q Median 3Q Max
## -88.430 -11.305 -0.092 10.876 82.319
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -5.40246663 13.76070141 -0.393 0.69492
## tamaño_lote 0.00034455 0.00005947 5.794 0.0000000186578 ***
## baños 8.80804710 3.03068302 2.906 0.00395 **
## distancia_incinerador 0.00134130 0.00079293 1.692 0.09185 .
## nu_vecinos -1.04525519 0.65460409 -1.597 0.11146
## dist_bus -1.46815750 1.83784624 -0.799 0.42506
## dist_centro -0.00042960 0.00126564 -0.339 0.73454
## alcobas 3.87306654 1.93697316 2.000 0.04653 *
## metros_casa 0.01927213 0.00273028 7.059 0.0000000000135 ***
## edad_casa -0.76037338 0.15358929 -4.951 0.0000012867077 ***
## I(edad_casa^2) 0.00327957 0.00093814 3.496 0.00055 ***
## lejos_sitios_nocturnos 35.54859243 2.70298103 13.152 < 0.0000000000000002 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 21.91 on 277 degrees of freedom
## Multiple R-squared: 0.7451, Adjusted R-squared: 0.7349
## F-statistic: 73.6 on 11 and 277 DF, p-value: < 0.00000000000000022
\(nu\_vecinos\). Dado que \(p\)-valor \(= 0.11146 > 0.05\), no se rechaza la hipótesis nula (\(H_0\)) de que el número de vecinos no afecta el precio de la vivienda. Esto indica que la variable \(nu\_vecinos\) no es significativa y, si bien su interpretación no cobra mucho sentido, en promedio, manteniendo todo lo demás constante, por cada vecino adicional, el precio de la vivienda disminuye en -1.05 dólares aproximadamente.
\(metros\_casa\). Dado que \(p\)-valor \(= 0.0000000000135 < 0.05\), se rechaza la hipótesis nula (\(H_0\)) de que los metros cuadrados de la casa no afectan el precio de la vivienda. Esto indica que la variable \(metros\_casa\) es significativa y, en promedio, manteniendo todo lo demás constante, por cada metro cuadrado adicional, el precio de la vivienda aumenta en 0.02 dólares aproximadamente.
\(lejos\_sitios\_nocturnos\). Dado que \(p\)-valor \(= 0.0000000000000002 > 0.05\), se rechaza la hipótesis nula (\(H_0\)): la variable \(lejos\_sitios\_nocturnos\) tiene incidencia significativa en el precio de la vivienda. Esto sugiere que las viviendas situada lejos de sitios nocturnos, cuestan, en promedio, 35.55 dólares más aproximadamente con respecto a las que están situadas cerca de sitios nocturnos, manteniendo todo lo demás constante.
\(dist\_centro\). Dado que \(p\)-valor \(= 0.73454 > 0.05\), no se rechaza la hipótesis nula (\(H_0\)): la variable \(dist\_centro\) no tiene incidencia significativa en el precio de la vivienda. Esto indica que no tendría mucho sentido su análisis, sin embargo, manteniendo todo lo demás constante, por cada kilómetro (o milla) adicional de distancia de la vivienda al centro, el precio de la vivienda disminuye en promedio -0.0004 dólares.
Como se mencionó anteriormente, la variable \(lejos\_sitios\_nocturnos\), que es una variable dicótoma, en el modelo, presenta un \(p\):valor \(= 0.0000000000000002 > 0.05\), es decir, se rechaza la hipótesis nula (\(H_0\)): de que la variable no es estadísticamente significativa para el modelo, o sea que no es importante a la hora de predecir el valor de la casa. En este caso, como se rechaza (\(H_0\)), la variable \(lejos\_sitios\_nocturnos\) tiene incidencia significativa en el precio de la vivienda. Esto sugiere que las viviendas situadas lejos de sitios nocturnos, cuestan, en promedio, 35.55 dólares más aproximadamente con respecto a las que están situadas cerca de sitios nocturnos, manteniendo todo lo demás constante.
El \(R^2\) es de 0.7451, lo que indica que el modelo explica aproximadamente el 74.51% de la variabilidad del precio de venta de las viviendas. El modelo tiene una decente (por no decir ‘buena’) capacidad para explicar las diferencias entre los precios de las viviendas basado en las variables explicativas incluidas.
Dado que \(p\)-valor-global \(= 0.00000000000000022 < 0.05\), se rechaza la hipótesis nula (\(H_0\)): al menos uno de los coeficientes, en este caso son siete (\(\beta_1\), \(\beta_2\), \(\beta_7\), \(\beta_8\), \(\beta_9\), \(\beta_{10}\) y \(\beta_{11}\)), entonces es significativo el modelo.
Se desea investigar si el \(nu\_vecinos\) es relevante para la explicación (predicción) del precio de las viviendas en USA.
Prueba de Hipótesis:
Dado que \(p\)_valor \(= 0.11146 > 0.05\), no se rechaza la hipótesis nula (\(H_0\)) de que el número de vecinos no afecta el precio de la vivienda. Esto indica que la variable \(nu\_vecinos\) no es significativa o relevante para explicar (predecir) el precio de la vivienda.
Se desea investigar si el \(metros\_casa\) es relevante para la explicación (predicción) del precio de las viviendas en USA.
Prueba de Hipótesis:
Dado que \(p\)-valor \(= 0.0000000000135 < 0.05\), se rechaza la hipótesis nula (\(H_0\)) de que los metros cuadrados de la casa no afectan el precio de la vivienda. Esto indica que la variable \(metros\_casa\) es significativa y ayuda a explicar (predecir) el precio de las viviendas.
Se desea investigar si estar \(lejos\_sitios\_nocturnos\) es relevante para la explicación (predicción) del precio de las viviendas en USA.
Prueba de Hipótesis:
Dado que \(p\)-valor \(= 0.0000000000000002 > 0.05\), se rechaza la hipótesis nula (\(H_0\)): la variable \(lejos\_sitios\_nocturnos\) tiene incidencia significativa en el precio de la vivienda es decir que la variable puede ayudar a predecir (explicar) el precio de la vivienda.
Se desea investigar si \(dist\_centro\) es relevante para la explicación (predicción) del precio de las viviendas en USA.
Prueba de Hipótesis:
Dado que \(p\)-valor \(= 0.73454 > 0.05\), no se rechaza la hipótesis nula (\(H_0\)): la variable \(dist\_centro\) no tiene incidencia significativa en el precio de la vivienda.
## [1] 12
## [1] "El total de datos para la prueba es de: 12"
## [1] 27.33
El valor del MAPE (Mean Absolute Percentage Error) es de 27.33% indicando que, en promedio, las predicciones del modelo se desvían un 27.33% del valor real, por ejemplo, si el precio real de una vivienda es, \(100,000\) US, la predicción del modelo podría estar desviada en un rango de aproximadamente \(27,033\) US hacia arriba o hacia abajo. Esto indica que hay una cantidad significativa de incertidumbre en las predicciones del modelo del precio de venta de las viviendas.
##
## Call:
## lm(formula = precio_venta ~ tamaño_lote + baños + distancia_incinerador +
## nu_vecinos + dist_bus + dist_centro + alcobas + metros_casa +
## edad_casa + I(edad_casa^2) + lejos_sitios_nocturnos + I(metros_casa *
## lejos_sitios_nocturnos), data = data1[-r, ])
##
## Residuals:
## Min 1Q Median 3Q Max
## -98.643 -10.671 0.121 10.256 84.710
##
## Coefficients:
## Estimate Std. Error t value
## (Intercept) 2.72704928 14.20673977 0.192
## tamaño_lote 0.00036802 0.00006014 6.120
## baños 9.26418293 3.01965132 3.068
## distancia_incinerador 0.00140405 0.00078858 1.780
## nu_vecinos -1.18905138 0.65410354 -1.818
## dist_bus -1.67779561 1.82916264 -0.917
## dist_centro -0.00031659 0.00125894 -0.251
## alcobas 3.84636521 1.92502300 1.998
## metros_casa 0.01440213 0.00356060 4.045
## edad_casa -0.74641044 0.15278150 -4.885
## I(edad_casa^2) 0.00332169 0.00093254 3.562
## lejos_sitios_nocturnos 18.63294814 8.44662382 2.206
## I(metros_casa * lejos_sitios_nocturnos) 0.00814811 0.00385742 2.112
## Pr(>|t|)
## (Intercept) 0.847919
## tamaño_lote 0.0000000032 ***
## baños 0.002369 **
## distancia_incinerador 0.076098 .
## nu_vecinos 0.070174 .
## dist_bus 0.359814
## dist_centro 0.801638
## alcobas 0.046688 *
## metros_casa 0.0000679994 ***
## edad_casa 0.0000017509 ***
## I(edad_casa^2) 0.000433 ***
## lejos_sitios_nocturnos 0.028211 *
## I(metros_casa * lejos_sitios_nocturnos) 0.035557 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 21.78 on 276 degrees of freedom
## Multiple R-squared: 0.7491, Adjusted R-squared: 0.7382
## F-statistic: 68.68 on 12 and 276 DF, p-value: < 0.00000000000000022
En este nuevo modelo, el coeficiente \(\beta_{10}\) que pertenece a la variable \(metros_casa\) indica que, en promedio, cuando la propiedad incrementa 1 metro cuadrado su tamaño, su valor ascenderá 0.015 dólates, manteniendo todo lo demás constante.
Por otro lado, una vivienda alejada de sitios nocturnos, cuesta, en promedio, 18.63 dólares más que una vivienda que está ubicada cerca de sitios nocturnos, manteniendo todo lo demás constante.
Ahora bien, para las casas que están \(lejos_sitios_nocturnos\) es decir \(lejos\_sitios\_nocturnos = 1\), el efecto total de la variable \(metros\_casa\) es \(0.0144 + 0.0081 = 0.0225\) que significa que, por cada metro adicional, para una vivienda alejada de sitios nocturnos, el valor promedio es 0.0225 dólares más, manteniendo todo lo demás constante. Cuando la variable es \(lejos\_sitios\_nocturnos = 1\) que significa que la vivienda no está alejada de sitios nocturnos, el valor es 0.014 ya que la variable multiplicativa \(lejos\_sitios\_nocturnos*metros\_casa\) se anularía.
La variable \(I(metros\_casa * lejos\_sitios\_nocturnos)\) es significativa ya que su \(p\)_valor es 0.035557 que es menor a 0.05 que indica rechazo de la (\(H_0\)) que sería que la variable no tiene incidencia en el modelo.
## [1] "AIC del modelo 1: 2618.16"
## [1] "AIC del modelo 1_1: 2615.53"
Teniendo en cuenta los resultados, el AIC es mejor, no por mucho, en el nuevo modelo que incluye la variable multiplicativa \(lejos\_sitios\_nocturnos*metros\_casa\)
## [1] 73.49416
## [1] 73.82134
Teniendo en cuenta los resultados, el \(R^2\) es mejor en el nuevo modelo ya que incluso mejora el poder predictivo del modelo, no por mucho, cuando se incluye la variable multiplicativa \(lejos\_sitios\_nocturnos*metros\_casa\)
Se prefiere el modelo que incluye la variable multiplicativa, no sólo por las métricas de los modelos, sino que también éste último está aportando un poco más de interpretabilidad para el problema de negocio. Es decir, de algún modo, se pudiera usar la variable multiplicativa para tomar una decisión o explicar a alguien porqué podría ser mejor o no ó, si vale la pena o no, comprar una vivienda en dadas características.
Los gráficos muestran dispersión en ambos modelos a lo largo de las
observaciones
En los gráfico se puede observar la existencia de cierto patrón, aunque muy disperso, por lo que no dice mucho acerca de la existencia de la heterocedasticidad en el modelo de regresión.
Se desea investigar si los modelos presentan Heteroscedasticidad.
Prueba de Hipótesis:
## Cargando paquete requerido: zoo
##
## Adjuntando el paquete: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
##
## studentized Breusch-Pagan test
##
## data: modelo1
## BP = 80.013, df = 11, p-value = 0.000000000001467
## [1] "_________"
## [1] "_________"
##
## studentized Breusch-Pagan test
##
## data: modelo1_1
## BP = 98.989, df = 12, p-value = 0.0000000000000008781
Dado que ambos \(p\)_valor \(= 0.0000000 < 0.05\), se rechaza la hipótesis nula (\(H_0\)) y se concluye que el modelo presenta heteroscedasticidad.
##
## Call:
## lm(formula = precio_venta ~ tamaño_lote + baños + distancia_incinerador +
## nu_vecinos + dist_bus + dist_centro + alcobas + metros_casa +
## edad_casa + I(edad_casa^2) + lejos_sitios_nocturnos, data = data1[-r,
## ])
##
## Residuals:
## Min 1Q Median 3Q Max
## -88.430 -11.305 -0.092 10.876 82.319
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -5.40246663 13.76070141 -0.393 0.69492
## tamaño_lote 0.00034455 0.00005947 5.794 0.0000000186578 ***
## baños 8.80804710 3.03068302 2.906 0.00395 **
## distancia_incinerador 0.00134130 0.00079293 1.692 0.09185 .
## nu_vecinos -1.04525519 0.65460409 -1.597 0.11146
## dist_bus -1.46815750 1.83784624 -0.799 0.42506
## dist_centro -0.00042960 0.00126564 -0.339 0.73454
## alcobas 3.87306654 1.93697316 2.000 0.04653 *
## metros_casa 0.01927213 0.00273028 7.059 0.0000000000135 ***
## edad_casa -0.76037338 0.15358929 -4.951 0.0000012867077 ***
## I(edad_casa^2) 0.00327957 0.00093814 3.496 0.00055 ***
## lejos_sitios_nocturnos 35.54859243 2.70298103 13.152 < 0.0000000000000002 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 21.91 on 277 degrees of freedom
## Multiple R-squared: 0.7451, Adjusted R-squared: 0.7349
## F-statistic: 73.6 on 11 and 277 DF, p-value: < 0.00000000000000022
##
## Call:
## lm(formula = precio_venta ~ tamaño_lote + baños + distancia_incinerador +
## nu_vecinos + dist_bus + dist_centro + alcobas + metros_casa +
## edad_casa + I(edad_casa^2) + lejos_sitios_nocturnos + I(metros_casa *
## lejos_sitios_nocturnos), data = data1[-r, ])
##
## Residuals:
## Min 1Q Median 3Q Max
## -98.643 -10.671 0.121 10.256 84.710
##
## Coefficients:
## Estimate Std. Error t value
## (Intercept) 2.72704928 14.20673977 0.192
## tamaño_lote 0.00036802 0.00006014 6.120
## baños 9.26418293 3.01965132 3.068
## distancia_incinerador 0.00140405 0.00078858 1.780
## nu_vecinos -1.18905138 0.65410354 -1.818
## dist_bus -1.67779561 1.82916264 -0.917
## dist_centro -0.00031659 0.00125894 -0.251
## alcobas 3.84636521 1.92502300 1.998
## metros_casa 0.01440213 0.00356060 4.045
## edad_casa -0.74641044 0.15278150 -4.885
## I(edad_casa^2) 0.00332169 0.00093254 3.562
## lejos_sitios_nocturnos 18.63294814 8.44662382 2.206
## I(metros_casa * lejos_sitios_nocturnos) 0.00814811 0.00385742 2.112
## Pr(>|t|)
## (Intercept) 0.847919
## tamaño_lote 0.0000000032 ***
## baños 0.002369 **
## distancia_incinerador 0.076098 .
## nu_vecinos 0.070174 .
## dist_bus 0.359814
## dist_centro 0.801638
## alcobas 0.046688 *
## metros_casa 0.0000679994 ***
## edad_casa 0.0000017509 ***
## I(edad_casa^2) 0.000433 ***
## lejos_sitios_nocturnos 0.028211 *
## I(metros_casa * lejos_sitios_nocturnos) 0.035557 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 21.78 on 276 degrees of freedom
## Multiple R-squared: 0.7491, Adjusted R-squared: 0.7382
## F-statistic: 68.68 on 12 and 276 DF, p-value: < 0.00000000000000022
En ambos modelos los coeficientes han cambiado y ahora las inferencias podrían ser más precisas.
Gracias al gráfico se observa que la distribución de los errores tiene varios valores atípicos
## Cargando paquete requerido: carData
##
## Adjuntando el paquete: 'car'
## The following object is masked from 'package:dplyr':
##
## recode
## StudRes Hat CookD
## 114 5.561971 0.4577258 1.81208961
## 119 1.126612 0.2769781 0.03736591
## 180 -5.232479 0.1788076 0.41857221
Se observa que hay presencia de valores atípicos sin embargo en el marco del problema de negocio podría ser normal ya que hay casas que normalmente rondan cierto valor sin embargo habrá otras con mejores condiciones que valgan muchísimo más. A continuación se aplica la estimación robusta para que la inferencia mejore.
## Cargando paquete requerido: fit.models
##
## Robust Regression with Bisquare Function
## Convergence achieved after: 25 iterations
## source SS df MS F
## model 287730.7 12 23977.56 104.89
## error 41770.1 276
## tot 329500.8 288
## rsquared 0.873
## mse 151.3409
##
## Coefficients:
## estimate std error t value
## (Intercept) 23.76980555478 10.93472222610 2.17
## tamaño_lote 0.00002395200 0.00005956006 0.40
## baños 7.83707056636 2.28259215216 3.43
## distancia_incinerador 0.00038486298 0.00061492527 0.63
## nu_vecinos -0.76611535181 0.48421605439 -1.58
## dist_bus -0.40904546256 1.35514436841 -0.30
## dist_centro -0.00004700045 0.00091686931 -0.05
## alcobas 2.56258849189 1.45027201426 1.77
## metros_casa 0.01349567074 0.00274356174 4.92
## edad_casa -0.73086647056 0.11368804279 -6.43
## I(edad_casa^2) 0.00317686842 0.00070991657 4.47
## lejos_sitios_nocturnos 1.46120939580 6.47710925201 0.23
## I(metros_casa * lejos_sitios_nocturnos) 0.01609092203 0.00302981235 5.31
## p value
## (Intercept) 0.03057
## tamaño_lote 0.68789
## baños 0.00069
## distancia_incinerador 0.53192
## nu_vecinos 0.11475
## dist_bus 0.76300
## dist_centro 0.95915
## alcobas 0.07834
## metros_casa 0.00000
## edad_casa 0.00000
## I(edad_casa^2) 0.00001
## lejos_sitios_nocturnos 0.82168
## I(metros_casa * lejos_sitios_nocturnos) 0.00000
Es interesante ver como los nuevos resultados muestran que el tamaño del lote no es una variable significativa pero llama la atención aún más el hecho de que su coeficiente ahora es 0. La consistencia en los signos de los coeficientes se mantiene aunque si se observa la variable dicótoma lejos de sitios nocturnos ahora no es significativa para el modelo.
No se logra una aplicación del modelo de Huber, se manifiesta el mismo error que se tuvo en clase.