Solución parcial

Cargar datos

library(readxl)
datos_vivienda <- read_excel("datos_vivienda.xlsx")
View(datos_vivienda)

1. Análisis exploratorio univariado

x<-datos_vivienda$Area_contruida
y<-datos_vivienda$precio_millon
hist(x, col = "light blue", main = "Histograma de área construida", xlab = "Área")

boxplot(x)

summary(x)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    80.0    86.0    97.0   115.7   130.0   195.0

El histograma anterior nos muestra la variabilidad de frecuencias que existe entre construcciones, siendo las áreas entre \(80-100m^2\) las más construidas. También se evidencia que el promedio de construcción es de \(115m^2\) y el 50% de los datos están en \(97m^2\) lo cual, esta diferencia nos indica una distribución no es simétrica o normal, .

hist(y, col = "light blue", main = "Histograma de precio", xlab = "Precio")

boxplot(y)

summary(y)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   240.0   251.2   305.0   332.1   395.0   480.0

En este caso de precios, no se observa una variación de frecuencia tan diferente como se observó en el gráfico de área por lo que se puede decir que muchas de las áreas construidas tienen un mismo precio. Por otro lado, se muestra un promedio de 335 millones de pesos para la construcción de alguna área, lo cual tampoco concuerda con el 50% de los datos (305 millones).

2. Análisis expoblatorio bivariado

require(ggplot2)
## Loading required package: ggplot2
require(plotly)
## Loading required package: plotly
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
data("datos_vivienda")
## Warning in data("datos_vivienda"): data set 'datos_vivienda' not found
g1=ggplot(data=datos_vivienda,aes(x=Area_contruida,y=precio_millon))+geom_point()+theme_bw()
g1

g2=ggplot(data=datos_vivienda,aes(x=Area_contruida,y=precio_millon))+geom_point()+theme_bw()+geom_smooth( se= F)
g2
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

cor(x,y)
## [1] 0.9190295

El gráfico de dispersión es la mejor manera de analizar dos variables, de modo que el coeficiente de corelación ( \(p=0.91\)) nos dice que estas dos variables están sumamente relacionadas por tratarse de una regresión directa (Si x aumenta, y tambien aumenta),pero al trasar la línea, podemos observar que tiende a ser más logarítmica que lineal.

3. Estime el modelo de regresión lineal simple entre precio = f(area)+e. Interprete los coeficientes del modelo \(\beta_0 y \beta_1\) en caso de ser correcto

mod= lm(y~x)
summary(mod)
## 
## Call:
## lm(formula = y ~ x)
## 
## 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 ***
## x              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

Fórmula del modelo: \(Precio= 86.234+2.124(área)+e\). \(\beta_0\) no se puede interpretar por no hacerce visible en el eje x en la gráfica de dispersión y el \(\beta_1\) nos indica que cada vez que aumenta una unidad en el área, el precio aumenta 2.124

4. Construir un intervalo de confianza (95%) para el coeficiente \(\beta_1\) , interpretar y concluir si el coeficiente es igual a cero o no. Compare este resultado con una prueba de hipotesis t.

B1= 2.124
SXX=sum((x-mean(x))^2)
SIGMA=sum((y-mod$fitted.values)^2)/24
T=qt(p=0.975,df=24) #para 95% de confianza
EE=T*sqrt(SIGMA/SXX)
LI= B1-EE
LS=B1+EE
c(LI,LS)
## [1] 1.740199 2.507801

Como el 0 no está incluído en el intervalo, significa que x es significativo en el modelo (El área influye directamente en el precio)

Prueba de hipótesis sobre la significancia de la pendiente

\(H_0= \beta_1=0\) \(H_1= \beta_1≠0\)

qt(0.975,24) 
## [1] 2.063899

Valor que cae fuera de la zona de aceptación de \(H_0\). Se asume como verdadera la \(H_1\) por lo que sí se comprueba de que x es significativa.

5.Calcule e interprete el indicador de bondad y ajuste R2

El coeficiente de determinación arrojó un valor de \(R^2= 0.8446\) lo cuál significa que el modelo explica el 84% de las variables, siendo así, un ajuste significativo.

6.¿Cuál 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, ¿ sería una buena oferta? ¿Qué consideraciones adicionales se deben tener?.

predict(mod, list(x=110))
##        1 
## 319.8706

El precio estimado para un apartamento de 110 metros es de 319 millones de pesos colombianos.

predict(mod, list(x= 110), interval = "confidence", level= 0.95)
##        fit      lwr      upr
## 1 319.8706 306.3133 333.4279

200 millones de pesos no sería una buena oferta. Se consideraría buena oferta los valores entre 306- 303 millones de pesos colombianos.

7. Realice una validación de suspuestos del modelo por medio de gráficos apropiados, interpretelos y suguiera posibles soluciones si se violan alguno de ellos.

Media igual a cero
ei=mod$residuals
ei
##          1          2          3          4          5          6          7 
## -18.895336  48.137608  32.649962 -51.672533 -28.895336  25.617018  32.691142 
##          8          9         10         11         12         13         14 
## -22.135041 -26.771366   2.691142 -31.019307  47.245540  21.104664 -26.771366 
##         15         16         17         18         19         20         21 
## -18.135041 -18.895336 -18.895336  32.649962  14.154080  -1.151513  67.649962 
##         22         23         24         25         26 
## -11.019307  22.649962  14.732752 -50.408120 -37.308858
round(mean(ei),3)
## [1] 0

Supuesto que se cumple por defecto

par(mfrow=c(2,2))
plot(mod)

Varianza constante

No se valida el supuesto, se presentan patrones comunes de la varianza no constante.

Distribución normal

Sí se tiene una distribución normal, la alineación de los puntos en la gráfica o confirman.

8.De ser necesario realice una transformación apropiada para mejorar el ajuste y supuestos del modelo

Como se trata de una regresión más bien logarítmica, que lineal, se debe debe de transformar la variable X sacandole el logaritmo a cada valor.

trans_area<- log(datos_vivienda$Area_contruida)
ggplot(datos_vivienda,aes(x=trans_area,y=precio_millon))+geom_point()+geom_smooth( se= F)+ theme_bw()
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

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

mod2= lm(y~trans_area)
summary(mod2)
## 
## Call:
## lm(formula = y ~ trans_area)
## 
## 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 ***
## trans_area    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(mod2)

\(Precio= -948.53+271.88(área)+e\) es la nueva fórmula del modelo. El \(R^2\) de este modelo arroja un valor de 0.90, siendo así aún más alto el valor en el que el modelo explica los datos.

Supuestos del modelo transformado

Media igual a cero
ei2=mod2$residuals
ei2
##          1          2          3          4          5          6          7 
## -12.518084  36.476159  20.144640 -45.837429 -22.518084  21.968916  32.209058 
##          8          9         10         11         12         13         14 
## -24.425115 -19.338166   2.209058 -25.661239  35.510169  27.481916 -19.338166 
##         15         16         17         18         19         20         21 
## -20.425115 -12.518084 -12.518084  20.144640   1.905225  12.144449  55.144640 
##         22         23         24         25         26 
##  -5.661239  10.144640  18.159406 -35.093167 -37.790942
round(mean(ei2),3)
## [1] 0

Se cumple el primer supuesto por defecto

Varianza constante

La gráfica de varianza constante no muestra un patrón específico, se puede obserbar una distribución aleatoria de los puntos sobre el plano.

Distribución normal

Se mejora la disposición de los puntos indicandonos, nuevamente, la confirmación de distribución normal.