rm(list = ls())
library(data.table)
library(ggplot2)
library(caret)
Base <- fread("base.csv", encoding = "Latin-1")
Base <- na.omit(Base)
Ingresos <- Base[, IngresoFinal, by=comunahg]
Ingresos <- Ingresos[IngresoFinal<=2000000]
Ingresos <- Ingresos[, mean(IngresoFinal), by=comunahg]
names(Ingresos)[1] <- "Comuna"
names(Ingresos)[2] <- "Ingresos_promedio"
ggplot(Ingresos, aes(Comuna, Ingresos_promedio, color=Comuna)) + geom_col() + labs(title="Ingresos Promedios", subtitle = "Por comuna", x="Comunas", y="Ingresos Promedio")
Encontramos como grupo que era mejor utilizar “geom_col” debido a que se solicitaban dos variables (Ingresos y comuna), cuestión que “geom_histogram” no resuelve porque trabaja con solo una variable.
ggplot(Base, aes(minviajeprom, IngresoFinal)) + geom_point() + labs(x="Minutos de Viajes Promedio", "Ingresos")
4.1 Calcule los minutos de viaje promedios predichos para cada observación. (4 puntos)
Modelo <- Base[, minviajeprom, by=.(sexo,educ)]
4.2 Dado el modelo anterior, calcule la predicción de los minutos de viaje promedio para una mujer y para un hombre con educación Profesional. (5 puntos)
regresion <- lm(formula = minviajeprom ~ sexo + educ, data = Modelo)
sum <- summary(regresion)
sum
##
## Call:
## lm(formula = minviajeprom ~ sexo + educ, data = Modelo)
##
## Residuals:
## Min 1Q Median 3Q Max
## -32.41 -13.56 -3.56 8.88 620.85
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 31.1237 2.0463 15.209 < 2e-16 ***
## sexoMujer -3.0960 0.2670 -11.595 < 2e-16 ***
## educNo tiene -8.9966 2.1744 -4.138 3.52e-05 ***
## educPrebásicos -8.7876 2.1798 -4.031 5.57e-05 ***
## educPrimarios -4.3761 2.0665 -2.118 0.0342 *
## educProfesional 2.2911 2.0622 1.111 0.2666
## educSecundarios 0.5281 2.0559 0.257 0.7973
## educTécnico Profesional 1.5214 2.0805 0.731 0.4646
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 19.28 on 20927 degrees of freedom
## Multiple R-squared: 0.03249, Adjusted R-squared: 0.03216
## F-statistic: 100.4 on 7 and 20927 DF, p-value: < 2.2e-16
Por lo tanto, según el modelo propuesto por el miembro del equipo, para una mujer con educación profesional los minutos de viaje promedio seran de 30.3188, mientras que un hombre con la misma caracteristica educacional será de 33.4148 minutos promedio.
Para poder entender mejor los datos, decidimos realizar un modelo en donde se agreguen variables relevantes para estimar los minutos de viajes promedios. Éstos seran el sexo, debido a que podría existir una diferencia en cuanto a la rapidez de llegar de un lugar a otro; la macrozona en cual vive la persona dentro de la región de Valparaíso, con el fin de exponer las carencias del transporte en dichas zonas; y, finalmente, la educación de los individuos ya que suponemos que a más avanzado estudios, más posibilidades de obtener bienes de lujos, como los autos, para su movilización.
Modelo2 <- Base[, minviajeprom, by=.(sexo, Macrozonahg, educ)]
regresion2 <- lm(formula = minviajeprom ~ sexo + Macrozonahg + educ, data = Modelo2)
5.1 Calcule los minutos de viaje promedios predichos para cada observación. (5 puntos)
sum2 <- summary(regresion2)
sum2
##
## Call:
## lm(formula = minviajeprom ~ sexo + Macrozonahg + educ, data = Modelo2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -36.69 -12.92 -3.67 8.87 619.45
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 28.3678 2.1359 13.281 < 2e-16 ***
## sexoMujer -3.1211 0.2634 -11.851 < 2e-16 ***
## MacrozonahgConcon Oriente 11.0990 3.6585 3.034 0.002419 **
## MacrozonahgConcon Poniente -4.6642 0.9689 -4.814 1.49e-06 ***
## MacrozonahgEl Belloto 2.7578 0.8867 3.110 0.001873 **
## MacrozonahgEl Belloto Norte 5.5531 1.1668 4.759 1.95e-06 ***
## MacrozonahgForestal 6.3637 0.9576 6.645 3.10e-11 ***
## MacrozonahgMarga-Marga -5.1845 1.2568 -4.125 3.72e-05 ***
## MacrozonahgMiraflores 2.6765 1.0217 2.620 0.008805 **
## MacrozonahgPenablanca 7.5849 1.2746 5.951 2.71e-09 ***
## MacrozonahgPlacilla-Curauma 1.7232 0.9587 1.797 0.072286 .
## MacrozonahgPlan Valparaiso -6.5619 1.4532 -4.515 6.35e-06 ***
## MacrozonahgPlan Vina -3.1646 0.9274 -3.412 0.000645 ***
## MacrozonahgPlaya Ancha -0.5280 0.8806 -0.600 0.548808
## MacrozonahgQuilpue Norte 1.6004 1.1767 1.360 0.173810
## MacrozonahgQuilpue Poniente 1.4521 0.8749 1.660 0.096970 .
## MacrozonahgQuilpue Sur 7.4587 0.9998 7.460 8.96e-14 ***
## MacrozonahgRecreo -0.3642 0.8826 -0.413 0.679845
## MacrozonahgRenaca -3.6829 1.1236 -3.278 0.001048 **
## MacrozonahgRodelillo 2.5264 0.9317 2.712 0.006699 **
## MacrozonahgSanta Julia 3.8857 0.8058 4.822 1.43e-06 ***
## MacrozonahgValparaiso Alto 1.2582 0.8265 1.522 0.127909
## MacrozonahgVilla Alemana Norte 6.7254 0.9778 6.878 6.25e-12 ***
## MacrozonahgVilla Alemana Poniente 4.6119 0.8161 5.651 1.62e-08 ***
## MacrozonahgVina del Mar Oriente 7.6205 1.0286 7.408 1.33e-13 ***
## educNo tiene -8.6633 2.1443 -4.040 5.36e-05 ***
## educPrebásicos -8.5155 2.1493 -3.962 7.46e-05 ***
## educPrimarios -4.0343 2.0375 -1.980 0.047714 *
## educProfesional 4.1468 2.0356 2.037 0.041648 *
## educSecundarios 0.7948 2.0272 0.392 0.695017
## educTécnico Profesional 1.8652 2.0514 0.909 0.363256
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 19 on 20904 degrees of freedom
## Multiple R-squared: 0.06145, Adjusted R-squared: 0.0601
## F-statistic: 45.62 on 30 and 20904 DF, p-value: < 2.2e-16
Dado al modelo creado, existen diferencias de minutos de viajes por sexo, macrozona y educación. Por ejemplo, una mujer que vive en Concón Oriente con una educación primaria tiene un viaje estimado de 32,3114 minutos promedio, en cambio, un hombre con las mismas características se demorará 35.4325 minutos.
Modelo[, prediccion_M1 := predict(regresion)]
Modelo[, error_de_predicción := minviajeprom - prediccion_M1]
MAE1 <- sum(abs(Modelo$error_de_predicción))/nrow(Modelo)
Modelo2[, prediccion_M2 := predict(regresion2)]
Modelo2[, error_de_predicción := minviajeprom - prediccion_M2]
MAE2 <- sum(abs(Modelo2$error_de_predicción))/nrow(Modelo2)
data.table(MAE1, MAE2)
## MAE1 MAE2
## 1: 14.32717 14.08457
Dado que el error absoluto medio es menor en el modelo propuesto por nosotros en comparación con el de nuestro colega, se puede mencionar que: el modelo número 2 predice mejor los minutos de viajes promedios en la región de Valparaíso
set.seed(12345)
setup <- trainControl(method = "cv", number = 5)
#Modelo 1
predkfolds1<-train(minviajeprom~ sexo + educ ,data=Base,method="lm",trControl= setup)
print(predkfolds1)
## Linear Regression
##
## 20935 samples
## 2 predictor
##
## No pre-processing
## Resampling: Cross-Validated (5 fold)
## Summary of sample sizes: 16748, 16748, 16748, 16748, 16748
## Resampling results:
##
## RMSE Rsquared MAE
## 19.27158 0.03212455 14.33246
##
## Tuning parameter 'intercept' was held constant at a value of TRUE
#Modelo 2
predkfolds2 <- train(minviajeprom~ sexo + educ + Macrozonahg,data=Base,method="lm",trControl= setup)
print(predkfolds2)
## Linear Regression
##
## 20935 samples
## 3 predictor
##
## No pre-processing
## Resampling: Cross-Validated (5 fold)
## Summary of sample sizes: 16747, 16748, 16748, 16748, 16749
## Resampling results:
##
## RMSE Rsquared MAE
## 19.00415 0.05879482 14.10892
##
## Tuning parameter 'intercept' was held constant at a value of TRUE
Observando los índices arrojados por K-folds, podemos confirmar que el modelo número dos es mejor prediciendo los minutos de viaje promedio, debido a que tanto el RMSE y el MAE son menores, además de que el R^2 es de un mayor porcentaje