{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE)

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("jtools")

library(data.table)
library(rpart)
library(rpart.plot)
library(caret)
library(jtools)
Hogares<-fread("Base_Hogares.csv")
Personas<-fread("Base_Personas.csv")
Viajes<-fread("Base_Viajes.csv")

P2

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

Realice dos modelos de regresión lineal para predecir los minutos promedios de viaje de cada persona ¿Cuál predice mejor dentro de muestra?. Trabaje con la base personaseod. Pista:Recuerde cargar el paquete caret. Observación: No obtendrá puntaje si compara un modelo de regresión de una variable.

regresion1<-lm(data=personaseod2,formula =minutosviaje~distancia+edad)
summary(regresion1)
regresion2<-lm(data=personaseod2,formula =minutosviaje~distancia+IngresoFinal+edad)
summary(regresion2)

Interpretacion: De estos modelos podemos decir que la regresión 2 es mejor que la 1, ya que el R cuadrado ajustado, es levemente mejor. Es decir, la variabilidad del modelo se ve mejor explicada por las variables, edad, ingreso final y distancia. R2(1)0.3431<R2(2)0.3452

P5

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? Trabaje con la base personaseod. Pista: Recuerde setear la semilla.

k<-5
set.seed(12345)
setupKCV<- trainControl(method = "cv" , number = 5)
predk1<-train(minutosviaje~distancia+edad,data=personaseod2,method="lm",trControl= setupKCV)
print(predk1)
predk2<-train(minutosviaje~distancia+IngresoFinal+edad,data=personaseod2,method="lm",trControl= setupKCV)
print(predk2)

Interpretación: Se mantienen las conclusiones, ya que el RMSE(2)=16.46045 < RMSE(1)=16.48867, Además el MAE del modelo 2, tambien es menor.

P6

Realice dos modelos de árboles de clasificación. Pruebe cuál clasifica mejor con validación cruzada. Entrene el modelo con un 80% de la muestra y testee con el 20% restante. Trabaje con la base personaseod. Pista 1:Recuerde cargar el paquete rpart y rpart.plot Pista 2: Recuerde setear la semilla.

arbolito<-rpart(comunahg~., data = personaseod2,method="class")

rpart.plot(arbolito)
set.seed(12345)

ind<-createDataPartition(personaseod2[,comunahg],times = 1,p = 0.8,list = F)


train<-personaseod2[ind,]
test<-personaseod2[-ind,]
arbolito1<- rpart(comunahg~., data = personaseod2,method="class")

rpart.plot(arbolito1)