Con base en los datos de ofertas de vivienda descargadas del portal Fincaraiz (datos_vivienda.xls - descarga) realizar los siguientes puntos:__
Realice un análisis exploratorio de las variables precio de vivienda (millones de pesos COP) y area de la vivienda (metros cuadrados) - incluir gráficos e indicadores apropiados interpretados.
# Librerias necesarias
library(readxl)
library(psych)
require(ggplot2)
require(plotly)
require(CGPfunctions)
# Cargue de datos
datos_vivienda3 <- read_excel("datos_vivienda-3.xlsx")
# Descripción de los datos
head(datos_vivienda3)
| Area_contruida | precio_millon |
|---|---|
| 86 | 250 |
| 118 | 385 |
| 130 | 395 |
| 181 | 419 |
| 86 | 240 |
| 98 | 320 |
summary(datos_vivienda3)
## Area_contruida precio_millon
## Min. : 80.0 Min. :240.0
## 1st Qu.: 86.0 1st Qu.:251.2
## Median : 97.0 Median :305.0
## Mean :115.7 Mean :332.1
## 3rd Qu.:130.0 3rd Qu.:395.0
## Max. :195.0 Max. :480.0
describe(datos_vivienda3)
| vars | n | mean | sd | median | trimmed | mad | min | max | range | skew | kurtosis | se | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Area_contruida | 1 | 26 | 115.7469 | 35.54332 | 97 | 112.2009 | 21.4977 | 80 | 195 | 115 | 0.8131524 | -0.7476076 | 6.970619 |
| precio_millon | 2 | 26 | 332.0769 | 82.14423 | 305 | 328.3636 | 96.3690 | 240 | 480 | 240 | 0.2381521 | -1.6177748 | 16.109808 |
attach(datos_vivienda3)
#area=datos_vivienda3$Area_contruida
#precio=datos_vivienda3$precio_millon
# Histograma variable X->Area construida
hist(Area_contruida, breaks=5, col="#336699", ylab="Frecuencia", xlab="Area", main="Histograma Area_Vivienda")
abline(v = mean(Area_contruida),col="red",lwd=4)
plot(density(Area_contruida), las=1, ylab = "Densidad", main = "")
# Histograma variable Y->Precio (millones)
hist(precio_millon, breaks=5, col="#336699", ylab="Frecuencia", xlab="Precio", main="Histograma Precio_Vivienda")
abline(v = mean(precio_millon),col="red",lwd=4)
plot(density(precio_millon), las=1, ylab = "Densidad", main = "")
Se obtienen los indicadores estadísticos de la muestra. Se observa una Desviación Estándar aceptable en ambas variables o series de datos. El Area presenta una Media =115.75 y una DS=35.54. El precio presenta una Media=332.08 y una DS=82.14.
En los histogramas construidos también se observa como dato interesante que el Area construida de las viviendas tiene mayor concentración en los primeros intervalos (6 rangos de 20) de la muestra; de ahi que la media se ubique hacia el extremo izquierdo del histograma. El precio presenta dos concentraciones notables hacia los intervalos extremos de la muestra (6 rangos de 50); de ahi que la media se ubique hacia el centro del histograma.
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 gráficos e indicadores apropiados interpretados.
g1=ggplot(data=datos_vivienda3,aes(y=precio_millon, x=Area_contruida))+geom_point()+geom_smooth()
ggplotly(g1)
Se construye un gráfico de dispersión y se observa una relación directa entre el Area construida y el Precio de la vivienda. Sin embargo, también se observa que no es propiamente una relación lineal sino que se vislumbra una posible relación o tendencia logarítmica.
Hipótesis: El Precio de la vivienda está directamente relaciónado con el Area construida.
Estime el modelo de regresión lineal simple entre precio = f(area)+e. Interprete los coeficientes del modelo B0; B1 en caso de ser correcto.
cor(Area_contruida,precio_millon)
## [1] 0.9190295
modelo=lm(precio_millon~Area_contruida,data=datos_vivienda3)
summary(modelo)
##
## Call:
## lm(formula = precio_millon ~ Area_contruida, data = datos_vivienda3)
##
## 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 3.45e-11 ***
## ---
## 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: 3.45e-11
Se plantea un Modelo Lineal Simple para el análisis de: El grado de correlación de las variables X y Y, el análisis de variabilidad de la variable respuesta Y, y verificar el grado de confiabilidad del modelo con miras a realizar estimaciones o predicciones.
1.- Se obtiene un Coeficiente de Correlación= 0.91 que muestra que las variables están fuertemente relaciónadas.
2.- Se obtiene un Coeficiente de Determinación R²= 0.8446 que indica que el modelo explica el 84.4 % de las variaciones de la variable respuesta Y. Es decir la recta de regresión tiene un ajuste Bueno frente a la realidad del caso bajo estudio. Aunque este valor es Bueno puede mejorarse; esto se analiza mas adelante en el punto de Validación de los supuestos del modelo.
3.- Se obtiene P-Valor que permite dar significancia estadistica y alto grado de confiabilidad al modelo.
4.- Se obtiene un coeficiente Beta1=2.12 que indica que por cada metro cuadrado de area el precio de la vivienda se incrementa en 2.12 millones de pesos.
Construir un intervalo de confianza (95%) para el coeficiente B1, interpretar y concluir si el coeficiente es igual a cero o no. Compare este resultado con una prueba de hipotesis t.
#Intervalo de Confianza
confint(object=modelo, level=0.95)
## 2.5 % 97.5 %
## (Intercept) 39.83983 132.627917
## Area_contruida 1.74017 2.507771
1.- El resultado obtenido para el modelo indica que con una confianza del 95%, el coeficiente β1 (Beta1) que representa la pendiente de la recta de regresión, se encuentra en el reango de valores entre 1.74 y 2.5. Este resultado apoya el valor encontrado en el modelo lineal anterior donde β1=2.12.
2.- Prueba de hipotesis t. Se establecen las siguientes hipotesis:
Hipotesis Nula H0: El coeficente β1 = 0. Esto implicaria que la pendiente de la recta es 0, es decir que no hay relación entre la variable predictora X y la variable respuesta Y.
Hipotesis altenativa H1: El coeficiente β1 ≠ 0. Esto implicaria que existe realmente una pendiente para la recta del modelo, es decir que si existe relacion entre las variables.
Resultado: Se encuentra un P-valor = 3.45e-11 , que es mucho mas pequeño que el valor convencional de α = 0.05. Lo cual implica que la hipotesis nula H0 puede ser rechazada, considerandose valida la Hipotesis Alternativa H1.
Calcule e interprete el indicador de bondad y ajuste R^2.
# 2.- Se obtiene un Coeficiente de Determinación R²= 0.8446 que indica que el modelo explica el 84.4 % de las variaciones de la variable respuesta Y. Es decir la recta de regresión tiene un ajuste Bueno frente a la realidad del caso bajo estudio.
¿Cuál sería 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 sería una buena oferta? ¿Qué consideraciones adicionales se deben tener?
predict(modelo,list(Area_contruida=110))
## 1
## 319.8706
Empleando el modelo lineal conseguido, se estima un Precio de 319 millones para una vivienda con area construida de 110 metros cuadrados.
Realice la validación de supuestos del modelo por medio de gráficos apropiados, interpretarlos y sugerir posibles soluciones si se violan algunos de ellos.
par(mfrow=c(2,2))
plot(modelo)
#### Análisis
Se observa que el gráfico de valores residuales versus valores ajustados, no presenta una distribución aleatoria sino que muestra una linea de tendencia. Esto indica que los residuos presentan una componente sistemática que el modelo debe ajustar. En el gráfico Q-Q de normalidad también se observa que los datos no se ajustan a la normal.
De ser necesario realice una transformación apropiada para mejorar el ajuste y supuestos del modelo.
# 1.- AJUSTE EXPONENCIAL
modelog1=lm(log(precio_millon)~Area_contruida,data=datos_vivienda3)
summary(modelog1)
##
## Call:
## lm(formula = log(precio_millon) ~ Area_contruida, data = datos_vivienda3)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.16503 -0.09255 -0.02221 0.08600 0.19822
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 5.048147 0.073371 68.80 < 2e-16 ***
## Area_contruida 0.006288 0.000607 10.36 2.46e-10 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1079 on 24 degrees of freedom
## Multiple R-squared: 0.8172, Adjusted R-squared: 0.8096
## F-statistic: 107.3 on 1 and 24 DF, p-value: 2.456e-10
par(mfrow=c(2,2))
plot(modelog1)
# 1.- AJUSTE LOGARITMICO
modelog2=lm(precio_millon~log(Area_contruida),data=datos_vivienda3)
summary(modelog2)
##
## Call:
## lm(formula = precio_millon ~ log(Area_contruida), data = datos_vivienda3)
##
## Residuals:
## Min 1Q Median 3Q Max
## -45.837 -20.153 -1.878 20.145 55.145
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -948.53 89.09 -10.65 1.42e-10 ***
## log(Area_contruida) 271.88 18.88 14.40 2.63e-13 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 27 on 24 degrees of freedom
## Multiple R-squared: 0.8963, Adjusted R-squared: 0.8919
## F-statistic: 207.4 on 1 and 24 DF, p-value: 2.63e-13
par(mfrow=c(2,2))
plot(modelog2)
# 3.- AJUSTE DOBLEMENTE LOGARITMICO
modelog3=lm(log(precio_millon)~log(Area_contruida),data=datos_vivienda3)
summary(modelog3)
##
## Call:
## lm(formula = log(precio_millon) ~ log(Area_contruida), data = datos_vivienda3)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.13325 -0.07583 -0.01435 0.07501 0.16051
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.96408 0.29228 6.72 5.97e-07 ***
## log(Area_contruida) 0.80928 0.06194 13.06 2.11e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.08859 on 24 degrees of freedom
## Multiple R-squared: 0.8767, Adjusted R-squared: 0.8716
## F-statistic: 170.7 on 1 and 24 DF, p-value: 2.109e-12
par(mfrow=c(2,2))
plot(modelog3)
# 4.- AJUSTE HIPERBOLICO
modelog4=lm(precio_millon~(1/Area_contruida),data=datos_vivienda3)
summary(modelog4)
##
## Call:
## lm(formula = precio_millon ~ (1/Area_contruida), data = datos_vivienda3)
##
## Residuals:
## Min 1Q Median 3Q Max
## -92.08 -80.83 -27.08 62.92 147.92
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 332.08 16.11 20.61 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 82.14 on 25 degrees of freedom
par(mfrow=c(2,2))
plot(modelog4)
# 5.- AJUSTE INVERSO
modelog5=lm((1/precio_millon)~Area_contruida,data=datos_vivienda3)
summary(modelog5)
##
## Call:
## lm(formula = (1/precio_millon) ~ Area_contruida, data = datos_vivienda3)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.0005940 -0.0003198 0.0000859 0.0002730 0.0005455
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 5.405e-03 2.482e-04 21.778 < 2e-16 ***
## Area_contruida -1.912e-05 2.053e-06 -9.312 1.94e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.0003649 on 24 degrees of freedom
## Multiple R-squared: 0.7832, Adjusted R-squared: 0.7742
## F-statistic: 86.72 on 1 and 24 DF, p-value: 1.939e-09
par(mfrow=c(2,2))
plot(modelog5)
#### Análisis
Se aplican las trasformaciones Exponencial, Logarítmica, Doble Logarítmica, Hiperbólica e Inverso al modelo Se observa que el mejor ajuste se obtiene con la transformación Logaritmica.
De ser necesario compare el ajuste y supuestos del modelo inicial y el transformado.
# Modelo Lineal INICIAL
summary(modelo)
##
## Call:
## lm(formula = precio_millon ~ Area_contruida, data = datos_vivienda3)
##
## 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 3.45e-11 ***
## ---
## 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: 3.45e-11
par(mfrow=c(2,2))
plot(modelo)
# Modelo con transformación Logaritmica
summary(modelog2)
##
## Call:
## lm(formula = precio_millon ~ log(Area_contruida), data = datos_vivienda3)
##
## Residuals:
## Min 1Q Median 3Q Max
## -45.837 -20.153 -1.878 20.145 55.145
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -948.53 89.09 -10.65 1.42e-10 ***
## log(Area_contruida) 271.88 18.88 14.40 2.63e-13 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 27 on 24 degrees of freedom
## Multiple R-squared: 0.8963, Adjusted R-squared: 0.8919
## F-statistic: 207.4 on 1 and 24 DF, p-value: 2.63e-13
par(mfrow=c(2,2))
plot(modelog2)
predict(modelog2,list(Area_contruida=110))
## 1
## 329.4367
Se puede observar que en el modelo con transformación Logaritmica ha mejorado el coeficiente de Determinacion que ahora es R²=0.8963. Lo cual quiere decir que este modelo transformado explica el 89,63 % de la variabilidad del precio de la vivienda.
El gráfico de residuos presenta una distribucion un poco mas aleatoria. El gráfico Q-Q de normalidad presenta un mejor ajuste de los datos frente a la normal.
La expresion que describe el modelo lineal es: $ Y = β0 + β1X $, reemplazando por los respectivos coeficientes hallados tenemos $ Y = 86.23 + 2.12X $ . Donde Y es la variable respuesta que corresponde al precio en millones y X es la variable predictora que corresponde al area construida. β0 es el intercepto de la recta de regresión y β1 es la pendiente de la recta.
Con la transformación logaritimica, la expresion es: $ Y = β0 + β1log(X) $, reemplazando por los respectivos coeficientes hallados tenemos $ Y = -948.53 + 271.88X $
Con este ajuste el precio de una vivienda de 110 m² de area construida es de 329.43 millones.