{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE)
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")
EOD<-merge(x=Hogares,y=Personas,by="Hogar")
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)
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
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.
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)