Con base en los datos de ofertas de vivienda descargadas del portal Fincaraiz (datos_vivienda.xls - descarga) realizar los siguientes puntos:

  1. Realice un análisis exploratorio de las variables precio de vivienda (millones de pesos COP) y área de la vivienda (metros cuadrados) - incluir graficos e indicadores apropiados interpretados.
## [1] "Area_contruida" "precio_millon"
## Area_contruida
##        80        85        86        87        89        96        98       118 
##  3.846154  7.692308 19.230769  7.692308  3.846154  7.692308  3.846154  3.846154 
##    118.42       130       134       170       181       195 
##  3.846154 15.384615  3.846154 11.538462  3.846154  3.846154
## # A tibble: 6 × 2
##   Area_contruida precio_millon
##            <dbl>         <dbl>
## 1             86           250
## 2            118           385
## 3            130           395
## 4            181           419
## 5             86           240
## 6             98           320

Tabla de indicadores

##   promedio_costo mediana_costo minimo_costo maximo_costo desviacion_std
## 1       332.0769           305          240          480       82.14423
##   coeficiente_varia
## 1          24.73651
##   promedio_area mediana_area minimo_area maximo_area desviacion_area
## 1      115.7469           97          80         195        35.54332
##   coeficiente_var
## 1        30.70779
  1. 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.
h1 = ggplot(datos_vivienda, aes(precio_millon,Area_contruida)) + geom_point(height = 2, width = 2,color="tomato2") 
ggplotly(h1)
boxplot(precio_millon~Area_contruida, fill=precio_millon) + theme_bw()

## NULL
par(mfrow=c(1,2))
boxplot(precio_millon,col = 'coral1',main="Precio",ylab='Millones')
boxplot(Area_contruida,col = 'coral2',main="Area Construida",ylab='Metros^2')

A través del análisis exploratorio se permite identificar las características de las variables más relevantes del proceso a través de indicadores y gráficas de visualización. Para este proceso se puede evidenciar que para el costo promedio de las viviendas de la base de datos es de 332 Millones, el mínimo del precio es 240 millones, el máximo del precio es 480 millones, la desviación estándar es de 82 Millones y el coeficiente de variación corresponde a un 24%.

Por otro lado, al visualizar los resultados del área construida podemos ver reflejado que el promedio de área construida es de 115 m^2, en donde se podrán encontrar construcción como mínimo de construcción de 80 m^2 y como máximo de 195 m^2.Los diagramas de cajas y bigotes nos permiten evidenciar para las dos variables el comportamiento y su variabilidad.

  1. 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.
# Coeficiente de correlación
cor(x = Area_contruida,y = precio_millon)
## [1] 0.9190295
# Modelo de regresión
mod=lm(precio_millon ~ Area_contruida, data = datos_vivienda) # lm([variable objetivo] ~ [variables predictoras], data = [fuente de datos])
summary(mod)
## 
## Call:
## lm(formula = precio_millon ~ Area_contruida, data = datos_vivienda)
## 
## 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

La tabla de coeficientes \(b0\) y \(b1\) en el modelo estadístico se pueden evidenciar los resultados de acuerdo con el modelo de regresión lineal, donde:

  1. 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 del 95% para el coeficiente b1 de define como b1 +/- 2*SE(b1), donde:
## Limite Inferior
Limite_inferior_b1 = 2.124-2*0.186

## Limite Superior
Limite_superior_b1 = 2.124+2*0.186

## Donde obtendriamos
intervalo_confi = data.frame(Limite_inferior_b1,Limite_superior_b1)
intervalo_confi
##   Limite_inferior_b1 Limite_superior_b1
## 1              1.752              2.496
# Para obtener el límite de confianza del 95% podemos escribir: 
confint(mod)
##                   2.5 %     97.5 %
## (Intercept)    39.83983 132.627917
## Area_contruida  1.74017   2.507771
#Prueba Hipotesis, rechazar Ho si Alfa >= valor p
0.05>=3.45e-11
## [1] TRUE

El error estándar mide la variabilidad/exactitud de los coeficientes beta del modelo, para ello se identifica el intervalo de confianza en el cual hay un 95% de probabilidades de que el intervalo [1.752, 2.496] contenga el valor real de b1.Por otro lado, para la variable de respuesta (y=precio) la estadística t y su p-value prueba si existe o no una relación estadísticamente significativa.

Las hipótesis estadísticas son las siguientes:

Tanto los valores p del intercepto como la variable de respuesta predictora son muy significativos, por lo que podemos rechazar la hipótesis nula y aceptar la hipótesis alternativa, esto significa que hay una asociación significativa entre el predictor y las variables resultado.

  1. Calcule e interprete el indicador de bondad y ajuste R2.
summary(mod)$r.squared
## [1] 0.8446152
  1. Cual seria el precio promedio estimado para un apartamento de 110 metros cuadrados? Considera entonces con este resultado que un apartemento en la misma zona con 110 metros cuadrados en un precio de 200 millones seria una buena oferta? Que consideraciones adicionales se deben tener?.
# precio = bo + b1*area

precio = 86.234 + 2.124*110
precio
## [1] 319.874

¿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 sería una buena oferta?

¿Qué consideraciones adicionales se deben tener?

  1. Realice la validación de supuestos del modelo por medio de graficos apropiados, interpretarlos y sugerir posibles soluciones si se violan algunos de ellos.
par(mfrow=c(2,2))
plot(mod)

Para realizar la validación de supuestos, este se realiza mediante la validación de análisis gráficos, donde:

  1. De ser necesario realice una transformación apropiada para mejorar el ajuste y supuestos del modelo.
model_1=lm(precio_millon ~ log10(Area_contruida), data = datos_vivienda) # lm([variable objetivo] ~ [variables predictoras], data = [fuente de datos])
summary(model_1)
## 
## Call:
## lm(formula = precio_millon ~ log10(Area_contruida), data = datos_vivienda)
## 
## 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 ***
## log10(Area_contruida)   626.03      43.47   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(model_1)

model_2 <- lm(precio_millon~Area_contruida + I(Area_contruida^2), data = datos_vivienda)
summary(model_2)
## 
## Call:
## lm(formula = precio_millon ~ Area_contruida + I(Area_contruida^2), 
##     data = datos_vivienda)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -34.927 -14.471  -3.777  16.504  35.073 
## 
## Coefficients:
##                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         -2.949e+02  6.648e+01  -4.435  0.00019 ***
## Area_contruida       8.488e+00  1.090e+00   7.787 6.80e-08 ***
## I(Area_contruida^2) -2.433e-02  4.142e-03  -5.874 5.49e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 21.35 on 23 degrees of freedom
## Multiple R-squared:  0.9378, Adjusted R-squared:  0.9324 
## F-statistic: 173.5 on 2 and 23 DF,  p-value: 1.332e-14
par(mfrow=c(2,2))
plot(model_2)

ggplot(data=datos_vivienda , aes(x=Area_contruida,y=precio_millon))+ geom_point(height = 2, width = 2,color="tomato2") + stat_smooth(method = lm)  + 
  stat_smooth(method="lm", formula= y~x + I(x^2), color = "chocolate3", show.legend = )  + 
  stat_smooth(method="lm", formula= y~log(x), color = "green4")

  1. De ser necesario compare el ajuste y supuestos del modelo inicial y el transformado.

A partir de la gráfica de residuales vs los valores ajustados se evidencia que no se cumple uno de los supuestos como la aleatoriedad de los errores, para ello se procede a generar la transformación necesaria para poder cumplir estos supuestos. Para ello se utilizaron dos tipos de transformación el primero de ellos es:

De acuerdo con lo evidenciado a través de las dos transformaciones es importante tener el contexto de los datos, ya que tomar una decisión apresurada a algunas de las posibilidades de transformación puede generar más sesgos y errores que el mejoramiento del modelo cuando hablamos de la regresión simple. Pero para casos específicos como el que se trató en esta sección, genera un buen análisis frente al entorno en el cual se ubican estos datos. Las trasformaciones generan buenos modelos cuando se trata de formar la búsqueda de las expresiones que permita predecir los valores de una variables a través del conocimiento de los valores de otras.