P1

Cargue los paquetes y las bases necesarias para poder trabajar con la base de datos de personas, hogares y viajes de la Encuesta Origen y Destino en clase data.table.

#install.packages("data.table")
#install.packages("rpart")
#install.packages("rpart.plot")
#install.packages("caret")
#install.packages("factoextra")
#install.packages("ggplot2")
#install.packages("bit64")
#install.packages("factoextra")
#install.packages("lattice")
library(data.table)
hogares<-fread("Base_Hogares.csv")
personas<-fread("Base_Personas.csv")
viajes<-fread("Base_Viajes.csv")

P2

a)Para poder tener un mejor análisis, es necesario analizar las características del hogar y de las personas que lo componen. Para esto, crea un objeto “EOD” que sea un merge entre la base de hogares y personas, dado el identificador de hogares.

EOD<-merge(x=hogares,y=personas,by="Hogar")

b)Reemplaza el objeto “EOD” con un merge entre la base EOD y viajes, dados los identificadores de hogares y de personas. De esta forma, tendrá información más detallada de las familias, las personas y los flujos de viajes.

EOD<-merge(x=EOD,y=viajes,by=c("Hogar","Persona"))

P3

El análisis se realizará a nivel de personas. Para esto crea un objeto denominado “personaseod” que contenga las variables edad, sexo, educ, IngresoFinal, Factor, comunahg, Macrozonahg, la distancia promedio que recorre cada persona y los minutos de viaje promedio. Además, borre todas las observaciones que tienen ´NA´ en alguna de las variables.

personaseod<-EOD[,.(edad,sexo,educ,IngresoFinal,Factor,comunahg,Macrozonahg,distancia,minutosviaje)]
personaseod2<-na.omit(personaseod)

P4

a)Realice un análisis de cluster utilizando kmeans y 3 centers con las variables de edad e IngresoFinal. Cree una variable en la base de datos que guarde a que cluster corresponde cada observación.

personaseod3<-personaseod2[,.(edad,IngresoFinal)]
k1<-kmeans(personaseod3,centers=3)

b)Muestre el gráfico de los cluster. Pista:Recuerde cargar el paquete factoextra.

library("factoextra")
library("ggplot2")
fviz_cluster(k1,data=personaseod3,geom = "point")

P5

Realice dos modelos de regresión lineal para predecir el ingreso de cada persona ¿Cuál predice mejor dentro de muestra? Pista:Recuerde cargar el paquete caret.

library("caret")
## Loading required package: lattice
reg1<-lm(data=personaseod2,formula =IngresoFinal~educ+sexo+edad)
reg2<-lm(data=personaseod2,formula =IngresoFinal~Macrozonahg+distancia+minutosviaje)
summary(reg1)
## 
## Call:
## lm(formula = IngresoFinal ~ educ + sexo + edad, data = personaseod2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -780251 -166142  -34958  104801 5737631 
## 
## Coefficients:
##                           Estimate Std. Error t value Pr(>|t|)    
## (Intercept)               66847.71   23923.98   2.794   0.0052 ** 
## educNo tiene             -39622.27   25222.15  -1.571   0.1162    
## educPrebásicos           -36330.47   25548.15  -1.422   0.1550    
## educPrimarios           -102733.40   24027.29  -4.276 1.91e-05 ***
## educProfesional          273161.27   23935.97  11.412  < 2e-16 ***
## educSecundarios          -20339.72   23905.80  -0.851   0.3949    
## educTécnico Profesional  119994.90   24131.77   4.972 6.63e-07 ***
## sexoMujer               -157327.84    2990.71 -52.605  < 2e-16 ***
## edad                       5060.25      76.49  66.159  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 362500 on 59152 degrees of freedom
## Multiple R-squared:  0.2315, Adjusted R-squared:  0.2314 
## F-statistic:  2228 on 8 and 59152 DF,  p-value: < 2.2e-16
summary(reg2)
## 
## Call:
## lm(formula = IngresoFinal ~ Macrozonahg + distancia + minutosviaje, 
##     data = personaseod2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -941247 -200281  -75699  122268 5747040 
## 
## Coefficients:
##                                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                        2.046e+05  8.539e+03  23.965  < 2e-16 ***
## MacrozonahgConcon Oriente         -5.927e+04  4.785e+04  -1.239  0.21545    
## MacrozonahgConcon Poniente         1.687e+05  1.124e+04  15.010  < 2e-16 ***
## MacrozonahgEl Belloto              6.615e+03  1.070e+04   0.618  0.53653    
## MacrozonahgEl Belloto Norte       -7.780e+04  1.582e+04  -4.919 8.74e-07 ***
## MacrozonahgForestal                4.811e+04  1.184e+04   4.065 4.82e-05 ***
## MacrozonahgMarga-Marga             3.925e+05  1.477e+04  26.573  < 2e-16 ***
## MacrozonahgMiraflores              1.010e+05  1.227e+04   8.224  < 2e-16 ***
## MacrozonahgPenablanca             -1.581e+04  1.638e+04  -0.965  0.33457    
## MacrozonahgPlacilla-Curauma        2.019e+04  1.183e+04   1.707  0.08777 .  
## MacrozonahgPlan Valparaiso         9.710e+04  1.761e+04   5.514 3.52e-08 ***
## MacrozonahgPlan Vina               1.799e+05  1.088e+04  16.536  < 2e-16 ***
## MacrozonahgPlaya Ancha            -3.244e+04  1.066e+04  -3.044  0.00234 ** 
## MacrozonahgQuilpue Norte           4.468e+04  1.427e+04   3.132  0.00174 ** 
## MacrozonahgQuilpue Poniente        8.688e+03  1.058e+04   0.821  0.41178    
## MacrozonahgQuilpue Sur            -1.383e+04  1.229e+04  -1.125  0.26057    
## MacrozonahgRecreo                  1.681e+05  1.048e+04  16.043  < 2e-16 ***
## MacrozonahgRenaca                  5.049e+05  1.287e+04  39.241  < 2e-16 ***
## MacrozonahgRodelillo              -3.057e+04  1.145e+04  -2.670  0.00759 ** 
## MacrozonahgSanta Julia            -1.510e+04  9.724e+03  -1.553  0.12041    
## MacrozonahgValparaiso Alto        -2.676e+04  1.003e+04  -2.667  0.00766 ** 
## MacrozonahgVilla Alemana Norte    -5.558e+04  1.221e+04  -4.552 5.34e-06 ***
## MacrozonahgVilla Alemana Poniente -6.598e+04  9.990e+03  -6.604 4.03e-11 ***
## MacrozonahgVina del Mar Oriente   -1.950e+04  1.249e+04  -1.561  0.11863    
## distancia                          9.353e+00  3.244e-01  28.834  < 2e-16 ***
## minutosviaje                      -1.299e+03  9.946e+01 -13.065  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 393700 on 59135 degrees of freedom
## Multiple R-squared:  0.09374,    Adjusted R-squared:  0.09336 
## F-statistic: 244.7 on 25 and 59135 DF,  p-value: < 2.2e-16

Dado que R2 de reg1 = 0,2315 es mayor al R2 de reg2 = 0,09374, se puede concluir que la primera regresión es mejor, ocurre lo mismo con R2 Ajustado. El R2 de la primera regresión = 0,2315 nos indica que el modelo explica un 23,15 % de nuestra variable dependiente.

P6

Realice validación cruzada (CV) a los modelos de la pregunta anterior por el método K-folds con 5 folds. ¿ Se mantienen las conclusiones anteriores? Pista: Recuerde setear la semilla.

k<-5

set.seed(12345)

personaseod2[,fold:=sample(k,size=nrow(personaseod2),replace=TRUE)]
personaseod2[,nr:=.I]