Introduccion

De estos datos nos interesa saber si hay una relacion lineal entre los precios(por millon) de la vivienda construida y y el area total que abarca, por ende aplicaremos un estudio de regresion lineal simple

Estudio inicial

Iniciamos abarcando una exploracion inicial sobre las variables a considerar, en este caso los precios(por millon) y el area construida de las viviendas, esto para determinar si de manera individual presentan variaciones

##Exploración de los precios por millon

promedio = mean(PrecioA, na.rm = TRUE)
Desviacion = sd(PrecioA, na.rm = TRUE)
data.frame(promedio,Desviacion)
##   promedio Desviacion
## 1 433.9044    328.665

NOTA: Para hallar la desviacion estandar se tuvo que incluir en la instruccion ‘na.rm’ que excluye los valores NA de las columnas de ambos vectores sin embargo, al revisar la base de datos, no hay valores NA existentes directos dentro de estos pero R los detecta al momento del procesamiento, por ende fue necesario hacer depuracion de estas ‘inexistencias’ y limitar el numero de lectura en cada variable para que los tamaños concuerden y pueda hacerse el analisis pertinente, esto no afectara de manera significativa los resultados finales ya que la cantidad de datos descartados son infimos.

g1=ggplot(data = Datos_Vivienda,mapping = aes(x=Datos_Vivienda$precio_millon))+geom_histogram(fill="purple")+theme_bw()
ggplotly(g1)
## Warning: Use of `Datos_Vivienda$precio_millon` is discouraged.
## ℹ Use `precio_millon` instead.
## Warning: Removed 2 rows containing non-finite outside the scale range
## (`stat_bin()`).

A partir de aqui podemos observar que el precio promedio (por millon) de las viviendas es de aproximadamente 433. Observando la variacion de los precios en la grafica y una desviacion estandar de aproximadamente 328 podremos concluir que los precios varian de una manera notable, lo que hace que volvamos a la pregunta inicial: ¿Esta variacion esta relacionada frente a alguna relacion lineal con el area que abarcan dichas viviendas?

Para responder tal pregunta continuaremos con un analisis exploratorio bivariado

Exploracion Bivariado

g2=ggplot(data=Datos_Vivienda,mapping = aes(x=Datos_Vivienda$Area_contruida,y=Datos_Vivienda$precio_millon))+geom_point()+theme_bw()+
  geom_smooth()
ggplotly(g2)
## Warning: Use of `Datos_Vivienda$Area_contruida` is discouraged.
## ℹ Use `Area_contruida` instead.
## Warning: Use of `Datos_Vivienda$precio_millon` is discouraged.
## ℹ Use `precio_millon` instead.
## Warning: Use of `Datos_Vivienda$Area_contruida` is discouraged.
## ℹ Use `Area_contruida` instead.
## Warning: Use of `Datos_Vivienda$precio_millon` is discouraged.
## ℹ Use `precio_millon` instead.
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_smooth()`).
cor(AreaA,PrecioA)
## [1] 0.687352

Observando la grafica y estudiando la correlacion se puede observar que hay indicios de una posible relacion lineal positiva donde el precio(por millon) de la vivienda aumenta conforme aumenta el area que abarca, sin embargo, este coeficiente no es un valor significativamente alto (o demasiado cercano a 1), por ende sera necesario hacer observaciones directas al modelo de regresion lineal simple para llegar a una conclusion final

Estimacion del modelo de Regresion Lineal Simple

Para responder tal pregunta continuaremos con un analisis exploratorio bivariado

Exploracion Bivariado

mod_you=lm(PrecioA~AreaA,data=Datos_Vivienda)
mod_you
## 
## Call:
## lm(formula = PrecioA ~ AreaA, data = Datos_Vivienda)
## 
## Coefficients:
## (Intercept)        AreaA  
##      157.48         1.58

Luego el modelo estimado es Precio = 157.48 + (1.58)*Area. A partir de este modelo podemos interpretar que el precio de una vivienda tiene un arraque base de 157,48 y este ira aumentando conforme la construccion de la vivienda abarque cada mas mas terreno (cada 1.58 mts adicionales aproximadamente)

summary(mod_you)
## 
## Call:
## lm(formula = PrecioA ~ AreaA, data = Datos_Vivienda)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2659.88  -120.78   -47.55    67.27  1330.10 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 157.47636    4.13640   38.07   <2e-16 ***
## AreaA         1.58018    0.01831   86.30   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 238.7 on 8317 degrees of freedom
## Multiple R-squared:  0.4725, Adjusted R-squared:  0.4724 
## F-statistic:  7448 on 1 and 8317 DF,  p-value: < 2.2e-16

A partir de esta tabla podemos hacer la prueba del valor P para determinar si el area de la vivienda es significativa con respecto a la relacion que tiene con el precio(por millon)

En este caso vemos que el valor P <2e-16. Como este valor p es significativamente menor a 0.05, se considera que el area de la vivienda tiene una relacion significativa con el precio(por millon) de la misma, adicionalmente, al aceptar este modelo, podemos explicar la variabilidad en los precios en un aproximado del 48% de los datos registrados(casi la mitad)

##Predecir con el Modelo
#Estimar las ventas para un mes en el cual se invierta en mercadeo en youtube 65 mil dólares.

predict(mod_you,list(AreaA=450),interval="confidence",level=0.95)
##        fit      lwr      upr
## 1 868.5558 857.4298 879.6818

Luego el precio esperado de una vivienda que abarca 1000mts seria aproximadamente 868.555 (por millon). El intervalo de confianza para la prediccion de las ventas nos indicaria que el promedio del precio estaria entre 857.42 y 879.68 con un 95% de confianza

A partir de aqui podemos aceptar que existe una posible relacion lineal entre el precio de la vivienda y el area que la abarca, ahora evaluaremos el poder de prediccion de nuestro modelo lineal simple usando una validacion cruzada

id_modelar=sample(1:200,size = 160)
Vivienda_modelar=Datos_Vivienda[id_modelar,]
Vivienda_validar=Datos_Vivienda[-id_modelar,]

##Paso 2 - Estimar el Modelo Set de Modelar
mod_you_modelar=lm(PrecioA~AreaA,data=Vivienda_modelar)

##Paso 3 - Predeccir Set de Validación
Prcios_pred=predict(mod_you_modelar,list(AreaA=Vivienda_validar$Area_contruida))

##Paso 4 - Comparar Ventas del Modelo y Reales
Precio_real=Vivienda_validar$precio_millon
error=Precio_real-Prcios_pred
res=data.frame(Precio_real,Prcios_pred,error)

##Paso 5 - Calcular Indicador de Evaluación de la Predicción
MAE=mean(abs(error),na.rm = TRUE) #Mean Absolut Error (Error Medio Absoluto)
MAE
## [1] 159.2769

Luego el modelo predice los Precios(por millon) de una vivienda, dependiendo de su area, con un error de aproximadamente 159.47