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")
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"))
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)
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")
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.
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]