En este caso se tienen los resultados del modelo del precio en función del área construida y el tipo de vivienda:
model = lm(precio_millon ~ area_construida + Tipo, datos)
summary(model)
##
## Call:
## lm(formula = precio_millon ~ area_construida + Tipo, data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2926.71 -122.58 -49.12 71.12 1276.36
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 164.48412 4.07369 40.38 <2e-16 ***
## area_construida 1.79514 0.02145 83.69 <2e-16 ***
## TipoCasa -115.29391 6.29551 -18.31 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 234.1 on 8316 degrees of freedom
## Multiple R-squared: 0.4929, Adjusted R-squared: 0.4928
## F-statistic: 4042 on 2 and 8316 DF, p-value: < 2.2e-16
Nuestro modelo de regresión será: \[ E(Precio | Area\_construida,~Tipo) = 164.48 + 1.79 \cdot Area\_construida -115.29 \cdot Tipo\_casa \]
La variable tipo de vivienda estará representada por la variable dummy TipoCasa, la cual tomará el valor de 1 cuando la vivienda sea casa y 0 cuando sea apartamento.
En este caso se tiene que tanto el coeficiente del intercepto, el de la variable area_construida y el de tipo de vivienda son significativos dentro del modelo, de esta forma podemos concluir que el tipo de vivienda si tiene influencia sobre el precio de estas.
Además en la prueba ANOVA se obtuvo p-valor = 2.2e-16 < 0.05 por lo que el modelo se ajusta bien a los datos.
Se tienen que los intervalos de confianza para los coeficientes de regresión son:
confint(model)
## 2.5 % 97.5 %
## (Intercept) 156.498680 172.469564
## area_construida 1.753095 1.837186
## TipoCasa -127.634687 -102.953133
En este caso se obtuvo \(R^{2} = 0.4929\), de esta forma el modelo de regresión explica el 47.25% de la variabilidad de precio_millon mediante la variables regresoras area_construida y Tipo, sin embargo este es un valor muy bajo que generará inconvenientes al momento de predecir, pues hay mucha variabilidad en los datos que no logra ser explicada por el modelo.
En el histograma de los residuos se observa una gran asimetria positiva en la distribución de estos, algo que nos indica falta de normalidad en los datos.
## [1] 1017 3324
Realizando el test de Kolmogorov-Smirnoff obtenemos los siguientes resultados:
lillie.test(resid)
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: resid
## D = 0.13708, p-value < 2.2e-16
Teniendo un p-valor de 2.2e-16, por lo que rechazamos la hipotesis nula y concluimos que los errores no se distribuyen normalmente.
Realizando un test t sobre los errores para probar la hipotesis de que estos tienen media cero se tiene:
t.test(resid)
##
## One Sample t-test
##
## data: resid
## t = -0.0020213, df = 8318, p-value = 0.9984
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## -0.02154305 0.02149866
## sample estimates:
## mean of x
## -2.219084e-05
Dando un \(p-valor = 0.9984 > 0.05\), por lo que no rechazamos la hipotesis nula y concluimos que la media de los errores es cero.
En las graficas de valores ajustados vs residuos estudentizados se observa un gran patron conico y una acumulación de los datos a la izquierda de la grafica algo que sin duda nos indica heterocedasticidad de los errores.
Realizando el test de Breush-Pagan obtenemos los siguientes resultados:
bptest(model)
##
## studentized Breusch-Pagan test
##
## data: model
## BP = 1922.7, df = 2, p-value < 2.2e-16
En donde \(p-valor = 2.2e-16 < 0.05\), por lo que rechazamos la hipotesis nula y concluimos que no se cumple el supuesto de homocedasticidad.
En la siguiente figura se puede observar que en los residuos estudentizados vs residuos estudentizados resagados se evidencia una posible relación positiva entre estos, algo que indica falta de independencia de los errores.
Realizando el test de Durbin-Watson obtenemos:
dwtest(model, alternative = "two.sided", data = banksalary)
##
## Durbin-Watson test
##
## data: model
## DW = 1.5301, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is not 0
Donde \(p-valor = 2.2e-16 < 0.05\), por lo que rechazamos la hipotesis nula y concluimos que los errores están correlacionados entre si.
De esta forma vemos que no se cumplieron los supuestos de normalidad, homocedasticidad e independencia de los errores.
Se realizaron todas las posibles transformación tanto en la variable respuesta como en la predictora, incluyendo:
model2 = lm(log(precio_millon) ~ log(area_construida) + Tipo, datos)
Verificando ahora los supuestos para este modelo tenemos:
# Normalidad
lillie.test(resid)
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: resid
## D = 0.014081, p-value = 0.0007781
# Homocedasticidad
bptest(model2)
##
## studentized Breusch-Pagan test
##
## data: model2
## BP = 393.21, df = 2, p-value < 2.2e-16
# Independencia
dwtest(model2, alternative = "two.sided", data = banksalary)
##
## Durbin-Watson test
##
## data: model2
## DW = 1.5674, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is not 0
Vemos que de igual manera la transformación no fue efectiva para mejorar el modelo y lograr cumplir los supuestos.