Paola Andrea León Acosta
Cargue de la base de datos:
library(readxl)
options(scipen=999)
datos = read_excel("C:/Users/paolaleon12/Documents/Maestria Ciencia de datos/Semestre I/Metodos y simulacion estadistica/Unidad 3/datos_vivienda.xlsx")
names(datos)
## [1] "Area_contruida" "precio_millon"
attach(datos)
1. Realice un análisis exploratorio de las variables precio de vivienda (millones de pesos COP) y area de la vivienda (metros cuadrados) - incluir graficos e indicadores apropiados interpretados.
En las gráficas A y B se puede identificar que el precio de las viviendas tiene una mayor concentración en los precios de COP 250 a COP 400 millones, esta distribución tiene una asimetría positiva que indica que hay pocos apartamentos con precios de vivienda superiores a los COP 400 millones de pesos. El promedio del precio de las viviendas es de COP 332 millones que al comparar con la mediana que corresponde a COP 305 millones, nos indica la afectación de este promedio por los valores extremos del precio de vivienda de la muestra; esto también se puede validar con la desviación estándar que es de COP 82 millones, y que nos demuestra que la distribución tiene un sesgo positivo.
En cuanto a los metros de área construida, se puede observar en los gráficos C y D que esta variable también tiene una asimetría positiva. La mayoría de las viviendas tienen un área construida de 85 a 130 metros cuadrados, con un promedio de 116 metros cuadrados y una desviación estándar de 35.5 metros, lo que nos indica que hay viviendas con valores extremos a la muestra con metros cuadrados mayores a los 130 metros cuadrados. Se podría hacer un análisis preliminar de estas variables, donde se podría concluir que los valores más altos de los precios de vivienda corresponden a los apartamentos con mayor área construida.
require(ggplot2)
## Loading required package: ggplot2
require(ggpubr)
## Loading required package: ggpubr
g1=ggplot(datos,aes(x=precio_millon))+geom_histogram(bins=30)+theme_bw()
g3=ggplot(datos, aes(x=precio_millon))+geom_boxplot(width=0.5)+theme_bw()
g2=ggplot(datos,aes(x=Area_contruida))+geom_histogram(bins=30)+theme_bw()
g4=ggplot(datos, aes(x=Area_contruida))+geom_boxplot(width=0.5)+theme_bw()
ggarrange(g1, g3, g2, g4, labels = c("A", "B", "C", "D"),ncol = 2, nrow = 2)
y <- table1::table1(~precio_millon+Area_contruida, data = datos)
y
| Overall (N=26) |
|
|---|---|
| precio_millon | |
| Mean (SD) | 332 (82.1) |
| Median [Min, Max] | 305 [240, 480] |
| Area_contruida | |
| Mean (SD) | 116 (35.5) |
| Median [Min, Max] | 97.0 [80.0, 195] |
2. Realice un análisis exploratorio bivariado de datos enfocado en la relación entre la variable respuesta (y=precio) en función de la variable predictora (x=area) - incluir graficos e indicadores apropiados interpretados
En el gráfico de dispersión se puede identificar una relación lineal directa entre el precio de las viviendas y el área construida; sin embargo, esta relación disminuye en algunos valores extremos del precio de vivienda y de metros cuadrados, por lo tanto al final se identifica una forma hiperbólica en este gráfico de dispersión. Esto se puede presentar por otras variables que pueden incidir en el precio de la vivienda, por ejemplo, la localidad o la antigüedad de la vivienda, pero en este análisis nos centraremos en solo un análisis bivariado. De acuerdo con el coeficiente de correlación que corresponde a 91.9%, que el precio de la vivienda y el área construida tienen una relación lineal positiva fuerte.
Gráfico de dispersión
g3=ggplot(datos,aes(y=precio_millon,x=Area_contruida))+geom_point()+theme_bw()+geom_smooth()
g3
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
Coeficiente de correlación
cor(y=datos$precio_millon,x=datos$Area_contruida)
## [1] 0.9190295
3. Estime el modelo de regresión lineal simple entre precio = f(area) +e. Interprete los coeficientes del modelo β0, β1 en caso de ser correcto.
De acuerdo con el P-valor, se rechaza la hipótesis nula con un 95% de confianza, lo que nos indica que la variable área construida es significativa, y que el precio de las viviendas si depende de esta variable.
Se tiene que 𝑎= 86.23. Este resultado indica que: - Con un área construida de 0, el precio esperado de la vivienda seria de COP 86 millones. Es decir, que este es el costo inicial de la vivienda.
Se tiene que 𝑏= 2.124. Este resultado indica que: - Por cada metro adicional construido se espera un aumento en 2.12 millones en el precio de la vivienda.
modelo1=lm(precio_millon~Area_contruida)
summary(modelo1)
##
## Call:
## lm(formula = precio_millon ~ Area_contruida)
##
## Residuals:
## Min 1Q Median 3Q Max
## -51.673 -25.612 -6.085 24.875 67.650
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 86.234 22.479 3.836 0.000796 ***
## Area_contruida 2.124 0.186 11.422 0.0000000000345 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 33.05 on 24 degrees of freedom
## Multiple R-squared: 0.8446, Adjusted R-squared: 0.8381
## F-statistic: 130.5 on 1 and 24 DF, p-value: 0.0000000000345
4. Construir un intervalo de confianza (95%) para el coeficiente β1, interpretar y concluir si el coeficiente es igual a cero o no. Compare este resultado con una prueba de hipotesis t.
El intervalo de confianza para 𝑏 es de COP 1.74017 a COP 2.50777. Este intervalo no contiene el valor de 0. Por lo tanto, se puede inferir que con un 95% de confianza se puede rechazar la hipótesis nula, e inferir que la variable área construida si es significativa, y que el precio de las viviendas si depende de esta variable. Es decir, que a una mayor área construida, el precio de la vivienda será mayor. Este es el mismo resultado que se obtuvo en la prueba T de significancia de la regresión lineal, donde el P.Valor es menor al 5%, y se rechaza la hipotesis nula de que el parámetro𝑏es igual a 0.
confint(modelo1,1,0.95)
## 2.5 % 97.5 %
## (Intercept) 39.83983 132.6279
confint(modelo1,2,0.95)
## 2.5 % 97.5 %
## Area_contruida 1.74017 2.507771
5. Calcule e interprete el indicador de bondad y ajuste R2.
De acuerdo con el coeficiente de determinación ajustado, se puede concluir que el modelo explica en 83.81% la variabilidad del precio de las viviendas. Este coeficiente indica que el modelo se ajusta bien a los datos, y que es un modelo confiable y tendría un buen desempeño para futuras predicciones.
summary(modelo1)$adj.r.squared
## [1] 0.8381408
6. Cual seria el precio promedio estimado para un apartamento de 110 metros cuadrados? Considera entonces con este resultado que un apartamento en la misma zona con 110 metros cuadrados en un precio de 200 millones seria una buena oferta? Que consideraciones adicionales se deben tener?.
En base al primer modelo, se estima que el precio para un apartamento con un área construida de 110 metros cuadrados seria de COP 319 millones. Con un nivel de confianza del 95%, el precio para un apartamento de 110 mentros estaría en el rango de COP 306 a COP 333 millones.
En cuanto a la segunda pregunta, si se podría considerar como una buena oferta un apartamento de 110 metros cuadrados con un precio de COP 200 millones; sin embargo, se deben considerar otras variables que pueden incidir en el precio de la vivienda, y en la decisión de compra, como lo son la antigüedad del edificio, el acceso al apartamento, el número de parqueaderos y demás características.
También se debe considerar lo descrito en el análisis bivariado ya que este modelo se desarrollo con algunos datos sesgados que pueden afectar la predicción del precio de los apartamentos. Es decir, que se puede estar sobreestimando el precio del apartamento con un área construida de 110 metros cuadrados.
predict(modelo1,newdata = list(Area_contruida=110),interval = "confidence")
## fit lwr upr
## 1 319.8706 306.3133 333.4279
7. Realice la validación de supuestos del modelo por medio de graficos apropiados, interpretarlos y sugerir posibles soluciones si se violan algunos de ellos.
Media cero: En la primera gráfica se observa que los errores no tienen un comportamiento aleatorio con media cero.
varianza constante: En esta misma gráfica se identifica un aumento de la varianza, por lo tanto, se puede inferir que los errores no cumplen con la propiedad de varianza constante.
Independencia: No es necesario revisar este supuesto, ya que los datos son de corte transversal, es decir que los datos no varían en el tiempo.
Normalidad: De acuerdo con el segundo gráfico, se identifica que los errores en su mayoría siguen una distribución normal; sin embargo, para algunos datos extremos se evidencia que se alejan de la línea de normalidad.
En base a la validación de supuestos descrita anteriormente, se decide hacer una transformación a las variables, con el fin de ajustar el modelo de regresión lineal y así tener un mejor rendimiento en la validación de los supuestos de los errores.
par(mfrow=c(2,2))
plot(modelo1)
8. De ser necesario realice una transformación apropiada para mejorar el ajuste y supuestos del modelo.
Se decide hacer transformación hiperbólica a la variable dependiente (w=1/x) con el fin de mejorar el modelo de regresión lineal, ya que como se mencionó anteriormente en el gráfico de dispersión se identificaba una relación hiperbólica en los valores extremos del precio de vivienda y de área construida. El modelo obtenido demuestra que la variable área construida con la transformación sigue siendo significativa para predecir el precio de la vivienda.
w=1/Area_contruida
modelo2=lm(precio_millon~w)
summary(modelo2)
##
## Call:
## lm(formula = precio_millon ~ w)
##
## Residuals:
## Min 1Q Median 3Q Max
## -36.987 -16.743 -5.023 18.547 44.379
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 635.35 18.27 34.77 < 0.0000000000000002 ***
## w -32464.72 1895.32 -17.13 0.00000000000000584 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 23.05 on 24 degrees of freedom
## Multiple R-squared: 0.9244, Adjusted R-squared: 0.9212
## F-statistic: 293.4 on 1 and 24 DF, p-value: 0.000000000000005839
9. De ser necesario compare el ajuste y supuestos del modelo inicial y el transformado.
Con la transformación realizada, se mejora el coeficiente de determinación con respecto al primer modelo, con un valor de R2 ajustado de 92.12%. También se identifica en el primer gráfico que se cumple con el supuesto de aleatoriedad (media cero y varianza constante) de los errores. Así mismo, en el segundo gráfico también se ve un mejor rendimiento en el supuesto de normalidad de los errores para los datos extremos.
Coeficiente de determinación ajustado
summary(modelo2)$adj.r.squared
## [1] 0.9212346
Validación de supuestos de los errores
par(mfrow=c(2,2))
plot(modelo2)