1 Carga de paquetes y datos

Se cargan los paquetes

library(readr)
library(plotly)
library(shiny)
library(data.table)  
library(plyr)
library(dplyr)
library(lubridate)
library(glmnet)
library(neuralnet)
library(randomForest)
library(h2o)
library(xgboost)

El paquete h2o necesita inicializarse con el siguiente código:

h2o.init(nthreads=-1)
##  Connection successful!
## 
## R is connected to the H2O cluster: 
##     H2O cluster uptime:         3 hours 44 minutes 
##     H2O cluster timezone:       America/Bogota 
##     H2O data parsing timezone:  UTC 
##     H2O cluster version:        3.30.0.1 
##     H2O cluster version age:    4 months and 30 days !!! 
##     H2O cluster name:           H2O_started_from_R_esteb_pfw245 
##     H2O cluster total nodes:    1 
##     H2O cluster total memory:   3.96 GB 
##     H2O cluster total cores:    8 
##     H2O cluster allowed cores:  8 
##     H2O cluster healthy:        TRUE 
##     H2O Connection ip:          localhost 
##     H2O Connection port:        54321 
##     H2O Connection proxy:       NA 
##     H2O Internal Security:      FALSE 
##     H2O API Extensions:         Amazon S3, Algos, AutoML, Core V3, TargetEncoder, Core V4 
##     R Version:                  R version 4.0.2 (2020-06-22)
## Warning in h2o.clusterInfo(): 
## Your H2O cluster version is too old (4 months and 30 days)!
## Please download and install the latest version from http://h2o.ai/download/

Se cargan los datos a los cuales se les realizó un proceso de limpieza previamente:

setwd("G:/.shortcut-targets-by-id/1Gc04gd7KUHrKy7VvY9XeigRCfGHMw3C1/Trabajo Final AP")
Data <- read_delim("Datos/BD_Accidentalidad.csv", ";", escape_double = FALSE, trim_ws = TRUE)
## Parsed with column specification:
## cols(
##   ID = col_double(),
##   FECHA = col_character(),
##   DIA = col_double(),
##   PERIODO = col_double(),
##   CLASE = col_character(),
##   DIRECCION = col_character(),
##   CBML = col_character(),
##   CB = col_character(),
##   TIPO_GEOCOD = col_character(),
##   GRAVEDAD = col_character(),
##   DISENO = col_character(),
##   DIA_NOMBRE = col_character(),
##   MES = col_double(),
##   X_MAGNAMED = col_double(),
##   Y_MAGNAMED = col_double(),
##   LONGITUD = col_double(),
##   LATITUD = col_double(),
##   COMUNA.REAL = col_character(),
##   BARRIO.REAL = col_character()
## )

2 Definición de clases de Accidentes

Previamente se acordó que el usuario particular y objeto de este trabajo son las entidades públicas o privadas que requieran información para ubicar estratégicamente sus vehículos o equipos de respuesta para accidentes viales. Por lo anterior, se analizan las clases definidas en los datos originales:

AccxCG <- aggregate(ID~CLASE*GRAVEDAD,data=Data,FUN=length)
AccxCG[order(-AccxCG$ID),]

El 44.6% de los accidentes son Choques con gravedad Solo Daños. Además, se puede observar que de todas las posibles combinaciones únicamente esta no requiere un vehículo o equipo de emergencia, ya sea: ambulancia, vehículo de bomberos o un equipo de la DIJIN.

A partir de lo anterior y teniendo en cuenta el usuario objetivo, se dividen los accidentes en dos clases:

1. Tipo I: en esta clase se encuentran aquellos accidentes que, ni por su gravedad ni por su clase requieren la asistencia de un vehículo de emergencia. Es decir, aquellos en los que basta la presencia de las autoridades de tránsito y la asistencia de la aseguradora.

2. Tipo II: en esta clase se clasifican los accidentes que requieren, ya sea por su clase (volcamiento, incendio, atropello) o por su gravedad (muerte, herido) el apoyo de vehículos y/o equipos de emergencia

Se crea la variable TIPO en el dataset:

Data$TIPO<- if_else(Data$CLASE=="Choque" & Data$GRAVEDAD=="SOLO DAÑOS", "Tipo I", "Tipo II")
Data$TIPO <- as.factor(Data$TIPO)

3 Análisis Descriptivo

Cabe recordar que uno de los objetivos de este trabajo es construir un modelo que permita predecir la accidentalidad por tipo de accidente a nivel diario, semanal y mensual. Para ello, el primer paso consiste en analizar cómo se comportan los tipos de accidentes en diferentes ventanas de tiempo.

3.1 Análisis variables actuales

3.1.1 Análisis anual

Observe como cambian la cantidad de accidentes por tipo y por año:

Como se puede observar, para los accidentes Tipo I, no existen variaciones significativas a lo largo de los años. Se presentan aproximadamente 18682 accidentes por año con una desviación aproximada de 490. En el caso de los accidentes Tipo II, sí se nota cambios importantes a través de los años, con una media aproximada de 23203 y una desviación de 1106.

3.1.2 Análisis mensual

Observe como cambian la cantidad de accidentes por tipo y por mes:

Al analizar con una ventana de tiempo mensual, se notan importantes variaciones tanto para los accidentes de Tipo I como para los de Tipo II. La media y la desviación para cada uno de los tipos es, respectivamente: 7784 y 516 para el Tipo I y9668 y 532 para el Tipo II. Observe además que el mes de enero es el mes con menor accidentalidad y agosto el de mayor.

3.1.3 Análisis semanal

Observe como cambian la cantidad de accidentes por tipo y por semana:

Observe en el gráfico anterior que las dos primeras y las dos últimas semanas del año tienen baja frecuencia de accidentes de Tipos I y II. Las semanas 26 y 27 también parecen tener una menor frecuencia con respecto a las demás semanas. Esta hipótesis se comprobará en la siguiente sección.

3.1.4 Análisis día del mes

Observe como cambian la cantidad de accidentes por tipo y por día del mes (1 a 31):

Debido a que la cantidad de días por mes cambia (28, 29, 30 o 31 días), en este caso se analizan los accidentes promedio por día del mes. En la gráfica se puede observar que los últimos días del mes la accidentalidad es más baja, por el contrario, los días posteriores a la quincena y los días 10 y 28 del mes tienen una alta accidentalidad.

3.1.5 Análisis día de la semana

Observe cómo cambian la cantidad de accidentes de domingo a lunes por tipo:

En este caso, también hay diferencias notables entre la cantidad de accidentes en cada día de la semana. El domingo es el día con menos registros, especialmente de los accidentes Tipo I. El viernes, por su parte, es el día con más accidentes registrados. Los días laborales, de lunes a viernes parecen tener en promedio más accidentes que los no laborales, esto será analizado más adelante en la inclusión de variables.

3.2 Inclusión de variables

En esta sección, se incluirán variables que pueden aportar información valiosa para la predicción.

3.2.1 Día Laboral

# Creación de la variable
Data$DIA.LAB <- as.factor(if_else(Data$DIA_NOMBRE %in% c("SÁBADO","DOMINGO"),"NO","SI"))

Para los accidentes de tipo I la caja de rango intercuartil (que representa el 50% intermedio de los datos) de los días laborales es (49, 65) mientras que de los días no laborales es (26, 52), es decir que, hay mayor dispersión en los días no laborales. Además, los accidentes en los días no laborales de Tipo I presentan un sesgo hacia arriba pero tienen una mediadana mucho menor que la de los accidentes en días laborales, lo que sugiere diferencias importantes entre los días laborales y no laborales en este tipo de accidentes. En los accidentes de Tipo II la diferencia no es tan marcada, los días laborales y no laborales presentan los siguientes rangos intecuartiles respectivamente: (59, 74) y (47, 65.75)

Prueba de medias con varianzas diferentes
En estas pruebas interesa estudiar el siguiente conjuto de hipótesis:
\(H_0: \mu_1 - \mu_2 = 0\)
\(H_0: \mu_1 - \mu_2 \neq 0\)
Se realiza la prueba para los accidentes de Tipo I y se concluye por valor-p e intervalo de confianza que sí hay diferencias significativas en la cantidad promedio de accidentes Tipo I promedio en días laborales y no laborales:

## 
##  Welch Two Sample t-test
## 
## data:  AccxDLAB[AccxDLAB$TIPO == "Tipo I" & AccxDLAB$DIA.LAB == "SI", 4] and AccxDLAB[AccxDLAB$TIPO == "Tipo I" & AccxDLAB$DIA.LAB == "NO", 4]
## t = 21.372, df = 885.29, p-value < 0.00000000000000022
## alternative hypothesis: true difference in means is not equal to 0
## 97 percent confidence interval:
##  15.05559 18.46463
## sample estimates:
## mean of x mean of y 
##  55.94785  39.18774

Se realiza la prueba para los accidentes de Tipo II y se concluye por valor-p e intervalo de confianza que sí hay diferencias significativas en la cantidad promedio de accidentes Tipo II promedio en días laborales y no laborales:

## 
##  Welch Two Sample t-test
## 
## data:  AccxDLAB[AccxDLAB$TIPO == "Tipo II" & AccxDLAB$DIA.LAB == "SI", 4] and AccxDLAB[AccxDLAB$TIPO == "Tipo II" & AccxDLAB$DIA.LAB == "NO", 4]
## t = 14.692, df = 925.51, p-value < 0.00000000000000022
## alternative hypothesis: true difference in means is not equal to 0
## 97 percent confidence interval:
##   8.13039 10.95354
## sample estimates:
## mean of x mean of y 
##  66.26227  56.72031

3.2.2 Festivos

# Importación de los datos
setwd("G:/Mi unidad/Trabajo Final AP")
Festivos <- read_csv("Datos/Festivos.csv", col_names = FALSE, cols(X1 = col_character()))
Festivos$X1 <- as.Date(Festivos$X1, "%d/%m/%Y")
#Creación de la variable
Data$FEST <- as.factor(if_else(Data$FECHA %in% Festivos$X1,"SI","NO"))

Tanto para los accidentes de Tipo I como para los accidentes de Tipo II se pueden observar diferencias significativas entre la distribución de los días festivos y no festivos. Lo anterior es más notorio en los accidentes de Tipo I donde el 99% de los días tienen una frecuencia inferior al cuartil 25% de los días no festivos. En los accidentes de Tipo II las cajas tampoco se solapan, lo que sugiere diferencias significativas entre las medianas.

Prueba de medias con varianzas diferentes
Se realiza la prueba para los accidentes de Tipo I y se concluye por valor p e intervalo de confianza que sí hay diferencias significativas en la cantidad promedio de accidentes Tipo I promedio en días festivos y no festivos:

## 
##  Welch Two Sample t-test
## 
## data:  AccxFEST[AccxFEST$TIPO == "Tipo I" & AccxFEST$FEST == "SI", 4] and AccxFEST[AccxFEST$TIPO == "Tipo I" & AccxFEST$FEST == "NO", 4]
## t = -32.197, df = 131.09, p-value < 0.00000000000000022
## alternative hypothesis: true difference in means is not equal to 0
## 97 percent confidence interval:
##  -31.41090 -27.40319
## sample estimates:
## mean of x mean of y 
##  23.24731  52.65436

Se realiza la prueba para los accidentes de Tipo II y se concluye por valor p e intervalo de confianza que sí hay diferencias significativas en la cantidad promedio de accidentes Tipo II promedio en días festivos y no festivos:

## 
##  Welch Two Sample t-test
## 
## data:  AccxFEST[AccxFEST$TIPO == "Tipo II" & AccxFEST$FEST == "SI", 4] and AccxFEST[AccxFEST$TIPO == "Tipo II" & AccxFEST$FEST == "NO", 4]
## t = -17.39, df = 109.3, p-value < 0.00000000000000022
## alternative hypothesis: true difference in means is not equal to 0
## 97 percent confidence interval:
##  -20.53072 -15.92172
## sample estimates:
## mean of x mean of y 
##  46.23656  64.46278

3.2.3 Día de madres

#Creación de la variable
Data$DMadre <- as.factor(if_else(Data$FECHA %in% as.Date(c("2014-05-11","2015-05-10","2016-05-08","2017-05-14","2018-05-13")),"SI","NO"))

Para realizar la comparación se tomarán solo los días domingo:

Se puede observar que para los accidentes de Tipo I hay evidencia que sugiere que hay diferencia significativa entre las medianas. Por el contrario, en los accidentes de Tipo II, las cajas se traslapan sugiriendo medias iguales.

Prueba de medias con varianzas diferentes
Se realiza la prueba para los accidentes de Tipo I y se concluye por valor p e intervalo de confianza que sí hay diferencias significativas en la cantidad promedio de accidentes Tipo I promedio en días de madres vs. domingos corrientes:

## 
##  Welch Two Sample t-test
## 
## data:  AccxMADRES[AccxMADRES$TIPO == "Tipo I" & AccxMADRES$DMadre == "SI", 4] and AccxMADRES[AccxMADRES$TIPO == "Tipo I" & AccxMADRES$DMadre == "NO", 4]
## t = 5.6642, df = 4.1979, p-value = 0.004137
## alternative hypothesis: true difference in means is not equal to 0
## 97 percent confidence interval:
##   6.129406 22.328407
## sample estimates:
## mean of x mean of y 
##  40.60000  26.37109

Se realiza la prueba para los accidentes de Tipo II y se concluye por valor p e intervalo de confianza que no hay diferencias significativas en la cantidad promedio de accidentes Tipo II promedio en días de madres vs. domingos corrientes:

## 
##  Welch Two Sample t-test
## 
## data:  AccxMADRES[AccxMADRES$TIPO == "Tipo II" & AccxMADRES$DMadre == "SI", 4] and AccxMADRES[AccxMADRES$TIPO == "Tipo II" & AccxMADRES$DMadre == "NO", 4]
## t = 2.0806, df = 4.1969, p-value = 0.1027
## alternative hypothesis: true difference in means is not equal to 0
## 97 percent confidence interval:
##  -4.369182 20.261370
## sample estimates:
## mean of x mean of y 
##  57.20000  49.25391

3.2.5 Diciembre 31

#Creación de la variable
Data$DIC31 <- as.factor(if_else(Data$FECHA %in% as.Date(c("2014-12-31","2015-12-31","2016-12-31","2017-12-31","2018-12-31")),"SI","NO"))

Note que el gráfico presenta evidencia que sugiere diferencias en las medianas dado que las cajas no se traslapan. Además para el Tipo I de accidentes, con un valor-p de 0.0005278 se rechaza la hipótesis nula \(H_0: \mu_1 - \mu_2 = 0\) y se concluye que hay diferencias significativas en la cantidad promedio de accidentes Tipo I promedio entre los 31 de diciembre y los demás días del mes. Para el Tipo II, se acepta la hipótesis nula con un valor-p de 0.0426897.

Recuerde que los días 31 eran días con menor accidentalidad, por lo tanto también evaluamos la diferencia entre las medias contra los 31 de los demás meses. Sin embargo, la hipótesis nula se rechazó para el Tipo I con un valor-p de 0.0003264.

3.2.6 Primera y segunda semana del año

#Creación de la variable
Data$SEM1Y2 <- as.factor(if_else(Data$SEMANA %in% c("01","02"),"SI","NO"))

En la gráfica anterior se puede observar evidencia que sugiere que la accidentalidad diaria en las semanas 1 y 2 del año en comparación con las demás semanas del año es menor. Se prueba la diferencia entre las medias para cada tipo de accidente:

Tipo 1

## 
##  Welch Two Sample t-test
## 
## data:  AccxSEM1Y2[AccxSEM1Y2$TIPO == "Tipo I" & AccxSEM1Y2$SEM1Y2 == "SI", 4] and AccxSEM1Y2[AccxSEM1Y2$TIPO == "Tipo I" & AccxSEM1Y2$SEM1Y2 == "NO", 4]
## t = -11.311, df = 77.205, p-value < 0.00000000000000022
## alternative hypothesis: true difference in means is not equal to 0
## 97 percent confidence interval:
##  -21.02767 -14.15114
## sample estimates:
## mean of x mean of y 
##  34.23188  51.82129

Se rechaza la hipótesis nula con un valor-p de 0 y un intervalo de confianza (-21.0276669, -14.1511376), es decir, la frecuencia promedio de accidentes Tipo I diarios en las dos primeras semanas del año es menor que la frecuencia promedio en las otras semanas del año.

Tipo 2

## 
##  Welch Two Sample t-test
## 
## data:  AccxSEM1Y2[AccxSEM1Y2$TIPO == "Tipo II" & AccxSEM1Y2$SEM1Y2 == "SI", 4] and AccxSEM1Y2[AccxSEM1Y2$TIPO == "Tipo II" & AccxSEM1Y2$SEM1Y2 == "NO", 4]
## t = -11.737, df = 76.854, p-value < 0.00000000000000022
## alternative hypothesis: true difference in means is not equal to 0
## 97 percent confidence interval:
##  -17.52134 -11.96627
## sample estimates:
## mean of x mean of y 
##  49.34783  64.09163

Se rechaza la hipótesis nula con un valor-p de 0 y un intervalo de confianza (-17.5213418, -11.966273), es decir, la frecuencia promedio de accidentes Tipo II diarios en las dos primeras semanas del año es menor que la frecuencia promedio en las otras semanas del año.

3.2.7 Semana Santa

En esta sección, se analiza la frecuencia diaria de accidentes en semana santa vs. los días corrientes:

#Creación de la variable
Data$SSANTA <- as.factor(if_else(Data$FECHA %in% c(seq(as.Date("2014-04-13"),as.Date("2014-04-19"),1),
                                                   seq(as.Date("2015-03-29"),as.Date("2015-04-04"),1),
                                                   seq(as.Date("2016-03-20"),as.Date("2016-03-26"),1),
                                                   seq(as.Date("2017-04-09"),as.Date("2017-04-15"),1),
                                                   seq(as.Date("2018-03-25"),as.Date("2018-03-31"),1)),
                                 "SI","NO"))

En la gráfica anterior se puede observar que las cajas se traslapan tanto en los accidentes de Tipo I como en los accidentes de Tipo II. Si bien no se presenta evidencia clara de diferencias en la distribución de los accidentes diarios en Semana Santa y fuera de ella, se realiza la prueba de medias con varianzas diferentes antes de descartar la variable.

Prueba de medias con varianzas diferentes
Se realiza la prueba para los accidentes de Tipo I y Tipo II y por valor-p e intervalo de confianza, se descarta \(H_0\) en ambos tipos:

1. Tipo I

t.test(AccxSSANTA[AccxSSANTA$TIPO=="Tipo I" & AccxSSANTA$SSANTA=="SI",4], AccxSSANTA[AccxSSANTA$TIPO=="Tipo I" & AccxSSANTA$SSANTA=="NO",4], alternative="two.sided", mu=0, paired=FALSE, var.equal=FALSE, conf.level=0.97)
## 
##  Welch Two Sample t-test
## 
## data:  AccxSSANTA[AccxSSANTA$TIPO == "Tipo I" & AccxSSANTA$SSANTA == "SI", 4] and AccxSSANTA[AccxSSANTA$TIPO == "Tipo I" & AccxSSANTA$SSANTA == "NO", 4]
## t = -4.9522, df = 34.835, p-value = 0.00001874
## alternative hypothesis: true difference in means is not equal to 0
## 97 percent confidence interval:
##  -25.059525  -9.341688
## sample estimates:
## mean of x mean of y 
##  34.28571  51.48632

2. Tipo II

t.test(AccxSSANTA[AccxSSANTA$TIPO=="Tipo II" & AccxSSANTA$SSANTA=="SI",4], AccxSSANTA[AccxSSANTA$TIPO=="Tipo II" & AccxSSANTA$SSANTA=="NO",4], alternative="two.sided", mu=0, paired=FALSE, var.equal=FALSE, conf.level=0.97)
## 
##  Welch Two Sample t-test
## 
## data:  AccxSSANTA[AccxSSANTA$TIPO == "Tipo II" & AccxSSANTA$SSANTA == "SI", 4] and AccxSSANTA[AccxSSANTA$TIPO == "Tipo II" & AccxSSANTA$SSANTA == "NO", 4]
## t = -5.4538, df = 34.948, p-value = 0.000004073
## alternative hypothesis: true difference in means is not equal to 0
## 97 percent confidence interval:
##  -20.058870  -8.296495
## sample estimates:
## mean of x mean of y 
##  49.62857  63.80625

Como hay diferencia estadística entre las medias para ambos tipos de accidentes, se conserva la variable en el dataset.

3.2.8 Viernes después de quincena

Para realizar el análisis sugerido en el título de esta sección, debemos primero crear un vector con todos los viernes después de quincena (días de pago) durante los 5 años. Para ello, usaremos la función nextweekday que permite encontrar el siguiente día particular, esta función la tomamos de la entrada de Stack Overflow: How to find next particular day?

Se crea el vector con todos los viernes después de los días 15 y 30 de cada mes:

Quincena <- unique(Data$FECHA[Data$DIA=="15"|Data$DIA=="30"]) #Vector con fechas quincea
FRI.POST.PAY <- nextweekday(Quincena,6) #El 6 representa los viernes
Data$FRI.POST.PAY <- as.factor(if_else(Data$FECHA %in% FRI.POST.PAY,"SI","NO")) #Creación de la variable

En el gráfico no se pueden evidenciar grandes diferencias para la distribución de los accidentes en viernes después de pago y en viernes corrientes. Además, la prueba de medias con varianzas diferentes para ambos tipos indica que se debe aceptar \(H_0\) con un valor-p de 0.9630919 y 0.7601032 respectivamente. Por lo tanto se elimina esta variable del dataset.

Data$FRI.POST.PAY <- NULL

Se probaron otras variables como: Noche buena, quincenas(15 y 30), primero de diciembre, Feria de las Flores, sábados después de pagos y primer viernes del mes; sin embargo, la diferencia entre las medias no era significativa para ninguno de los dos tipos de accidentes, por lo tanto no se incluyeron en el dataset.

4 Creación de los Datasets para predicción

Creamos un dataframe base con las fechas y las demás variables dependientes, el cual se combinará con la cantidad de accidentes diarios de cada tipo en cada comuna. Las variables incluidas son:
- Fecha: del 2014-01-01 al 2018-12-31
- Año: 2014 a 2018
- Mes: 1 a 12
- Día del mes: 1 a 30
- Semana: 1 a 52
- Día de la semana: Lunes a Domingo
- Día laboral: 1 si es día laboral, 0 en otro caso
- Día festivo: 1 si es día festivo, 0 en otro caso
- Día de madres: 1 si es día de madres, 0 en otro caso
- Diciembre 31: 1 si es 31 de diciembre, 0 en otro caso

Unimos este dataset con el conteo diario de accidentes por tipo y por comuna para obtener dos datasets DataF1 y DataF2 (uno por cada tipo de accidente), con:
- Variables relacionadas con las fechas (meses, día, semana, día de la semana, fechas especiales)
- Una variable indicadora por comuna
- Variable respuesta: número de accidentes de tipo X

Cada dataset tiene 40172 filas y 149 columnas. Es decir, tenemos un registro para cada día entre el 2014-01-01 y el 2018-31-12 (1826 días) por cada comuna (22 comunas).

Data3 <- aggregate(ID~FECHA,data=Data[Data$TIPO=="Tipo I",],FUN=length)
Data4 <- aggregate(ID~FECHA,data=Data[Data$TIPO=="Tipo II",],FUN=length)
Data3 <- merge(Base, Data3, by.x="FECHA", by.y="FECHA")
Data4 <- merge(Base, Data4, by.x="FECHA", by.y="FECHA")

4.1 Creación de las variables independientes para la predicción

DataP <- data.frame(FECHA =  seq(as.Date("2019-01-01"),as.Date("2020-12-31"),1))
DataP$AÑO <- as.integer(format(as.Date(DataP$FECHA, format="%Y/%m/%d"),"%Y"))
DataP$MES <- as.factor(format(as.Date(DataP$FECHA, format="%Y/%m/%d"),"%m")) #Agregamos variable mes
DataP$DIAM <- as.factor(format(as.Date(DataP$FECHA, format="%Y/%m/%d"),"%d")) 
DataP$SEM <- as.factor(format(as.Date(DataP$FECHA, format="%Y/%m/%d"),"%V")) 
Festivos2 <- as.Date(c("2019-01-01","2019-01-07","2019-03-05","2019-03-25","2019-04-18","2019-04-19","2019-05-01","2019-06-03","2019-06-24","2019-07-01","2019-07-20","2019-08-07","2019-08-19","2019-10-14","2019-11-04","2019-11-11","2019-12-08","2019-12-25",
              "2020-01-01","2020-01-06","2020-03-26","2020-04-09","2020-04-10","2020-05-01","2020-05-25","2020-06-15","2020-06-22","2020-06-29","2020-07-20","2020-08-07","2020-08-17","2020-10-12","2020-11-02","2020-11-16","2020-12-08","2020-12-25" ))
DataP$DIAS <- as.factor(weekdays(DataP$FECHA, abbreviate = TRUE))
DataP$FESTIVO <- as.factor(if_else(DataP$FECHA %in% Festivos2,1,0))
DataP$MADRE <- as.factor(if_else(DataP$FECHA %in% as.Date(c("2019-05-12","2020-05-10")),1,0))
DataP$DIC31 <- as.factor(if_else(DataP$FECHA %in% as.Date(c("2019-12-31","2020-12-31")),1,0))
DataP$SSANTA <- as.factor(if_else(DataP$FECHA %in% c(seq(as.Date("2019-04-14"),as.Date("2020-04-20"),1),
                                                    seq(as.Date("2020-04-05"),as.Date("2020-04-11"),1))
                                 ,1,0))
DataP <- cbind(FECHA=DataP$FECHA,as.data.frame(model.matrix(~.-1, DataP[,-c(1)])))

5 Modelos de Predicción Accidentes Tipo 1 con comunas

Los datos serán cargados directamente de los archivos creados anteriormente.

Modelos con Comunas

El primer grupo de modelos busca predecir la accidentalidad en cada comuna de la ciudad de Medellín teniendo en cuenta los espacios temporales diario, mensual y anual, además de considerar las fechas especiales mencionadas anteriormente. La diferenciación por comuna se propone para analizar si realmente esto ayuda a la precisión de los modelos y a disminuir su error, pero cabe recordar que la diferenciación por comuna y por barrio se realiza en la sección de agrupamiento del trabajo.

Carga de Datos

Partición de la data para entrenamiento y validación

Cdatos_tr1<-subset(DataF1,subset=(AÑO<"2018"))
Cdatos_vl1<-subset(DataF1,subset=(AÑO>="2018") & (AÑO<"2019") )

Se eliminan variables innecesarias para los modelos, pues estos no le asignan valores a éstas por considerarlas “singularidades” o redundantes dado que dependen de otras variables directamente, a continuación el porqué de cada una:
- MES12: es el mes de diciembre y es 1 siempre y cuando los otros 11 meses sean 0.
- DIA.LAB1: anteriormente esta variable se creo asignandole valores de 1 siempre y cuando en la variable DIAS los valores fueran los correspondientes a sábados y domingos, por lo tanto, con la variable DIAS es suficiente para explicar esto.
- SEM1_21: esta variable depende directamente de la variable SEM, la unica diferencia es que toma valores de 1 tanto cuando la semana del año es la 1 como la 2, de resto es 0.
- C.VILLA HERMOSA: ubicada como la última comuna de la lista cuando esta variable se convirtió en dummie, solo toma valores de 1 cuando el el resto de las variables de Comuna son 0.

5.1 Modelo lineal

Entrenamiento

Clm_1<-lm(Y1~.-AÑO ,data=Cdatos_tr1)
summary(Clm_1)
## 
## Call:
## lm(formula = Y1 ~ . - AÑO, data = Cdatos_tr1)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -11.9699  -0.8230  -0.2078   0.7984  23.4215 
## 
## Coefficients:
##                            Estimate Std. Error t value             Pr(>|t|)    
## (Intercept)               0.7724700  0.2028677   3.808             0.000140 ***
## MES1                     -0.2713552  0.1832297  -1.481             0.138628    
## MES2                     -0.2738026  0.2261149  -1.211             0.225943    
## MES3                     -0.2534226  0.2556804  -0.991             0.321610    
## MES4                     -0.6466899  0.2747248  -2.354             0.018581 *  
## MES5                     -0.5301660  0.2875931  -1.843             0.065271 .  
## MES6                     -0.3769683  0.2894032  -1.303             0.192731    
## MES7                     -0.4161408  0.2843660  -1.463             0.143368    
## MES8                     -0.3666280  0.2706259  -1.355             0.175510    
## MES9                     -0.1706773  0.2468910  -0.691             0.489378    
## MES10                     0.0829621  0.2126400   0.390             0.696426    
## MES11                    -0.1831763  0.1623163  -1.129             0.259111    
## DIAM02                   -0.0674696  0.0866032  -0.779             0.435946    
## DIAM03                   -0.0279329  0.0874816  -0.319             0.749501    
## DIAM04                   -0.0909856  0.0886188  -1.027             0.304566    
## DIAM05                    0.0748121  0.0894541   0.836             0.402983    
## DIAM06                    0.0376260  0.0908145   0.414             0.678644    
## DIAM07                    0.1459416  0.0920656   1.585             0.112933    
## DIAM08                   -0.0755949  0.0934367  -0.809             0.418493    
## DIAM09                   -0.1138186  0.0942798  -1.207             0.227348    
## DIAM10                    0.0576216  0.0955317   0.603             0.546402    
## DIAM11                   -0.0376035  0.0969410  -0.388             0.698092    
## DIAM12                   -0.0069225  0.0973322  -0.071             0.943301    
## DIAM13                   -0.0574688  0.0977287  -0.588             0.556507    
## DIAM14                    0.0072053  0.0983908   0.073             0.941622    
## DIAM15                    0.0023691  0.0984917   0.024             0.980810    
## DIAM16                    0.0799806  0.0982995   0.814             0.415856    
## DIAM17                    0.1678463  0.0980203   1.712             0.086839 .  
## DIAM18                    0.0850174  0.0984851   0.863             0.388006    
## DIAM19                   -0.0072778  0.0983860  -0.074             0.941034    
## DIAM20                    0.0232851  0.0973137   0.239             0.810891    
## DIAM21                   -0.0192821  0.0968572  -0.199             0.842203    
## DIAM22                   -0.0508949  0.0965253  -0.527             0.598009    
## DIAM23                    0.0572746  0.0949943   0.603             0.546562    
## DIAM24                   -0.0507265  0.0937426  -0.541             0.588425    
## DIAM25                    0.0023990  0.0927669   0.026             0.979369    
## DIAM26                   -0.0676708  0.0919675  -0.736             0.461851    
## DIAM27                   -0.1044260  0.0903356  -1.156             0.247699    
## DIAM28                    0.0760047  0.0890319   0.854             0.393289    
## DIAM29                    0.0004879  0.0895215   0.005             0.995652    
## DIAM30                   -0.0660154  0.0895783  -0.737             0.461154    
## DIAM31                   -0.1463839  0.1104824  -1.325             0.185197    
## SEM02                     0.3370397  0.1208996   2.788             0.005310 ** 
## SEM03                     0.5678090  0.1249201   4.545 0.000005503754462030 ***
## SEM04                     0.7506991  0.1233715   6.085 0.000000001179110102 ***
## SEM05                     0.7538660  0.1435382   5.252 0.000000151397287582 ***
## SEM06                     0.7710934  0.1923002   4.010 0.000060896975805322 ***
## SEM07                     0.9948931  0.1958601   5.080 0.000000380331859557 ***
## SEM08                     0.7931628  0.1963283   4.040 0.000053579731064892 ***
## SEM09                     0.8425127  0.2030572   4.149 0.000033458855915166 ***
## SEM10                     0.9746547  0.2380134   4.095 0.000042328341643585 ***
## SEM11                     0.8467149  0.2420470   3.498             0.000469 ***
## SEM12                     0.7892074  0.2440357   3.234             0.001222 ** 
## SEM13                     0.9502283  0.2387322   3.980 0.000068976896201797 ***
## SEM14                     1.3464883  0.2630651   5.118 0.000000309819453001 ***
## SEM15                     1.4309449  0.2735158   5.232 0.000000169040618889 ***
## SEM16                     1.0921993  0.2753310   3.967 0.000072984430597110 ***
## SEM17                     1.4694324  0.2719103   5.404 0.000000065596533892 ***
## SEM18                     1.3576425  0.2760099   4.919 0.000000874998232586 ***
## SEM19                     1.1809328  0.2918902   4.046 0.000052264485015242 ***
## SEM20                     1.1865922  0.2946091   4.028 0.000056458908553611 ***
## SEM21                     1.1728770  0.2949808   3.976 0.000070204516346639 ***
## SEM22                     1.0365738  0.2859072   3.626             0.000289 ***
## SEM23                     0.9819027  0.3023315   3.248             0.001164 ** 
## SEM24                     0.9481102  0.3053936   3.105             0.001907 ** 
## SEM25                     0.8187641  0.3065543   2.671             0.007570 ** 
## SEM26                     0.7872269  0.2996543   2.627             0.008615 ** 
## SEM27                     0.9192266  0.3015816   3.048             0.002305 ** 
## SEM28                     0.9740755  0.3084834   3.158             0.001592 ** 
## SEM29                     1.0789330  0.3108738   3.471             0.000520 ***
## SEM30                     1.1427534  0.3102151   3.684             0.000230 ***
## SEM31                     1.3046333  0.2950171   4.422 0.000009800902482714 ***
## SEM32                     1.2642923  0.3040409   4.158 0.000032146259844159 ***
## SEM33                     1.0065525  0.3067409   3.281             0.001034 ** 
## SEM34                     0.8624789  0.3075961   2.804             0.005051 ** 
## SEM35                     0.8639409  0.2946165   2.932             0.003366 ** 
## SEM36                     0.7878220  0.2916860   2.701             0.006918 ** 
## SEM37                     0.8844913  0.2953780   2.994             0.002752 ** 
## SEM38                     0.9081964  0.2967532   3.060             0.002212 ** 
## SEM39                     0.6565544  0.2897049   2.266             0.023440 *  
## SEM40                     0.7566036  0.2700268   2.802             0.005082 ** 
## SEM41                     0.4389308  0.2751932   1.595             0.110724    
## SEM42                     0.4498422  0.2781306   1.617             0.105807    
## SEM43                     0.5569265  0.2776358   2.006             0.044869 *  
## SEM44                     0.7592795  0.2516497   3.017             0.002553 ** 
## SEM45                     0.6671801  0.2488086   2.681             0.007333 ** 
## SEM46                     0.8934730  0.2521189   3.544             0.000395 ***
## SEM47                     0.8421957  0.2531310   3.327             0.000878 ***
## SEM48                     0.8547340  0.2293734   3.726             0.000195 ***
## SEM49                     0.8361132  0.2008017   4.164 0.000031370993276890 ***
## SEM50                     0.8322129  0.2056785   4.046 0.000052181499695616 ***
## SEM51                     0.9217186  0.2078634   4.434 0.000009270025785508 ***
## SEM52                     0.3319971  0.1981482   1.675             0.093846 .  
## SEM53                     0.1891882  0.1986005   0.953             0.340796    
## DIASMon                  -0.2188432  0.0423906  -5.163 0.000000245067894127 ***
## DIASSat                  -0.4686446  0.0413210 -11.342 < 0.0000000000000002 ***
## DIASSun                  -1.5510881  0.0415071 -37.369 < 0.0000000000000002 ***
## DIASThu                  -0.2758886  0.0412583  -6.687 0.000000000023175467 ***
## DIASTue                  -0.1295054  0.0413295  -3.133             0.001729 ** 
## DIASWed                  -0.2510595  0.0413243  -6.075 0.000000001251167311 ***
## FESTIVO1                 -1.3394019  0.0572462 -23.397 < 0.0000000000000002 ***
## MADRE1                    0.4308424  0.2249672   1.915             0.055484 .  
## DIC311                   -0.4699086  0.2514265  -1.869             0.061636 .  
## SSANTA1                  -0.3572259  0.0935488  -3.819             0.000134 ***
## C.ALTAVISTA              -0.8145106  0.0730622 -11.148 < 0.0000000000000002 ***
## C.ARANJUEZ                1.5605749  0.0730622  21.360 < 0.0000000000000002 ***
## C.BELEN                   2.6167009  0.0730622  35.815 < 0.0000000000000002 ***
## `C.BUENOS AIRES`          0.6960986  0.0730622   9.527 < 0.0000000000000002 ***
## C.CASTILLA                3.8706366  0.0730622  52.977 < 0.0000000000000002 ***
## `C.DOCE DE OCTUBRE`      -0.2053388  0.0730622  -2.810             0.004950 ** 
## `C.EL POBLADO`            5.0212183  0.0730622  68.725 < 0.0000000000000002 ***
## C.GUAYABAL                3.0643395  0.0730622  41.941 < 0.0000000000000002 ***
## `C.LA AMERICA`            0.7973990  0.0730622  10.914 < 0.0000000000000002 ***
## `C.LA CANDELARIA`        12.1218344  0.0730622 165.911 < 0.0000000000000002 ***
## C.LAURELES                6.0355921  0.0730622  82.609 < 0.0000000000000002 ***
## C.MANRIQUE               -0.0054757  0.0730622  -0.075             0.940258    
## C.PALMITAS               -0.8740589  0.0730622 -11.963 < 0.0000000000000002 ***
## C.POPULAR                -0.4647502  0.0730622  -6.361 0.000000000203125174 ***
## C.ROBLEDO                 1.7104723  0.0730622  23.411 < 0.0000000000000002 ***
## `C.SAN ANTONIO DE PRADO` -0.5790554  0.0730622  -7.926 0.000000000000002345 ***
## `C.SAN CRISTOBAL`        -0.5913758  0.0730622  -8.094 0.000000000000000597 ***
## `C.SAN JAVIER`           -0.2970568  0.0730622  -4.066 0.000047981311357231 ***
## `C.SANTA CRUZ`           -0.4250513  0.0730622  -5.818 0.000000006024402795 ***
## `C.SANTA ELENA`          -0.7515400  0.0730622 -10.286 < 0.0000000000000002 ***
## `C.VIA LAS PALMAS `      -0.8583162  0.0730622 -11.748 < 0.0000000000000002 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.975 on 32017 degrees of freedom
## Multiple R-squared:  0.7137, Adjusted R-squared:  0.7126 
## F-statistic: 643.6 on 124 and 32017 DF,  p-value: < 0.00000000000000022

Validación

Cpred_lm_1<-predict(Clm_1,newdata = Cdatos_vl1)
head(Cpred_lm_1)
##      32143      32144      32145      32146      32147      32148 
##  0.5034446 -1.3541871 -1.9311892 -0.3610317 -1.8716409 -1.6485061

MSE y RMSE para el Modelo Lineal

  • Entrenamiento

MSE: 3.8843103
RMSE: 1.9708654

  • Validación
## [1] 4.110107
## [1] 2.02734

MSE: 4.1101066
RMSE: 2.0273398

*Variación

CVarMSEml<-((CMSE_lm_tr_1-CMSE_lm_1)/CMSE_lm_tr_1)*100
CVarMSEml
## [1] -5.813034

*Media

mean(Cdatos_vl1$Y1)
## [1] 2.363263

5.2 Modelo Poisson

Entrenamiento

Cglm_1<-glm(Y1~.-AÑO ,data=Cdatos_tr1,family = "poisson")
summary(Cglm_1)
## 
## Call:
## glm(formula = Y1 ~ . - AÑO, family = "poisson", data = Cdatos_tr1)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -4.3054  -0.8431  -0.2644   0.4418   4.8178  
## 
## Coefficients:
##                           Estimate Std. Error z value             Pr(>|z|)    
## (Intercept)              -0.080624   0.080816  -0.998             0.318462    
## MES1                     -0.388916   0.076300  -5.097 0.000000344730065822 ***
## MES2                     -0.367115   0.086477  -4.245 0.000021834790775038 ***
## MES3                     -0.325144   0.093395  -3.481             0.000499 ***
## MES4                     -0.490832   0.098379  -4.989 0.000000606250770652 ***
## MES5                     -0.424429   0.101009  -4.202 0.000026470087127256 ***
## MES6                     -0.328412   0.100576  -3.265             0.001093 ** 
## MES7                     -0.344432   0.097113  -3.547             0.000390 ***
## MES8                     -0.294333   0.091914  -3.202             0.001364 ** 
## MES9                     -0.180816   0.082825  -2.183             0.029028 *  
## MES10                    -0.041393   0.070001  -0.591             0.554308    
## MES11                    -0.111003   0.052818  -2.102             0.035586 *  
## DIAM02                   -0.012397   0.029689  -0.418             0.676258    
## DIAM03                    0.006543   0.029780   0.220             0.826090    
## DIAM04                   -0.022760   0.030123  -0.756             0.449901    
## DIAM05                    0.040280   0.030195   1.334             0.182205    
## DIAM06                    0.039347   0.030841   1.276             0.202024    
## DIAM07                    0.090433   0.031144   2.904             0.003687 ** 
## DIAM08                   -0.003074   0.032277  -0.095             0.924135    
## DIAM09                   -0.026832   0.032401  -0.828             0.407599    
## DIAM10                    0.048046   0.032222   1.491             0.135938    
## DIAM11                    0.005578   0.032906   0.170             0.865392    
## DIAM12                    0.022350   0.033277   0.672             0.501806    
## DIAM13                    0.002699   0.033615   0.080             0.936009    
## DIAM14                    0.039631   0.033389   1.187             0.235248    
## DIAM15                    0.034839   0.033549   1.038             0.299059    
## DIAM16                    0.071430   0.033326   2.143             0.032082 *  
## DIAM17                    0.107922   0.033256   3.245             0.001174 ** 
## DIAM18                    0.073386   0.033482   2.192             0.028396 *  
## DIAM19                    0.033644   0.033566   1.002             0.316181    
## DIAM20                    0.042063   0.033506   1.255             0.209344    
## DIAM21                    0.031426   0.033045   0.951             0.341604    
## DIAM22                    0.014917   0.032953   0.453             0.650778    
## DIAM23                    0.064015   0.032404   1.976             0.048207 *  
## DIAM24                    0.016670   0.032153   0.518             0.604143    
## DIAM25                    0.034670   0.031944   1.085             0.277769    
## DIAM26                    0.011090   0.031666   0.350             0.726172    
## DIAM27                   -0.007841   0.030928  -0.254             0.799868    
## DIAM28                    0.063783   0.029908   2.133             0.032956 *  
## DIAM29                    0.027389   0.030493   0.898             0.369081    
## DIAM30                    0.009838   0.030617   0.321             0.747959    
## DIAM31                   -0.027784   0.037712  -0.737             0.461280    
## SEM02                     0.244909   0.049611   4.937 0.000000795054660483 ***
## SEM03                     0.363448   0.049070   7.407 0.000000000000129399 ***
## SEM04                     0.446262   0.047777   9.340 < 0.0000000000000002 ***
## SEM05                     0.451942   0.052630   8.587 < 0.0000000000000002 ***
## SEM06                     0.445096   0.068509   6.497 0.000000000081990686 ***
## SEM07                     0.530435   0.069176   7.668 0.000000000000017482 ***
## SEM08                     0.441837   0.069688   6.340 0.000000000229493445 ***
## SEM09                     0.462442   0.071051   6.509 0.000000000075839744 ***
## SEM10                     0.495891   0.082264   6.028 0.000000001659767693 ***
## SEM11                     0.434954   0.083897   5.184 0.000000216739278993 ***
## SEM12                     0.408684   0.085096   4.803 0.000001565817576961 ***
## SEM13                     0.466435   0.083131   5.611 0.000000020131444485 ***
## SEM14                     0.655751   0.091024   7.204 0.000000000000584171 ***
## SEM15                     0.684864   0.094890   7.217 0.000000000000529708 ***
## SEM16                     0.527317   0.096176   5.483 0.000000041851004165 ***
## SEM17                     0.682982   0.094465   7.230 0.000000000000483045 ***
## SEM18                     0.659381   0.095107   6.933 0.000000000004118527 ***
## SEM19                     0.567162   0.100492   5.644 0.000000016627672525 ***
## SEM20                     0.559548   0.101511   5.512 0.000000035434065128 ***
## SEM21                     0.555769   0.101922   5.453 0.000000049563598802 ***
## SEM22                     0.497399   0.099350   5.007 0.000000554158549800 ***
## SEM23                     0.460264   0.104544   4.403 0.000010696870342624 ***
## SEM24                     0.434122   0.105686   4.108 0.000039970296468175 ***
## SEM25                     0.369219   0.106428   3.469             0.000522 ***
## SEM26                     0.360838   0.104163   3.464             0.000532 ***
## SEM27                     0.434970   0.104890   4.147 0.000033698881324250 ***
## SEM28                     0.446922   0.106734   4.187 0.000028233650563926 ***
## SEM29                     0.473180   0.107496   4.402 0.000010734273986619 ***
## SEM30                     0.507889   0.107193   4.738 0.000002157640912379 ***
## SEM31                     0.561419   0.102699   5.467 0.000000045861908700 ***
## SEM32                     0.553650   0.105413   5.252 0.000000150284076085 ***
## SEM33                     0.427253   0.106584   4.009 0.000061081198252170 ***
## SEM34                     0.364654   0.107375   3.396             0.000684 ***
## SEM35                     0.360676   0.102965   3.503             0.000460 ***
## SEM36                     0.318682   0.101956   3.126             0.001774 ** 
## SEM37                     0.346574   0.103196   3.358             0.000784 ***
## SEM38                     0.344382   0.103736   3.320             0.000901 ***
## SEM39                     0.245890   0.102343   2.403             0.016279 *  
## SEM40                     0.270840   0.095011   2.851             0.004363 ** 
## SEM41                     0.129251   0.097252   1.329             0.183839    
## SEM42                     0.130546   0.098628   1.324             0.185629    
## SEM43                     0.167826   0.098290   1.707             0.087737 .  
## SEM44                     0.242256   0.091199   2.656             0.007899 ** 
## SEM45                     0.187456   0.090687   2.067             0.038729 *  
## SEM46                     0.275654   0.091408   3.016             0.002564 ** 
## SEM47                     0.250016   0.092121   2.714             0.006648 ** 
## SEM48                     0.250041   0.085507   2.924             0.003453 ** 
## SEM49                     0.232934   0.077764   2.995             0.002741 ** 
## SEM50                     0.218788   0.079833   2.741             0.006133 ** 
## SEM51                     0.225640   0.080605   2.799             0.005121 ** 
## SEM52                    -0.025838   0.081070  -0.319             0.749944    
## SEM53                    -0.014769   0.086246  -0.171             0.864032    
## DIASMon                  -0.074094   0.013445  -5.511 0.000000035744897887 ***
## DIASSat                  -0.185298   0.013183 -14.055 < 0.0000000000000002 ***
## DIASSun                  -0.836798   0.016380 -51.087 < 0.0000000000000002 ***
## DIASThu                  -0.105563   0.012980  -8.133 0.000000000000000419 ***
## DIASTue                  -0.047594   0.012729  -3.739             0.000185 ***
## DIASWed                  -0.095321   0.012907  -7.385 0.000000000000152449 ***
## FESTIVO1                 -0.827715   0.026337 -31.428 < 0.0000000000000002 ***
## MADRE1                    0.331481   0.084613   3.918 0.000089428352011632 ***
## DIC311                   -0.425299   0.110764  -3.840             0.000123 ***
## SSANTA1                  -0.200953   0.036552  -5.498 0.000000038460007307 ***
## C.ALTAVISTA              -2.624357   0.107388 -24.438 < 0.0000000000000002 ***
## C.ARANJUEZ                1.021402   0.032559  31.371 < 0.0000000000000002 ***
## C.BELEN                   1.381215   0.031229  44.228 < 0.0000000000000002 ***
## `C.BUENOS AIRES`          0.583708   0.034845  16.751 < 0.0000000000000002 ***
## C.CASTILLA                1.687812   0.030390  55.538 < 0.0000000000000002 ***
## `C.DOCE DE OCTUBRE`      -0.266347   0.042388  -6.284 0.000000000330827051 ***
## `C.EL POBLADO`            1.904768   0.029924  63.654 < 0.0000000000000002 ***
## C.GUAYABAL                1.501736   0.030871  48.645 < 0.0000000000000002 ***
## `C.LA AMERICA`            0.646070   0.034466  18.745 < 0.0000000000000002 ***
## `C.LA CANDELARIA`         2.694869   0.028846  93.424 < 0.0000000000000002 ***
## C.LAURELES                2.063433   0.029638  69.621 < 0.0000000000000002 ***
## C.MANRIQUE               -0.006255   0.039544  -0.158             0.874319    
## C.PALMITAS               -5.365197   0.409171 -13.112 < 0.0000000000000002 ***
## C.POPULAR                -0.753382   0.049346 -15.267 < 0.0000000000000002 ***
## C.ROBLEDO                 1.081052   0.032308  33.460 < 0.0000000000000002 ***
## `C.SAN ANTONIO DE PRADO` -1.077023   0.055387 -19.445 < 0.0000000000000002 ***
## `C.SAN CRISTOBAL`        -1.119085   0.056268 -19.889 < 0.0000000000000002 ***
## `C.SAN JAVIER`           -0.412897   0.044241  -9.333 < 0.0000000000000002 ***
## `C.SANTA CRUZ`           -0.661691   0.047854 -13.827 < 0.0000000000000002 ***
## `C.SANTA ELENA`          -1.936601   0.078644 -24.625 < 0.0000000000000002 ***
## `C.VIA LAS PALMAS `      -3.789661   0.187782 -20.181 < 0.0000000000000002 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 141014  on 32141  degrees of freedom
## Residual deviance:  32637  on 32017  degrees of freedom
## AIC: 86731
## 
## Number of Fisher Scoring iterations: 7

Validación

Cpred_glm_1<-predict(Cglm_1,newdata = Cdatos_vl1)
head(Cpred_glm_1)
##      32143      32144      32145      32146      32147      32148 
## -0.3499469 -1.7842458 -6.7365456 -0.7876406 -3.9957055 -2.4904341

Pseudo R^2 para el Modelo Poisson:

PseudoR2 0.7922805

MSE y RMSE para el Modelo Poisson

  • Entrenamiento

MSE: 15.6300052
RMSE: 3.9534801

  • Validacion
## [1] 15.83417
## [1] 3.979217

MSE: 15.8341652
RMSE: 3.9792167

*Variación

CVarMSEglm<-((CMSE_glm_tr_1-CMSE_glm_vl_1)/CMSE_glm_tr_1)*100
CVarMSEglm
## [1] -1.306205

5.3 Modelo Lasso

Entrenamiento

  Cxtrain<-model.matrix(Y1 ~ .-AÑO,Cdatos_tr1)[,-4]
  Cytrain<-Cdatos_tr1$Y1
  Classo_1<-glmnet(Cxtrain,
                    Cytrain,
                    standardize = FALSE,
                    alpha=1,
                    family = "poisson"
                    )
Classo_1
## 
## Call:  glmnet(x = Cxtrain, y = Cytrain, family = "poisson", alpha = 1,      standardize = FALSE) 
## 
##     Df  %Dev  Lambda
## 1    0  0.00 0.48560
## 2    1  7.70 0.44250
## 3    1 12.59 0.40320
## 4    1 15.96 0.36740
## 5    1 18.40 0.33470
## 6    1 20.21 0.30500
## 7    1 21.59 0.27790
## 8    1 22.66 0.25320
## 9    1 23.50 0.23070
## 10   2 25.49 0.21020
## 11   2 27.82 0.19150
## 12   3 30.15 0.17450
## 13   4 33.09 0.15900
## 14   4 35.66 0.14490
## 15   5 37.96 0.13200
## 16   5 40.71 0.12030
## 17   5 42.90 0.10960
## 18   6 45.12 0.09987
## 19   6 47.33 0.09100
## 20   7 49.70 0.08292
## 21   7 51.82 0.07555
## 22   7 53.56 0.06884
## 23   8 55.12 0.06272
## 24  11 56.63 0.05715
## 25  13 58.53 0.05207
## 26  14 60.43 0.04745
## 27  14 62.10 0.04323
## 28  14 63.53 0.03939
## 29  15 64.78 0.03589
## 30  17 65.96 0.03270
## 31  17 67.00 0.02980
## 32  20 68.00 0.02715
## 33  22 68.97 0.02474
## 34  22 69.91 0.02254
## 35  22 70.73 0.02054
## 36  22 71.44 0.01871
## 37  22 72.06 0.01705
## 38  22 72.60 0.01554
## 39  23 73.08 0.01416
## 40  24 73.49 0.01290
## 41  24 73.86 0.01175
## 42  24 74.18 0.01071
## 43  25 74.45 0.00976
## 44  26 74.70 0.00889
## 45  27 74.92 0.00810
## 46  27 75.12 0.00738
## 47  29 75.29 0.00673
## 48  29 75.45 0.00613
## 49  32 75.59 0.00558
## 50  34 75.72 0.00509
## 51  36 75.83 0.00464
## 52  37 75.93 0.00422
## 53  40 76.02 0.00385
## 54  43 76.10 0.00351
## 55  45 76.18 0.00319
## 56  48 76.24 0.00291
## 57  55 76.30 0.00265
## 58  59 76.36 0.00242
## 59  63 76.41 0.00220
## 60  71 76.46 0.00201
## 61  72 76.50 0.00183
## 62  74 76.54 0.00167
## 63  77 76.57 0.00152
## 64  82 76.60 0.00138
## 65  86 76.63 0.00126
## 66  90 76.65 0.00115
## 67  90 76.68 0.00105
## 68  92 76.69 0.00095
## 69  94 76.71 0.00087
## 70  94 76.72 0.00079
## 71  97 76.73 0.00072
## 72 104 76.74 0.00066
## 73 104 76.75 0.00060
## 74 108 76.76 0.00055
## 75 109 76.77 0.00050
## 76 109 76.78 0.00045
## 77 109 76.78 0.00041
## 78 110 76.79 0.00038
## 79 111 76.80 0.00034
## 80 112 76.80 0.00031
## 81 116 76.80 0.00028
## 82 116 76.81 0.00026
## 83 117 76.81 0.00024
## 84 117 76.81 0.00022
## 85 114 76.82 0.00020
## 86 114 76.82 0.00018
## 87 115 76.82 0.00016
## 88 117 76.82 0.00015

Validación

PseudoR2 1

MSE y RMSE para el Modelo Lasso

  • Entrenamiento

MSE: 2.8244567
RMSE: 1.680612

  • Validación:
## [1] 3.156423
## [1] 1.776632

MSE: 3.1564229
RMSE: 1.7766325

*Variación:

CVarMSElas<-((CMSE_tr_modelo_lasso_1-CMSE_vl_modelo_lasso_1)/CMSE_tr_modelo_lasso_1)*100
CVarMSElas
## [1] -11.75328

5.4 Random Forest

Se renombran algunas columnas para que el encabezado quede sin espacios, pues esto generaba un error al momento de correr el RF en el que decía no encontrar objetos con esos nombres

names (Cdatos_tr1)[111-3] = "BA"
names (Cdatos_tr1)[113-3] = "DDO"
names (Cdatos_tr1)[114-3] = "POBLADO"
names (Cdatos_tr1)[116-3] = "AMERICA"
names (Cdatos_tr1)[117-3] = "CANDELARIA"
names (Cdatos_tr1)[123-3] = "SAPRADO"
names (Cdatos_tr1)[124-3] = "CRISTOBAL"
names (Cdatos_tr1)[125-3] = "JAVIER"
names (Cdatos_tr1)[126-3] = "SCRUZ"
names (Cdatos_tr1)[127-3] = "ELENA"
names (Cdatos_tr1)[128-3] = "PALMAS"
names (Cdatos_tr1)[129-3] = "Y1"

Entrenamiento

Cmodelo_rf_1<-randomForest(Y1~.-AÑO,data=Cdatos_tr1 ,importance=FALSE,ntree=500,mtry=4)
Cmodelo_rf_1
## 
## Call:
##  randomForest(formula = Y1 ~ . - AÑO, data = Cdatos_tr1, importance = FALSE,      ntree = 500, mtry = 4) 
##                Type of random forest: regression
##                      Number of trees: 500
## No. of variables tried at each split: 4
## 
##           Mean of squared residuals: 4.577186
##                     % Var explained: 66.26
names (Cdatos_vl1)[111-3] = "BA"
names (Cdatos_vl1)[113-3] = "DDO"
names (Cdatos_vl1)[114-3] = "POBLADO"
names (Cdatos_vl1)[116-3] = "AMERICA"
names (Cdatos_vl1)[117-3] = "CANDELARIA"
names (Cdatos_vl1)[123-3] = "SAPRADO"
names (Cdatos_vl1)[124-3] = "CRISTOBAL"
names (Cdatos_vl1)[125-3] = "JAVIER"
names (Cdatos_vl1)[126-3] = "SCRUZ"
names (Cdatos_vl1)[127-3] = "ELENA"
names (Cdatos_vl1)[128-3] = "PALMAS"

Validación

##     32143     32144     32145     32146     32147     32148 
## 1.4787022 0.8531738 0.5742672 1.2725426 0.6096879 0.7662062

Resultado del bosque en función del número de Bosques

MSE y RMSE para el Modelo Random Forest

  • Entrenamiento

MSE: 4.1867406
RMSE: 2.0461526

mean(Cdatos_tr1$Y1-Cpred_tr_rf_1)
## [1] -0.003731452
  • Validación

MSE: 4.645426
RMSE: 2.155325

mean(Cdatos_vl1$Y1-Cpred_rf_1)
## [1] 0.04072649

*Variación

## [1] -10.95567

5.5 Red Neuronal

Paquete h2o: h2o es un paquete que sirve para aprendizaje de máquinas y análisis predictivo, esto incluye funciones para crear redes neuronales artificiales y modelos de deep learning, permitiendo cambiar funciones de activación, distribuciones, capas ocultas, neuronas, entre otros.

Entrenamiento

Cmodelo = h2o.deeplearning(
                          y = 'Y1',
                          training_frame = as.h2o(Cdatos_tr1),
                          hidden = c(2,2),
                          epochs = 10,
                          
                          
                          )
## Warning in use.package("data.table"): data.table cannot be used without R
## package bit64 version 0.9.7 or higher. Please upgrade to take advangage of
## data.table speedups.
## 
  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |======================================================================| 100%
## 
  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |=======                                                               |  10%
  |                                                                            
  |======================================================================| 100%

Validación

Cpredv <- h2o.predict(Cmodelo, newdata = as.h2o(Cdatos_vl1))
## Warning in use.package("data.table"): data.table cannot be used without R
## package bit64 version 0.9.7 or higher. Please upgrade to take advangage of
## data.table speedups.
## 
  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |======================================================================| 100%
## 
  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |======================================================================| 100%

MSE Y RMSE para el Modelo con Red Neuronal

  • Entrenamiento

MSE: 14.5749412
RMSE: 3.8177141

  • Validación

MSE: 10.3224758
RMSE: 3.212861

  • Variación
CVarMSERN<-((CMSE_RN_tr-CMSE_RN_vl)/CMSE_RN_tr)*100
CVarMSERN
## [1] 29.17655

6 Modelos de Predicción Accidentes Tipo 2 con comuna

Partición de la data para entrenamiento y validación

Cdatos_tr2<-subset(DataF2,subset=(AÑO<"2018"))
Cdatos_vl2<-subset(DataF2,subset=(AÑO>="2018") & (AÑO<"2019"))

6.1 Modelo lineal

Entrenamiento

Clm_2<-lm(Y1~.-AÑO ,data=Cdatos_tr2)
summary(Clm_2)
## 
## Call:
## lm(formula = Y1 ~ . - AÑO, data = Cdatos_tr2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -10.3317  -0.9883  -0.2016   0.8270  15.3114 
## 
## Coefficients:
##                          Estimate Std. Error t value             Pr(>|t|)    
## (Intercept)               1.78986    0.19812   9.034 < 0.0000000000000002 ***
## MES1                      0.09531    0.17894   0.533             0.594298    
## MES2                      0.51487    0.22082   2.332             0.019727 *  
## MES3                      0.41462    0.24970   1.660             0.096826 .  
## MES4                      0.13596    0.26829   0.507             0.612330    
## MES5                      0.14783    0.28086   0.526             0.598643    
## MES6                     -0.17035    0.28263  -0.603             0.546699    
## MES7                     -0.16852    0.27771  -0.607             0.543978    
## MES8                      0.34952    0.26429   1.322             0.186020    
## MES9                      0.40767    0.24111   1.691             0.090888 .  
## MES10                     0.22069    0.20766   1.063             0.287908    
## MES11                     0.36823    0.15852   2.323             0.020188 *  
## DIAM02                   -0.30041    0.08458  -3.552             0.000383 ***
## DIAM03                   -0.16303    0.08543  -1.908             0.056367 .  
## DIAM04                   -0.16280    0.08654  -1.881             0.059963 .  
## DIAM05                   -0.09350    0.08736  -1.070             0.284481    
## DIAM06                   -0.18689    0.08869  -2.107             0.035101 *  
## DIAM07                   -0.07935    0.08991  -0.883             0.377486    
## DIAM08                   -0.13937    0.09125  -1.527             0.126692    
## DIAM09                   -0.18337    0.09207  -1.992             0.046429 *  
## DIAM10                   -0.11388    0.09330  -1.221             0.222225    
## DIAM11                   -0.10353    0.09467  -1.094             0.274154    
## DIAM12                   -0.22070    0.09505  -2.322             0.020249 *  
## DIAM13                   -0.18629    0.09544  -1.952             0.050953 .  
## DIAM14                   -0.17079    0.09609  -1.777             0.075501 .  
## DIAM15                   -0.03472    0.09619  -0.361             0.718114    
## DIAM16                   -0.08340    0.09600  -0.869             0.384978    
## DIAM17                   -0.11064    0.09573  -1.156             0.247748    
## DIAM18                    0.01733    0.09618   0.180             0.857028    
## DIAM19                   -0.14020    0.09608  -1.459             0.144519    
## DIAM20                   -0.14456    0.09503  -1.521             0.128238    
## DIAM21                   -0.05877    0.09459  -0.621             0.534389    
## DIAM22                   -0.21844    0.09427  -2.317             0.020496 *  
## DIAM23                   -0.21651    0.09277  -2.334             0.019611 *  
## DIAM24                   -0.26699    0.09155  -2.916             0.003543 ** 
## DIAM25                   -0.19282    0.09059  -2.128             0.033311 *  
## DIAM26                   -0.26328    0.08981  -2.931             0.003377 ** 
## DIAM27                   -0.20788    0.08822  -2.356             0.018463 *  
## DIAM28                   -0.19091    0.08695  -2.196             0.028125 *  
## DIAM29                   -0.21701    0.08743  -2.482             0.013061 *  
## DIAM30                   -0.24835    0.08748  -2.839             0.004530 ** 
## DIAM31                   -0.20541    0.10790  -1.904             0.056949 .  
## SEM02                     0.01913    0.11807   0.162             0.871315    
## SEM03                     0.46401    0.12200   3.803             0.000143 ***
## SEM04                     0.44553    0.12048   3.698             0.000218 ***
## SEM05                     0.41069    0.14018   2.930             0.003395 ** 
## SEM06                     0.37849    0.18780   2.015             0.043871 *  
## SEM07                     0.20163    0.19128   1.054             0.291824    
## SEM08                     0.31924    0.19173   1.665             0.095920 .  
## SEM09                     0.32136    0.19830   1.621             0.105121    
## SEM10                     0.53067    0.23244   2.283             0.022434 *  
## SEM11                     0.50144    0.23638   2.121             0.033902 *  
## SEM12                     0.33831    0.23832   1.420             0.155748    
## SEM13                     0.55345    0.23314   2.374             0.017610 *  
## SEM14                     0.73608    0.25691   2.865             0.004170 ** 
## SEM15                     0.63725    0.26711   2.386             0.017053 *  
## SEM16                     0.55983    0.26888   2.082             0.037346 *  
## SEM17                     0.76455    0.26554   2.879             0.003990 ** 
## SEM18                     0.65123    0.26955   2.416             0.015698 *  
## SEM19                     0.62117    0.28506   2.179             0.029330 *  
## SEM20                     0.61682    0.28771   2.144             0.032051 *  
## SEM21                     0.69639    0.28808   2.417             0.015637 *  
## SEM22                     0.70685    0.27921   2.532             0.011360 *  
## SEM23                     1.07634    0.29525   3.645             0.000267 ***
## SEM24                     0.94722    0.29824   3.176             0.001495 ** 
## SEM25                     0.78545    0.29938   2.624             0.008705 ** 
## SEM26                     0.64459    0.29264   2.203             0.027624 *  
## SEM27                     0.87989    0.29452   2.988             0.002815 ** 
## SEM28                     0.92253    0.30126   3.062             0.002199 ** 
## SEM29                     0.96210    0.30360   3.169             0.001531 ** 
## SEM30                     1.05730    0.30295   3.490             0.000484 ***
## SEM31                     0.95427    0.28811   3.312             0.000927 ***
## SEM32                     0.57296    0.29692   1.930             0.053658 .  
## SEM33                     0.49579    0.29956   1.655             0.097919 .  
## SEM34                     0.46408    0.30040   1.545             0.122380    
## SEM35                     0.70794    0.28772   2.461             0.013879 *  
## SEM36                     0.35291    0.28486   1.239             0.215395    
## SEM37                     0.56107    0.28846   1.945             0.051781 .  
## SEM38                     0.50455    0.28981   1.741             0.081696 .  
## SEM39                     0.47638    0.28292   1.684             0.092237 .  
## SEM40                     0.64918    0.26371   2.462             0.013831 *  
## SEM41                     0.26301    0.26875   0.979             0.327773    
## SEM42                     0.52721    0.27162   1.941             0.052270 .  
## SEM43                     0.59669    0.27114   2.201             0.027763 *  
## SEM44                     0.40347    0.24576   1.642             0.100657    
## SEM45                     0.24612    0.24298   1.013             0.311107    
## SEM46                     0.26311    0.24622   1.069             0.285260    
## SEM47                     0.29407    0.24721   1.190             0.234222    
## SEM48                     0.39224    0.22400   1.751             0.079949 .  
## SEM49                     0.58628    0.19610   2.990             0.002795 ** 
## SEM50                     0.62145    0.20086   3.094             0.001977 ** 
## SEM51                     0.74425    0.20300   3.666             0.000246 ***
## SEM52                     0.52865    0.19351   2.732             0.006300 ** 
## SEM53                    -0.05574    0.19395  -0.287             0.773828    
## DIASMon                  -0.01129    0.04140  -0.273             0.785004    
## DIASSat                  -0.17206    0.04035  -4.264 0.000020156299301178 ***
## DIASSun                  -0.78123    0.04054 -19.273 < 0.0000000000000002 ***
## DIASThu                  -0.00673    0.04029  -0.167             0.867358    
## DIASTue                  -0.04363    0.04036  -1.081             0.279715    
## DIASWed                  -0.04115    0.04036  -1.020             0.307944    
## FESTIVO1                 -0.79705    0.05591 -14.257 < 0.0000000000000002 ***
## MADRE1                    0.23927    0.21970   1.089             0.276123    
## DIC311                   -0.06703    0.24554  -0.273             0.784875    
## SSANTA1                  -0.47545    0.09136  -5.204 0.000000196019048271 ***
## C.ALTAVISTA              -1.96646    0.07135 -27.560 < 0.0000000000000002 ***
## C.ARANJUEZ                2.29090    0.07135  32.107 < 0.0000000000000002 ***
## C.BELEN                   2.05955    0.07135  28.865 < 0.0000000000000002 ***
## `C.BUENOS AIRES`          0.57563    0.07135   8.068 0.000000000000000742 ***
## C.CASTILLA                4.67967    0.07135  65.586 < 0.0000000000000002 ***
## `C.DOCE DE OCTUBRE`       0.36756    0.07135   5.151 0.000000260179150291 ***
## `C.EL POBLADO`            1.38330    0.07135  19.387 < 0.0000000000000002 ***
## C.GUAYABAL                2.28884    0.07135  32.078 < 0.0000000000000002 ***
## `C.LA AMERICA`            0.01369    0.07135   0.192             0.847856    
## `C.LA CANDELARIA`         9.11567    0.07135 127.757 < 0.0000000000000002 ***
## C.LAURELES                4.24641    0.07135  59.514 < 0.0000000000000002 ***
## C.MANRIQUE                0.55989    0.07135   7.847 0.000000000000004397 ***
## C.PALMITAS               -2.17591    0.07135 -30.495 < 0.0000000000000002 ***
## C.POPULAR                -0.92745    0.07135 -12.998 < 0.0000000000000002 ***
## C.ROBLEDO                 2.88433    0.07135  40.424 < 0.0000000000000002 ***
## `C.SAN ANTONIO DE PRADO` -1.61054    0.07135 -22.572 < 0.0000000000000002 ***
## `C.SAN CRISTOBAL`        -1.32375    0.07135 -18.552 < 0.0000000000000002 ***
## `C.SAN JAVIER`           -0.58864    0.07135  -8.250 < 0.0000000000000002 ***
## `C.SANTA CRUZ`           -1.08556    0.07135 -15.214 < 0.0000000000000002 ***
## `C.SANTA ELENA`          -1.80356    0.07135 -25.277 < 0.0000000000000002 ***
## `C.VIA LAS PALMAS `      -2.11910    0.07135 -29.699 < 0.0000000000000002 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.928 on 32017 degrees of freedom
## Multiple R-squared:  0.6657, Adjusted R-squared:  0.6644 
## F-statistic: 514.2 on 124 and 32017 DF,  p-value: < 0.00000000000000022

Validación

##      32143      32144      32145      32146      32147      32148 
##  3.3677177  0.4881832 -1.0990858  1.6524542 -0.8896403 -0.2469298

MSE y RMSE para el Modelo Lineal

  • Entrenamiento

MSE: 3.7045683
RMSE: 1.9247255

  • Validación

MSE: 3.3758217
RMSE: 1.8373409

  • Variación
## [1] 2.661395
## [1] 8.874087

6.2 Modelo Poisson

Entrenamiento

Cglm_2<-glm(Y1~.-AÑO ,data=Cdatos_tr2,family = "poisson")
summary(Cglm_2)
## 
## Call:
## glm(formula = Y1 ~ . - AÑO, family = "poisson", data = Cdatos_tr2)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -4.0074  -0.8797  -0.2169   0.5182   4.6045  
## 
## Coefficients:
##                           Estimate Std. Error z value             Pr(>|z|)    
## (Intercept)               0.631217   0.067706   9.323 < 0.0000000000000002 ***
## MES1                      0.009780   0.062956   0.155             0.876548    
## MES2                      0.156588   0.072974   2.146             0.031888 *  
## MES3                      0.128714   0.079983   1.609             0.107559    
## MES4                      0.034057   0.084652   0.402             0.687450    
## MES5                      0.045193   0.087667   0.516             0.606200    
## MES6                     -0.060756   0.087633  -0.693             0.488118    
## MES7                     -0.061795   0.085204  -0.725             0.468293    
## MES8                      0.102728   0.080779   1.272             0.203476    
## MES9                      0.128074   0.074003   1.731             0.083511 .  
## MES10                     0.073861   0.064213   1.150             0.250037    
## MES11                     0.128846   0.049699   2.593             0.009527 ** 
## DIAM02                   -0.098533   0.025741  -3.828             0.000129 ***
## DIAM03                   -0.052529   0.025688  -2.045             0.040862 *  
## DIAM04                   -0.052890   0.025933  -2.040             0.041399 *  
## DIAM05                   -0.030064   0.026125  -1.151             0.249815    
## DIAM06                   -0.058620   0.026755  -2.191             0.028452 *  
## DIAM07                   -0.019430   0.027021  -0.719             0.472096    
## DIAM08                   -0.041814   0.027598  -1.515             0.129743    
## DIAM09                   -0.056785   0.027858  -2.038             0.041510 *  
## DIAM10                   -0.033543   0.028064  -1.195             0.231994    
## DIAM11                   -0.031387   0.028452  -1.103             0.269962    
## DIAM12                   -0.069105   0.028898  -2.391             0.016789 *  
## DIAM13                   -0.058481   0.028995  -2.017             0.043702 *  
## DIAM14                   -0.050521   0.029059  -1.739             0.082113 .  
## DIAM15                   -0.005315   0.028911  -0.184             0.854129    
## DIAM16                   -0.020875   0.028907  -0.722             0.470213    
## DIAM17                   -0.030515   0.028964  -1.054             0.292093    
## DIAM18                    0.011639   0.028798   0.404             0.686092    
## DIAM19                   -0.040120   0.028999  -1.384             0.166507    
## DIAM20                   -0.042296   0.028853  -1.466             0.142674    
## DIAM21                   -0.013514   0.028378  -0.476             0.633916    
## DIAM22                   -0.067173   0.028534  -2.354             0.018564 *  
## DIAM23                   -0.065631   0.028168  -2.330             0.019805 *  
## DIAM24                   -0.083751   0.027834  -3.009             0.002622 ** 
## DIAM25                   -0.061209   0.027490  -2.227             0.025975 *  
## DIAM26                   -0.083113   0.027308  -3.044             0.002338 ** 
## DIAM27                   -0.063732   0.026608  -2.395             0.016611 *  
## DIAM28                   -0.058610   0.026162  -2.240             0.025074 *  
## DIAM29                   -0.069256   0.026485  -2.615             0.008924 ** 
## DIAM30                   -0.075873   0.026500  -2.863             0.004194 ** 
## DIAM31                   -0.062440   0.032585  -1.916             0.055335 .  
## SEM02                     0.009859   0.040285   0.245             0.806665    
## SEM03                     0.185069   0.039765   4.654       0.000003254412 ***
## SEM04                     0.177809   0.039488   4.503       0.000006704874 ***
## SEM05                     0.167904   0.045064   3.726             0.000195 ***
## SEM06                     0.152610   0.058092   2.627             0.008613 ** 
## SEM07                     0.093801   0.059379   1.580             0.114175    
## SEM08                     0.131077   0.059430   2.206             0.027416 *  
## SEM09                     0.132761   0.061166   2.170             0.029969 *  
## SEM10                     0.196599   0.071129   2.764             0.005710 ** 
## SEM11                     0.185241   0.072425   2.558             0.010537 *  
## SEM12                     0.132296   0.073507   1.800             0.071898 .  
## SEM13                     0.202336   0.071781   2.819             0.004820 ** 
## SEM14                     0.270107   0.078934   3.422             0.000622 ***
## SEM15                     0.233082   0.082268   2.833             0.004609 ** 
## SEM16                     0.207169   0.083003   2.496             0.012563 *  
## SEM17                     0.276150   0.081884   3.372             0.000745 ***
## SEM18                     0.240359   0.082967   2.897             0.003767 ** 
## SEM19                     0.223957   0.087746   2.552             0.010700 *  
## SEM20                     0.220262   0.088647   2.485             0.012965 *  
## SEM21                     0.248225   0.088890   2.793             0.005230 ** 
## SEM22                     0.252164   0.086463   2.916             0.003540 ** 
## SEM23                     0.375942   0.091194   4.122       0.000037485181 ***
## SEM24                     0.332223   0.092273   3.600             0.000318 ***
## SEM25                     0.275609   0.092896   2.967             0.003009 ** 
## SEM26                     0.223323   0.091022   2.453             0.014148 *  
## SEM27                     0.313558   0.091516   3.426             0.000612 ***
## SEM28                     0.324764   0.093381   3.478             0.000505 ***
## SEM29                     0.334754   0.094122   3.557             0.000376 ***
## SEM30                     0.369976   0.093937   3.939       0.000081976498 ***
## SEM31                     0.334207   0.089774   3.723             0.000197 ***
## SEM32                     0.219502   0.092393   2.376             0.017514 *  
## SEM33                     0.190118   0.093261   2.039             0.041495 *  
## SEM34                     0.181837   0.093751   1.940             0.052433 .  
## SEM35                     0.256982   0.090143   2.851             0.004360 ** 
## SEM36                     0.139307   0.089735   1.552             0.120560    
## SEM37                     0.203679   0.090755   2.244             0.024814 *  
## SEM38                     0.183667   0.091352   2.011             0.044375 *  
## SEM39                     0.177031   0.089925   1.969             0.048993 *  
## SEM40                     0.229846   0.084351   2.725             0.006433 ** 
## SEM41                     0.096239   0.086445   1.113             0.265585    
## SEM42                     0.187744   0.087297   2.151             0.031505 *  
## SEM43                     0.209717   0.087283   2.403             0.016273 *  
## SEM44                     0.144931   0.080375   1.803             0.071358 .  
## SEM45                     0.087375   0.080070   1.091             0.275170    
## SEM46                     0.092746   0.081100   1.144             0.252788    
## SEM47                     0.102150   0.081648   1.251             0.210896    
## SEM48                     0.135377   0.075711   1.788             0.073764 .  
## SEM49                     0.207523   0.067221   3.087             0.002021 ** 
## SEM50                     0.218502   0.068818   3.175             0.001498 ** 
## SEM51                     0.255607   0.069419   3.682             0.000231 ***
## SEM52                     0.182068   0.067675   2.690             0.007138 ** 
## SEM53                    -0.047717   0.070035  -0.681             0.495657    
## DIASMon                  -0.001337   0.012281  -0.109             0.913279    
## DIASSat                  -0.056018   0.012016  -4.662       0.000003131925 ***
## DIASSun                  -0.289293   0.012916 -22.397 < 0.0000000000000002 ***
## DIASThu                  -0.002183   0.011882  -0.184             0.854243    
## DIASTue                  -0.013498   0.011890  -1.135             0.256281    
## DIASWed                  -0.012668   0.011896  -1.065             0.286942    
## FESTIVO1                 -0.311926   0.019033 -16.389 < 0.0000000000000002 ***
## MADRE1                    0.100524   0.069478   1.447             0.147941    
## DIC311                   -0.037192   0.082435  -0.451             0.651870    
## SSANTA1                  -0.187296   0.030490  -6.143       0.000000000810 ***
## C.ALTAVISTA              -2.331924   0.059586 -39.135 < 0.0000000000000002 ***
## C.ARANJUEZ                0.718744   0.021620  33.244 < 0.0000000000000002 ***
## C.BELEN                   0.665587   0.021813  30.514 < 0.0000000000000002 ***
## `C.BUENOS AIRES`          0.234518   0.023724   9.885 < 0.0000000000000002 ***
## C.CASTILLA                1.146973   0.020349  56.365 < 0.0000000000000002 ***
## `C.DOCE DE OCTUBRE`       0.155945   0.024149   6.458       0.000000000106 ***
## `C.EL POBLADO`            0.491725   0.022505  21.850 < 0.0000000000000002 ***
## C.GUAYABAL                0.718284   0.021622  33.220 < 0.0000000000000002 ***
## `C.LA AMERICA`            0.006266   0.025031   0.250             0.802346    
## `C.LA CANDELARIA`         1.645850   0.019362  85.006 < 0.0000000000000002 ***
## C.LAURELES                1.081709   0.020514  52.731 < 0.0000000000000002 ***
## C.MANRIQUE                0.228784   0.023754   9.631 < 0.0000000000000002 ***
## C.PALMITAS               -6.966644   0.576386 -12.087 < 0.0000000000000002 ***
## C.POPULAR                -0.554835   0.029353 -18.902 < 0.0000000000000002 ***
## C.ROBLEDO                 0.843429   0.021201  39.783 < 0.0000000000000002 ***
## `C.SAN ANTONIO DE PRADO` -1.345045   0.038994 -34.494 < 0.0000000000000002 ***
## `C.SAN CRISTOBAL`        -0.935968   0.033400 -28.023 < 0.0000000000000002 ***
## `C.SAN JAVIER`           -0.315081   0.027293 -11.544 < 0.0000000000000002 ***
## `C.SANTA CRUZ`           -0.690009   0.030673 -22.496 < 0.0000000000000002 ***
## `C.SANTA ELENA`          -1.760816   0.046286 -38.042 < 0.0000000000000002 ***
## `C.VIA LAS PALMAS `      -3.610918   0.109280 -33.043 < 0.0000000000000002 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 112790  on 32141  degrees of freedom
## Residual deviance:  35272  on 32017  degrees of freedom
## AIC: 106039
## 
## Number of Fisher Scoring iterations: 7

Validación

##       32143       32144       32145       32146       32147       32148 
##  1.04647669  0.01265178 -6.63891090  0.56225079 -2.00419111 -0.60823483

Pseudo R^2 para el Modelo Poisson:

PseudoR2: 0.692735

MSE y RMSE para el Modelo Poisson

  • Entrenamiento
## [1] 14.55478
## [1] 3.815073

MSE: 14.5547812
RMSE: 3.8150729

  • Validacion
## [1] 11.98201
## [1] 3.461504

MSE: 11.9820106
RMSE: 3.4615041

  • Variación
## [1] 17.67646

6.3 Modelo Lasso

Entrenamiento

  Cxtrain2<-model.matrix(Y1 ~ .-AÑO,Cdatos_tr2)[,-4]
  Cytrain2<-Cdatos_tr2$Y1
  Classo_2<-glmnet(Cxtrain2,
                    Cytrain2,
                    standardize = FALSE,
                    alpha=1,
                    family = "poisson"
                    )
Classo_2
## 
## Call:  glmnet(x = Cxtrain2, y = Cytrain2, family = "poisson", alpha = 1,      standardize = FALSE) 
## 
##     Df  %Dev  Lambda
## 1    0  0.00 0.37950
## 2    1  4.90 0.34580
## 3    1  8.28 0.31510
## 4    1 10.73 0.28710
## 5    1 12.55 0.26160
## 6    1 13.93 0.23830
## 7    1 15.00 0.21720
## 8    1 15.83 0.19790
## 9    2 17.12 0.18030
## 10   3 19.44 0.16430
## 11   3 22.13 0.14970
## 12   3 24.23 0.13640
## 13   3 25.88 0.12430
## 14   5 27.42 0.11320
## 15   6 29.90 0.10320
## 16   8 32.50 0.09401
## 17  11 35.68 0.08565
## 18  13 39.16 0.07805
## 19  13 42.32 0.07111
## 20  14 45.15 0.06479
## 21  14 47.62 0.05904
## 22  16 49.90 0.05379
## 23  17 52.03 0.04901
## 24  17 53.98 0.04466
## 25  18 55.68 0.04069
## 26  18 57.20 0.03708
## 27  18 58.53 0.03378
## 28  20 59.77 0.03078
## 29  20 60.85 0.02805
## 30  20 61.79 0.02556
## 31  20 62.60 0.02329
## 32  20 63.32 0.02122
## 33  20 63.94 0.01933
## 34  20 64.48 0.01762
## 35  21 64.95 0.01605
## 36  23 65.37 0.01462
## 37  24 65.76 0.01333
## 38  25 66.09 0.01214
## 39  25 66.39 0.01106
## 40  25 66.64 0.01008
## 41  25 66.87 0.00918
## 42  26 67.06 0.00837
## 43  27 67.24 0.00762
## 44  28 67.40 0.00695
## 45  28 67.54 0.00633
## 46  31 67.66 0.00577
## 47  32 67.77 0.00526
## 48  35 67.87 0.00479
## 49  37 67.96 0.00436
## 50  37 68.03 0.00398
## 51  39 68.10 0.00362
## 52  41 68.17 0.00330
## 53  44 68.22 0.00301
## 54  44 68.27 0.00274
## 55  48 68.32 0.00250
## 56  52 68.36 0.00228
## 57  60 68.40 0.00207
## 58  65 68.43 0.00189
## 59  69 68.46 0.00172
## 60  71 68.49 0.00157
## 61  73 68.52 0.00143
## 62  77 68.54 0.00130
## 63  79 68.56 0.00119
## 64  82 68.57 0.00108
## 65  85 68.59 0.00098
## 66  91 68.60 0.00090
## 67  94 68.61 0.00082
## 68  94 68.62 0.00074
## 69  95 68.63 0.00068
## 70 101 68.64 0.00062
## 71 104 68.65 0.00056
## 72 106 68.65 0.00051
## 73 106 68.66 0.00047
## 74 107 68.67 0.00043
## 75 107 68.67 0.00039
## 76 107 68.68 0.00035
## 77 106 68.68 0.00032
## 78 106 68.68 0.00029
## 79 107 68.69 0.00027
## 80 108 68.69 0.00024
## 81 110 68.69 0.00022
## 82 112 68.69 0.00020
## 83 112 68.70 0.00018
## 84 115 68.70 0.00017
## 85 113 68.70 0.00015
## 86 115 68.70 0.00014
## 87 117 68.70 0.00013

Validación

R2: 1

MSE y RMSE para el Modelo Lasso

  • Entrenamiento

MSE: 3.408569
RMSE: 1.846231

  • Validación:

MSE: 3.1807109
RMSE: 1.7834548

  • Variación
CVarMSElas2<-((CMSE_tr_modelo_lasso_2-CMSE_vl_modelo_lasso_2)/CMSE_tr_modelo_lasso_2)*100
CVarMSElas2
## [1] 6.684861

6.4 Random Forest

Se renombran algunas columnas para que el encabezado quede sin espacios, pues esto generaba un error al momento de correr el RF en el que decía no encontrar objetos con esos nombres

names (Cdatos_tr2)[111-3] = "BA"
names (Cdatos_tr2)[113-3] = "DDO"
names (Cdatos_tr2)[114-3] = "POBLADO"
names (Cdatos_tr2)[116-3] = "AMERICA"
names (Cdatos_tr2)[117-3] = "CANDELARIA"
names (Cdatos_tr2)[123-3] = "SAPRADO"
names (Cdatos_tr2)[124-3] = "CRISTOBAL"
names (Cdatos_tr2)[125-3] = "JAVIER"
names (Cdatos_tr2)[126-3] = "SCRUZ"
names (Cdatos_tr2)[127-3] = "ELENA"
names (Cdatos_tr2)[128-3] = "PALMAS"
names (Cdatos_tr2)[129-3] = "Y1"
Cmodelo_rf_2<-randomForest(Y1~.-AÑO,data=Cdatos_tr2 ,importance=FALSE,ntree=500,mtry=4)
Cmodelo_rf_2
## 
## Call:
##  randomForest(formula = Y1 ~ . - AÑO, data = Cdatos_tr2, importance = FALSE,      ntree = 500, mtry = 4) 
##                Type of random forest: regression
##                      Number of trees: 500
## No. of variables tried at each split: 4
## 
##           Mean of squared residuals: 4.614542
##                     % Var explained: 58.36

Resultado del bosque en función del número de Bosques

Cálculo del MSE para el Modelo Random Forest

  • Entrenamiento

MSE: 4.2288253
RMSE: 2.0564108

mean(Cdatos_tr2$Y1-Cpred_tr_rf_2)
## [1] -0.001566256
  • Validación
mean(Cdatos_vl2$Y1-Cpred_rf_2)
## [1] -0.2872451
CMSE_modelo_rfv_2<- mean((Cdatos_vl2$Y1-Cpred_rf_2)^2)
CMSE_modelo_rfv_2
## [1] 3.761365
CRMSE_modelo_rfv_2<- sqrt(CMSE_modelo_rfv_2)
CRMSE_modelo_rfv_2
## [1] 1.939424

MSE: 3.7613651
RMSE: 1.9394239

  • Variación
CVarMSErf2 <-((CMSE_modelo_rftr_2-CMSE_modelo_rfv_2)/(CMSE_modelo_rftr_2))*100
CVarMSErf2
## [1] 11.05414

6.5 Red Neuronal

Entrenamiento

Cmodelo2 = h2o.deeplearning(
                          y = 'Y1',
                          training_frame = as.h2o(Cdatos_tr2),
                          hidden = c(2,2),
                          epochs = 10
                          )
## Warning in use.package("data.table"): data.table cannot be used without R
## package bit64 version 0.9.7 or higher. Please upgrade to take advangage of
## data.table speedups.
## 
  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |======================================================================| 100%
## 
  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |=====================                                                 |  30%
  |                                                                            
  |======================================================================| 100%

Validación

## Warning in use.package("data.table"): data.table cannot be used without R
## package bit64 version 0.9.7 or higher. Please upgrade to take advangage of
## data.table speedups.
## 
  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |======================================================================| 100%
## 
  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |======================================================================| 100%

Cálculo del MSE y RMSE para el Modelo con Red Neuronal

  • Entrenamiento

MSE: 16.8284147
RMSE: 4.1022451

  • Validación

MSE: 10.2092891
RMSE: 3.1951978

*Variación

CVarMSERN2<-((CMSE_RN_tr2-CMSE_RN_vl2)/CMSE_RN_tr2)*100
CVarMSERN2
## [1] 39.33303

7 Resumen de ajuste de modelos para Accidentes tipo I y tipo II con comunas

7.1 Accidentes TIPO I

7.2 Accidentes TIPO II

8 Modelos de Predicción Accidentes Tipo 1 sin comunas

Modelos sin Comunas: El segundo grupo de modelos busca predecir la accidentalidad en la ciudad de Medellín teniendo en cuenta los espacios temporales diario, mensual y anual, además de considerar fechas especiales mencionadas anteriormente. En este grupo de modelos los datos no se diferencian para cada comuna sino que se tiene en cuenta el total de la ciudad, teniendo un único registro por día. La información arrojada por estos modelos se complementa con la información que arrojan los modelos de clasificación y agrupamiento (ver en la aplicación web).

Partición de la data para entrenamiento y validación

Cdatos_tr1<-subset(TipoIDum,subset=(AÑO<"2018"))
Cdatos_vl1<-subset(TipoIDum,subset=(AÑO>="2018") & (AÑO<"2019") )

Se eliminan variables innecesarias para los modelos, pues estos no le asignan valores a éstas por considerarlas “singularidades” o redundantes dado que dependen de otras variables directamente, a continuación el porqué de cada una:
- FECHA: los datos de esta columna se reparten en las variables AÑO, MES, DIAM
- MES12: es el mes de diciembre y es 1 siempre y cuando los otros 11 meses sean 0.
- DIA.LAB1: anteriormente esta variable se creo asignandole valores de 1 siempre y cuando en la variable DIAS los valores fueran los correspondientes a sábados y domingos, por lo tanto, con la variable DIAS es suficiente para explicar esto.
- SEM1_21: esta variable depende directamente de la variable SEM, la unica diferencia es que toma valores de 1 tanto cuando la semana del año es la 1 como la 2, de resto es 0.

Cdatos_tr1<-select(Cdatos_tr1, -FECHA, -MES12, -DIA.LAB1, -SEM1_21)
Cdatos_vl1<-select(Cdatos_vl1, -FECHA, -MES12, -DIA.LAB1, -SEM1_21)

8.1 Modelo lineal

Entrenamiento

Clm_1<-lm(ID~.-AÑO ,data=Cdatos_tr1)
summary(Clm_1)
## 
## Call:
## lm(formula = ID ~ . - AÑO, data = Cdatos_tr1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -37.754  -5.905  -0.446   5.784  39.658 
## 
## Coefficients:
##              Estimate Std. Error t value             Pr(>|t|)    
## (Intercept)  48.62268    4.48759  10.835 < 0.0000000000000002 ***
## MES1         -5.96981    4.18479  -1.427             0.153939    
## MES2         -6.02366    5.16424  -1.166             0.243651    
## MES3         -5.57530    5.83949  -0.955             0.339870    
## MES4        -14.22718    6.27444  -2.267             0.023518 *  
## MES5        -11.66365    6.56834  -1.776             0.076000 .  
## MES6         -8.29330    6.60968  -1.255             0.209796    
## MES7         -9.15510    6.49464  -1.410             0.158875    
## MES8         -8.06582    6.18083  -1.305             0.192123    
## MES9         -3.75490    5.63875  -0.666             0.505581    
## MES10         1.82517    4.85649   0.376             0.707109    
## MES11        -4.02988    3.70714  -1.087             0.277204    
## DIAM02       -1.48433    1.97793  -0.750             0.453116    
## DIAM03       -0.61452    1.99799  -0.308             0.758457    
## DIAM04       -2.00168    2.02397  -0.989             0.322844    
## DIAM05        1.64587    2.04304   0.806             0.420618    
## DIAM06        0.82777    2.07411   0.399             0.689884    
## DIAM07        3.21072    2.10269   1.527             0.127005    
## DIAM08       -1.66309    2.13400  -0.779             0.435922    
## DIAM09       -2.50401    2.15326  -1.163             0.245077    
## DIAM10        1.26768    2.18185   0.581             0.561331    
## DIAM11       -0.82728    2.21404  -0.374             0.708722    
## DIAM12       -0.15230    2.22297  -0.069             0.945390    
## DIAM13       -1.26431    2.23203  -0.566             0.571187    
## DIAM14        0.15852    2.24715   0.071             0.943773    
## DIAM15        0.05212    2.24945   0.023             0.981518    
## DIAM16        1.75957    2.24506   0.784             0.433322    
## DIAM17        3.69262    2.23869   1.649             0.099285 .  
## DIAM18        1.87038    2.24930   0.832             0.405816    
## DIAM19       -0.16011    2.24704  -0.071             0.943206    
## DIAM20        0.51227    2.22255   0.230             0.817747    
## DIAM21       -0.42421    2.21212  -0.192             0.847955    
## DIAM22       -1.11969    2.20454  -0.508             0.611605    
## DIAM23        1.26004    2.16958   0.581             0.561487    
## DIAM24       -1.11598    2.14099  -0.521             0.602280    
## DIAM25        0.05278    2.11870   0.025             0.980130    
## DIAM26       -1.48876    2.10045  -0.709             0.478582    
## DIAM27       -2.29737    2.06318  -1.114             0.265686    
## DIAM28        1.67210    2.03340   0.822             0.411040    
## DIAM29        0.01073    2.04458   0.005             0.995812    
## DIAM30       -1.45234    2.04588  -0.710             0.477898    
## DIAM31       -3.22045    2.52331  -1.276             0.202076    
## SEM02         7.41487    2.76123   2.685             0.007334 ** 
## SEM03        12.49180    2.85305   4.378       0.000012873264 ***
## SEM04        16.51538    2.81768   5.861       0.000000005757 ***
## SEM05        16.58505    3.27827   5.059       0.000000478986 ***
## SEM06        16.96405    4.39195   3.863             0.000118 ***
## SEM07        21.88765    4.47325   4.893       0.000001111862 ***
## SEM08        17.44958    4.48394   3.892             0.000104 ***
## SEM09        18.53528    4.63763   3.997       0.000067680574 ***
## SEM10        21.44240    5.43599   3.945       0.000084044920 ***
## SEM11        18.62773    5.52811   3.370             0.000774 ***
## SEM12        17.36256    5.57353   3.115             0.001877 ** 
## SEM13        20.90502    5.45241   3.834             0.000132 ***
## SEM14        29.62274    6.00815   4.930       0.000000921713 ***
## SEM15        31.48079    6.24683   5.039       0.000000529742 ***
## SEM16        24.02838    6.28829   3.821             0.000139 ***
## SEM17        32.32751    6.21016   5.206       0.000000223176 ***
## SEM18        29.86813    6.30380   4.738       0.000002383752 ***
## SEM19        25.98052    6.66649   3.897             0.000102 ***
## SEM20        26.10503    6.72858   3.880             0.000110 ***
## SEM21        25.80329    6.73707   3.830             0.000134 ***
## SEM22        22.80462    6.52984   3.492             0.000494 ***
## SEM23        21.60186    6.90495   3.128             0.001795 ** 
## SEM24        20.85842    6.97489   2.991             0.002835 ** 
## SEM25        18.01281    7.00140   2.573             0.010195 *  
## SEM26        17.31899    6.84381   2.531             0.011499 *  
## SEM27        20.22298    6.88783   2.936             0.003380 ** 
## SEM28        21.42966    7.04546   3.042             0.002398 ** 
## SEM29        23.73653    7.10005   3.343             0.000851 ***
## SEM30        25.14057    7.08501   3.548             0.000401 ***
## SEM31        28.70193    6.73790   4.260       0.000021873503 ***
## SEM32        27.81443    6.94399   4.006       0.000065232008 ***
## SEM33        22.14415    7.00566   3.161             0.001608 ** 
## SEM34        18.97454    7.02519   2.701             0.007001 ** 
## SEM35        19.00670    6.72875   2.825             0.004802 ** 
## SEM36        17.33208    6.66182   2.602             0.009377 ** 
## SEM37        19.45881    6.74614   2.884             0.003983 ** 
## SEM38        19.98032    6.77755   2.948             0.003253 ** 
## SEM39        14.44420    6.61657   2.183             0.029204 *  
## SEM40        16.64528    6.16715   2.699             0.007041 ** 
## SEM41         9.65648    6.28514   1.536             0.124674    
## SEM42         9.89653    6.35223   1.558             0.119476    
## SEM43        12.25238    6.34093   1.932             0.053534 .  
## SEM44        16.70415    5.74743   2.906             0.003716 ** 
## SEM45        14.67796    5.68254   2.583             0.009899 ** 
## SEM46        19.65641    5.75815   3.414             0.000660 ***
## SEM47        18.52830    5.78126   3.205             0.001383 ** 
## SEM48        18.80415    5.23866   3.589             0.000343 ***
## SEM49        18.39449    4.58611   4.011       0.000063782161 ***
## SEM50        18.30868    4.69749   3.898             0.000102 ***
## SEM51        20.27781    4.74740   4.271       0.000020782185 ***
## SEM52         7.30394    4.52551   1.614             0.106771    
## SEM53         4.16214    4.53584   0.918             0.358985    
## DIASMon      -4.81455    0.96816  -4.973       0.000000743858 ***
## DIASSat     -10.31018    0.94373 -10.925 < 0.0000000000000002 ***
## DIASSun     -34.12394    0.94798 -35.996 < 0.0000000000000002 ***
## DIASThu      -6.06955    0.94230  -6.441       0.000000000164 ***
## DIASTue      -2.84912    0.94392  -3.018             0.002589 ** 
## DIASWed      -5.52331    0.94381  -5.852       0.000000006076 ***
## FESTIVO1    -29.46684    1.30745 -22.538 < 0.0000000000000002 ***
## MADRE1        9.47853    5.13803   1.845             0.065287 .  
## DIC311      -10.33799    5.74233  -1.800             0.072033 .  
## SSANTA1      -7.85897    2.13656  -3.678             0.000244 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 9.615 on 1357 degrees of freedom
## Multiple R-squared:  0.6789, Adjusted R-squared:  0.6545 
## F-statistic: 27.86 on 103 and 1357 DF,  p-value: < 0.00000000000000022

Validación

##     1462     1463     1464     1465     1466     1467 
##  8.37147 38.31941 36.51503 34.58163 44.29873 33.17045

MSE y RMSE para el Modelo Lineal

  • Entrenamiento

MSE: 85.8752285
RMSE: 9.2668888

  • Validación

MSE: 114.9589831
RMSE: 10.7218927

*Media de datos de validación y variación

## [1] 51.99178
## [1] -33.86746

8.2 Modelo Poisson

Entrenamiento

## 
## Call:
## glm(formula = ID ~ . - AÑO, family = "poisson", data = Cdatos_tr1)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -6.2714  -0.8498  -0.0330   0.7809   5.6822  
## 
## Coefficients:
##              Estimate Std. Error z value             Pr(>|z|)    
## (Intercept)  3.980101   0.075929  52.419 < 0.0000000000000002 ***
## MES1        -0.388916   0.076300  -5.097 0.000000344728211772 ***
## MES2        -0.367115   0.086477  -4.245 0.000021834729732365 ***
## MES3        -0.325144   0.093395  -3.481             0.000499 ***
## MES4        -0.490832   0.098379  -4.989 0.000000606248038360 ***
## MES5        -0.424429   0.101009  -4.202 0.000026470013247498 ***
## MES6        -0.328412   0.100576  -3.265             0.001093 ** 
## MES7        -0.344432   0.097113  -3.547             0.000390 ***
## MES8        -0.294333   0.091914  -3.202             0.001364 ** 
## MES9        -0.180816   0.082825  -2.183             0.029028 *  
## MES10       -0.041393   0.070001  -0.591             0.554308    
## MES11       -0.111003   0.052818  -2.102             0.035586 *  
## DIAM02      -0.012397   0.029689  -0.418             0.676258    
## DIAM03       0.006543   0.029780   0.220             0.826090    
## DIAM04      -0.022760   0.030123  -0.756             0.449901    
## DIAM05       0.040280   0.030195   1.334             0.182205    
## DIAM06       0.039347   0.030841   1.276             0.202024    
## DIAM07       0.090433   0.031144   2.904             0.003687 ** 
## DIAM08      -0.003074   0.032277  -0.095             0.924135    
## DIAM09      -0.026832   0.032401  -0.828             0.407599    
## DIAM10       0.048046   0.032222   1.491             0.135938    
## DIAM11       0.005578   0.032906   0.170             0.865392    
## DIAM12       0.022350   0.033277   0.672             0.501806    
## DIAM13       0.002699   0.033615   0.080             0.936009    
## DIAM14       0.039631   0.033389   1.187             0.235248    
## DIAM15       0.034839   0.033549   1.038             0.299059    
## DIAM16       0.071430   0.033326   2.143             0.032082 *  
## DIAM17       0.107922   0.033256   3.245             0.001174 ** 
## DIAM18       0.073386   0.033482   2.192             0.028396 *  
## DIAM19       0.033644   0.033566   1.002             0.316181    
## DIAM20       0.042063   0.033506   1.255             0.209344    
## DIAM21       0.031426   0.033045   0.951             0.341603    
## DIAM22       0.014917   0.032953   0.453             0.650778    
## DIAM23       0.064015   0.032404   1.976             0.048207 *  
## DIAM24       0.016670   0.032153   0.518             0.604143    
## DIAM25       0.034670   0.031944   1.085             0.277769    
## DIAM26       0.011090   0.031666   0.350             0.726172    
## DIAM27      -0.007841   0.030928  -0.254             0.799868    
## DIAM28       0.063783   0.029908   2.133             0.032956 *  
## DIAM29       0.027389   0.030493   0.898             0.369081    
## DIAM30       0.009838   0.030617   0.321             0.747959    
## DIAM31      -0.027784   0.037712  -0.737             0.461280    
## SEM02        0.244909   0.049611   4.937 0.000000795052053061 ***
## SEM03        0.363448   0.049070   7.407 0.000000000000129398 ***
## SEM04        0.446262   0.047777   9.340 < 0.0000000000000002 ***
## SEM05        0.451942   0.052630   8.587 < 0.0000000000000002 ***
## SEM06        0.445096   0.068509   6.497 0.000000000081990492 ***
## SEM07        0.530435   0.069176   7.668 0.000000000000017482 ***
## SEM08        0.441837   0.069688   6.340 0.000000000229492883 ***
## SEM09        0.462442   0.071051   6.509 0.000000000075839555 ***
## SEM10        0.495891   0.082264   6.028 0.000000001659764882 ***
## SEM11        0.434954   0.083897   5.184 0.000000216738973926 ***
## SEM12        0.408684   0.085096   4.803 0.000001565814339065 ***
## SEM13        0.466435   0.083131   5.611 0.000000020131399046 ***
## SEM14        0.655751   0.091024   7.204 0.000000000000584167 ***
## SEM15        0.684864   0.094890   7.217 0.000000000000529703 ***
## SEM16        0.527317   0.096175   5.483 0.000000041850778662 ***
## SEM17        0.682982   0.094465   7.230 0.000000000000483041 ***
## SEM18        0.659381   0.095107   6.933 0.000000000004118499 ***
## SEM19        0.567162   0.100492   5.644 0.000000016627602544 ***
## SEM20        0.559548   0.101511   5.512 0.000000035433927186 ***
## SEM21        0.555769   0.101922   5.453 0.000000049563409947 ***
## SEM22        0.497399   0.099350   5.007 0.000000554156575260 ***
## SEM23        0.460264   0.104544   4.403 0.000010696844848986 ***
## SEM24        0.434122   0.105686   4.108 0.000039970216351551 ***
## SEM25        0.369219   0.106428   3.469             0.000522 ***
## SEM26        0.360838   0.104163   3.464             0.000532 ***
## SEM27        0.434970   0.104890   4.147 0.000033698805602226 ***
## SEM28        0.446922   0.106734   4.187 0.000028233598731950 ***
## SEM29        0.473180   0.107496   4.402 0.000010734252516853 ***
## SEM30        0.507889   0.107193   4.738 0.000002157636193235 ***
## SEM31        0.561419   0.102699   5.467 0.000000045861772509 ***
## SEM32        0.553650   0.105413   5.252 0.000000150283687516 ***
## SEM33        0.427253   0.106584   4.009 0.000061081111482184 ***
## SEM34        0.364654   0.107374   3.396             0.000684 ***
## SEM35        0.360676   0.102965   3.503             0.000460 ***
## SEM36        0.318682   0.101956   3.126             0.001774 ** 
## SEM37        0.346574   0.103196   3.358             0.000784 ***
## SEM38        0.344382   0.103736   3.320             0.000901 ***
## SEM39        0.245890   0.102343   2.403             0.016279 *  
## SEM40        0.270840   0.095011   2.851             0.004363 ** 
## SEM41        0.129251   0.097252   1.329             0.183839    
## SEM42        0.130546   0.098628   1.324             0.185629    
## SEM43        0.167826   0.098290   1.707             0.087737 .  
## SEM44        0.242256   0.091199   2.656             0.007899 ** 
## SEM45        0.187456   0.090687   2.067             0.038729 *  
## SEM46        0.275654   0.091408   3.016             0.002564 ** 
## SEM47        0.250016   0.092121   2.714             0.006648 ** 
## SEM48        0.250041   0.085507   2.924             0.003453 ** 
## SEM49        0.232934   0.077764   2.995             0.002741 ** 
## SEM50        0.218788   0.079833   2.741             0.006133 ** 
## SEM51        0.225640   0.080605   2.799             0.005121 ** 
## SEM52       -0.025838   0.081070  -0.319             0.749944    
## SEM53       -0.014769   0.086246  -0.171             0.864032    
## DIASMon     -0.074094   0.013445  -5.511 0.000000035744791136 ***
## DIASSat     -0.185298   0.013183 -14.055 < 0.0000000000000002 ***
## DIASSun     -0.836798   0.016380 -51.087 < 0.0000000000000002 ***
## DIASThu     -0.105563   0.012980  -8.133 0.000000000000000419 ***
## DIASTue     -0.047594   0.012729  -3.739             0.000185 ***
## DIASWed     -0.095321   0.012907  -7.385 0.000000000000152449 ***
## FESTIVO1    -0.827715   0.026337 -31.428 < 0.0000000000000002 ***
## MADRE1       0.331481   0.084613   3.918 0.000089428348223151 ***
## DIC311      -0.425299   0.110764  -3.840             0.000123 ***
## SSANTA1     -0.200953   0.036552  -5.498 0.000000038457857666 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 8523.1  on 1460  degrees of freedom
## Residual deviance: 2410.2  on 1357  degrees of freedom
## AIC: 10952
## 
## Number of Fisher Scoring iterations: 4

Validación

##     1462     1463     1464     1465     1466     1467 
## 2.689377 3.531194 3.502408 3.462862 3.631465 3.445235

Calculo del Pseudo R^2 para el Modelo Poisson:

PseudoR2: 0.7018762

MSE y RMSE para el Modelo Poisson

  • Entrenamiento

MSE: 2473.6133768
RMSE: 49.7354338

  • Validacion

MSE: 2579.0161551
RMSE: 50.7840148

*Variación

## [1] -4.261085

8.3 Modelo Lasso

Entrenamiento

## 
## Call:  glmnet(x = Cxtrain, y = Cytrain, family = "poisson", alpha = 1,      standardize = FALSE) 
## 
##      Df  %Dev Lambda
## 1     0  0.00 3.5360
## 2     1  5.93 3.2220
## 3     1 11.04 2.9360
## 4     1 15.43 2.6750
## 5     1 19.20 2.4370
## 6     1 22.42 2.2210
## 7     1 25.18 2.0230
## 8     1 27.54 1.8440
## 9     1 29.55 1.6800
## 10    1 31.27 1.5310
## 11    2 34.42 1.3950
## 12    2 38.09 1.2710
## 13    2 41.25 1.1580
## 14    2 43.97 1.0550
## 15    2 46.31 0.9613
## 16    2 48.32 0.8759
## 17    2 50.03 0.7981
## 18    3 51.78 0.7272
## 19    3 53.41 0.6626
## 20    4 54.80 0.6037
## 21    4 56.27 0.5501
## 22    4 57.50 0.5012
## 23    4 58.55 0.4567
## 24    4 59.42 0.4161
## 25    4 60.17 0.3792
## 26    4 60.79 0.3455
## 27    4 61.31 0.3148
## 28    5 61.75 0.2868
## 29    5 62.13 0.2613
## 30    5 62.44 0.2381
## 31    6 62.72 0.2170
## 32    6 62.98 0.1977
## 33    7 63.25 0.1801
## 34    7 63.50 0.1641
## 35    9 63.81 0.1495
## 36    9 64.14 0.1363
## 37   12 64.45 0.1242
## 38   14 64.78 0.1131
## 39   16 65.11 0.1031
## 40   17 65.48 0.0939
## 41   20 65.83 0.0856
## 42   21 66.16 0.0780
## 43   25 66.49 0.0711
## 44   27 66.78 0.0647
## 45   34 67.08 0.0590
## 46   39 67.43 0.0537
## 47   42 67.78 0.0490
## 48   49 68.14 0.0446
## 49   51 68.49 0.0407
## 50   54 68.79 0.0370
## 51   57 69.04 0.0338
## 52   62 69.26 0.0307
## 53   66 69.48 0.0280
## 54   70 69.68 0.0255
## 55   70 69.85 0.0233
## 56   72 70.00 0.0212
## 57   74 70.13 0.0193
## 58   74 70.23 0.0176
## 59   77 70.32 0.0160
## 60   84 70.41 0.0146
## 61   84 70.51 0.0133
## 62   88 70.60 0.0121
## 63   89 70.67 0.0111
## 64   89 70.74 0.0101
## 65   89 70.81 0.0092
## 66   90 70.88 0.0084
## 67   91 70.94 0.0076
## 68   92 70.99 0.0069
## 69   96 71.03 0.0063
## 70   96 71.07 0.0058
## 71   96 71.10 0.0053
## 72   96 71.13 0.0048
## 73   93 71.16 0.0044
## 74   94 71.18 0.0040
## 75   95 71.20 0.0036
## 76   96 71.21 0.0033
## 77   96 71.23 0.0030
## 78   95 71.24 0.0027
## 79   96 71.25 0.0025
## 80   97 71.26 0.0023
## 81   97 71.28 0.0021
## 82   99 71.29 0.0019
## 83   99 71.30 0.0017
## 84  101 71.32 0.0016
## 85  102 71.33 0.0014
## 86  101 71.34 0.0013
## 87  100 71.35 0.0012
## 88  102 71.36 0.0011
## 89  101 71.38 0.0010
## 90  101 71.40 0.0009
## 91  100 71.42 0.0008
## 92  101 71.43 0.0007
## 93  101 71.43 0.0007
## 94  100 71.44 0.0006
## 95  101 71.44 0.0006
## 96  102 71.45 0.0005
## 97  102 71.47 0.0005
## 98  102 71.48 0.0004
## 99  102 71.48 0.0004
## 100 101 71.49 0.0004

Validación

R2: 1

MSE para el Modelo Lasso

  • Entrenamiento

MSE: 80.4478416
RMSE: 8.9692721

  • Validación:

MSE: 112.4830678
RMSE: 10.6058035

*Variación:

## [1] -39.82111

8.4 Random Forest

Entrenamiento

Cmodelo_rf_1<-randomForest(ID~.-AÑO,data=Cdatos_tr1 ,importance=FALSE,ntree=500,mtry=2)
Cmodelo_rf_1
## 
## Call:
##  randomForest(formula = ID ~ . - AÑO, data = Cdatos_tr1, importance = FALSE,      ntree = 500, mtry = 2) 
##                Type of random forest: regression
##                      Number of trees: 500
## No. of variables tried at each split: 2
## 
##           Mean of squared residuals: 186.6388
##                     % Var explained: 30.22

Validación

##     1462     1463     1464     1465     1466     1467 
## 40.83542 49.99990 49.43343 48.59832 48.77042 47.94063

Se corre el modelo con los datos de validación, para posteriormente poder calcular las medidas de error.

Resultado del bosque en función del número de Bosques

_____________________ Se puede observar que a partir de 200 arboles el error presenta variaciones mínimas y se puede considerar estable, se decide dejar 500 arboles por ser un valor recomendado por defecto y además no sobre-entrena al modelo.

MSE y RMSE para el Modelo Random Forest

  • Entrenamiento

MSE: 171.8863821
RMSE: 13.1105447

*Diferencia de medias entrenamiento

## [1] -0.01229169

Se puede observar que la media de las diferencias entre los datos reales y los predichos para los datos de entrenamiento es muy cercano a 0.

  • Validación

Diferencia de medias validación

## [1] 0.9861136

Se puede observar que la media de las diferencias entre los datos reales y los predichos para los datos de validación es bajo respecto a la media de los datos.

MSE: 192.5874638
RMSE: 13.8775885

*Variación

## [1] -12.04347

Variación entre los MSE de entrenamiento y validación: -12.0434682.
Teniendo en cuenta el rango de variación permitido en el que no se sospecha de sobre-entrenamiento del modelo, este valor cumple, pues es menor al 15%. Además, los MSE´s y RMSE´s no se consideran tan altos teniendo en cuenta la escala de los datos.

Comparando los MSE´s de todos los modelos para los datos de TipoI sin comuna, y teniendo en cuenta la variación entre estos de sus respectivos datos de entrenamiento y validación, se considera que este modelo con Random Forest es el mejor para predecir los datos del 2019-2020 y más adelante en la parte de predicción se utilizará con este fin, para luego disponer de estas predicciónes en la aplicación web final.

8.5 Red Neuronal

Entrenamiento

Cmodelo = h2o.deeplearning(
                          y = 'ID',
                          training_frame = as.h2o(Cdatos_tr1),
                          hidden = c(20,20),
                          epochs = 10,
                          stopping_metric = "MSE"
                          )
## Warning in use.package("data.table"): data.table cannot be used without R
## package bit64 version 0.9.7 or higher. Please upgrade to take advangage of
## data.table speedups.
## 
  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |======================================================================| 100%
## 
  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |======================================================================| 100%
Cmodelo
## Model Details:
## ==============
## 
## H2ORegressionModel: deeplearning
## Model ID:  DeepLearning_model_R_1599149137655_17 
## Status of Neuron Layers: predicting ID, regression, gaussian distribution, Quadratic loss, 2.541 weights/biases, 45,0 KB, 16.071 training samples, mini-batch size 1
##   layer units      type dropout       l1       l2 mean_rate rate_rms momentum
## 1     1   104     Input  0.00 %       NA       NA        NA       NA       NA
## 2     2    20 Rectifier  0.00 % 0.000000 0.000000  0.002812 0.004418 0.000000
## 3     3    20 Rectifier  0.00 % 0.000000 0.000000  0.002846 0.007449 0.000000
## 4     4     1    Linear      NA 0.000000 0.000000  0.000289 0.000087 0.000000
##   mean_weight weight_rms mean_bias bias_rms
## 1          NA         NA        NA       NA
## 2   -0.001073   0.127185  0.501674 0.041868
## 3   -0.009359   0.216178  0.990144 0.032261
## 4    0.024739   0.288351  0.025470 0.000000
## 
## 
## H2ORegressionMetrics: deeplearning
## ** Reported on training data. **
## ** Metrics reported on full training frame **
## 
## MSE:  66.48518
## RMSE:  8.153845
## MAE:  6.24858
## RMSLE:  0.1984404
## Mean Residual Deviance :  66.48518

Validación

## Warning in use.package("data.table"): data.table cannot be used without R
## package bit64 version 0.9.7 or higher. Please upgrade to take advangage of
## data.table speedups.
## 
  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |======================================================================| 100%
## 
  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |======================================================================| 100%

MSE y RMSE para el Modelo con Red Neuronal

*Entrenamiento

MSE: 1453.5549202
RMSE: 38.1255153

  • Validación

MSE: 1321.2032262
RMSE: 36.3483593

*Variación

CVarMSERN<-((CMSE_RN_tr-CMSE_RN_vl)/CMSE_RN_tr)*100
CVarMSERN
## [1] 9.10538

8.6 Xgboost

El XGboost (Extra Gradient boosting) parte del árbol de decisiones que se implementa en minería de datos para clasificar o pronosticar sobre una variable objetivo , a través, del aprendizaje automático que se realiza sobre un set de datos, utilizando varios árboles de decisiones, pero potenciando los resultados de estos, debido al procesamiento secuencial de la data con una función de pérdida o coste, la cual, minimiza el error iteración tras iteración, haciéndolo de esta manera, un pronosticador fuerte.

Construcción matriz de entrenamiento

Construcción matriz de validación

Entrenamiento

modelo1xg <- xgboost(data = train_matrix1 , 
                           objective = "reg:squarederror", eval_metric = "rmse",
                           nrounds = 45, max.depth = 1, eta = 0.1)
## [1]  train-rmse:48.062126 
## [2]  train-rmse:43.621967 
## [3]  train-rmse:39.661823 
## [4]  train-rmse:36.136600 
## [5]  train-rmse:33.003376 
## [6]  train-rmse:30.203171 
## [7]  train-rmse:27.725883 
## [8]  train-rmse:25.519621 
## [9]  train-rmse:23.579424 
## [10] train-rmse:21.859280 
## [11] train-rmse:20.357632 
## [12] train-rmse:19.033501 
## [13] train-rmse:17.887390 
## [14] train-rmse:16.882761 
## [15] train-rmse:16.021233 
## [16] train-rmse:15.270478 
## [17] train-rmse:14.632661 
## [18] train-rmse:14.079639 
## [19] train-rmse:13.613898 
## [20] train-rmse:13.211478 
## [21] train-rmse:12.875121 
## [22] train-rmse:12.584917 
## [23] train-rmse:12.338478 
## [24] train-rmse:12.129580 
## [25] train-rmse:11.948017 
## [26] train-rmse:11.793836 
## [27] train-rmse:11.662565 
## [28] train-rmse:11.546909 
## [29] train-rmse:11.448417 
## [30] train-rmse:11.363792 
## [31] train-rmse:11.287878 
## [32] train-rmse:11.222946 
## [33] train-rmse:11.166477 
## [34] train-rmse:11.114772 
## [35] train-rmse:11.070116 
## [36] train-rmse:11.028790 
## [37] train-rmse:10.991377 
## [38] train-rmse:10.956140 
## [39] train-rmse:10.924685 
## [40] train-rmse:10.896163 
## [41] train-rmse:10.868959 
## [42] train-rmse:10.843139 
## [43] train-rmse:10.819128 
## [44] train-rmse:10.797580 
## [45] train-rmse:10.777088
modelo1xg
## ##### xgb.Booster
## raw: 14.2 Kb 
## call:
##   xgb.train(params = params, data = dtrain, nrounds = nrounds, 
##     watchlist = watchlist, verbose = verbose, print_every_n = print_every_n, 
##     early_stopping_rounds = early_stopping_rounds, maximize = maximize, 
##     save_period = save_period, save_name = save_name, xgb_model = xgb_model, 
##     callbacks = callbacks, objective = "reg:squarederror", eval_metric = "rmse", 
##     max.depth = 1, eta = 0.1)
## params (as set within xgb.train):
##   objective = "reg:squarederror", eval_metric = "rmse", max_depth = "1", eta = "0.1", validate_parameters = "TRUE"
## xgb.attributes:
##   niter
## callbacks:
##   cb.print.evaluation(period = print_every_n)
##   cb.evaluation.log()
## # of features: 104 
## niter: 45
## nfeatures : 104 
## evaluation_log:
##     iter train_rmse
##        1   48.06213
##        2   43.62197
## ---                
##       44   10.79758
##       45   10.77709

Validación

## [1] 26.82385 50.92691 50.92691 50.92691 50.92691 49.49993
## [1] 26.82385 50.92691 50.92691 49.49993 25.40039 26.82385

MSE y RMSE para el modelo XGBoost

  • Entrenamiento

MSE: 116.1456436
RMSE: 10.7770888

  • Validación

MSE: 132.1033192
RMSE: 11.4936208

  • Variación entre entrenamiento y validación
## [1] -13.73937
  • Media entrenamiento real-pred y validación real-pred
## [1] 50.94798
## [1] 50.50832
## [1] 51.99178
## [1] 50.57252

9 Modelos de Predicción Accidentes Tipo 2 sin comuna

Partición de la data para entrenamiento y validación

Cdatos_tr2<-subset(TipoIIDum,subset=(AÑO<"2018"))
Cdatos_vl2<-subset(TipoIIDum,subset=(AÑO>="2018") & (AÑO<"2019") )

Se eliminan variables innecesarias para los modelos, pues estos no le asignan valores a éstas por considerarlas “singularidades” o redundantes dado que dependen de otras variables directamente, a continuación el porqué de cada una:
- FECHA: los datos de esta columna se reparten en las variables AÑO, MES, DIAM.
- MES12: es el mes de diciembre y es 1 siempre y cuando los otros 11 meses sean 0.
- DIA.LAB1: anteriormente esta variable se creo asignandole valores de 1 siempre y cuando en la variable DIAS los valores fueran los correspondientes a sábados y domingos, por lo tanto, con la variable DIAS es suficiente para explicar esto.
- SEM1_21: esta variable depende directamente de la variable SEM, la unica diferencia es que toma valores de 1 tanto cuando la semana del año es la 1 como la 2, de resto es 0.

9.1 Modelo lineal

Entrenamiento

Clm_2<-lm(ID~.-AÑO ,data=Cdatos_tr2)
summary(Clm_2)
## 
## Call:
## lm(formula = ID ~ . - AÑO, data = Cdatos_tr2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -30.027  -6.198  -0.499   5.784  45.530 
## 
## Coefficients:
##             Estimate Std. Error t value             Pr(>|t|)    
## (Intercept)  56.2413     4.6777  12.023 < 0.0000000000000002 ***
## MES1          2.0968     4.3621   0.481             0.630822    
## MES2         11.3271     5.3831   2.104             0.035543 *  
## MES3          9.1215     6.0869   1.499             0.134224    
## MES4          2.9911     6.5403   0.457             0.647504    
## MES5          3.2523     6.8467   0.475             0.634845    
## MES6         -3.7476     6.8897  -0.544             0.586572    
## MES7         -3.7074     6.7698  -0.548             0.584032    
## MES8          7.6894     6.4427   1.193             0.232883    
## MES9          8.9687     5.8777   1.526             0.127271    
## MES10         4.8552     5.0623   0.959             0.337681    
## MES11         8.1009     3.8642   2.096             0.036232 *  
## DIAM02       -6.6091     2.0617  -3.206             0.001379 ** 
## DIAM03       -3.5866     2.0827  -1.722             0.085269 .  
## DIAM04       -3.5816     2.1097  -1.698             0.089799 .  
## DIAM05       -2.0571     2.1296  -0.966             0.334246    
## DIAM06       -4.1116     2.1620  -1.902             0.057414 .  
## DIAM07       -1.7457     2.1918  -0.796             0.425893    
## DIAM08       -3.0661     2.2244  -1.378             0.168318    
## DIAM09       -4.0341     2.2445  -1.797             0.072507 .  
## DIAM10       -2.5054     2.2743  -1.102             0.270826    
## DIAM11       -2.2776     2.3078  -0.987             0.323860    
## DIAM12       -4.8553     2.3172  -2.095             0.036322 *  
## DIAM13       -4.0985     2.3266  -1.762             0.078365 .  
## DIAM14       -3.7574     2.3424  -1.604             0.108921    
## DIAM15       -0.7639     2.3448  -0.326             0.744642    
## DIAM16       -1.8348     2.3402  -0.784             0.433151    
## DIAM17       -2.4342     2.3335  -1.043             0.297073    
## DIAM18        0.3812     2.3446   0.163             0.870866    
## DIAM19       -3.0845     2.3422  -1.317             0.188097    
## DIAM20       -3.1803     2.3167  -1.373             0.170049    
## DIAM21       -1.2930     2.3059  -0.561             0.575073    
## DIAM22       -4.8056     2.2980  -2.091             0.036690 *  
## DIAM23       -4.7632     2.2615  -2.106             0.035369 *  
## DIAM24       -5.8738     2.2317  -2.632             0.008585 ** 
## DIAM25       -4.2421     2.2085  -1.921             0.054962 .  
## DIAM26       -5.7922     2.1894  -2.645             0.008251 ** 
## DIAM27       -4.5733     2.1506  -2.127             0.033640 *  
## DIAM28       -4.1999     2.1196  -1.982             0.047735 *  
## DIAM29       -4.7743     2.1312  -2.240             0.025242 *  
## DIAM30       -5.4637     2.1326  -2.562             0.010514 *  
## DIAM31       -4.5190     2.6302  -1.718             0.086006 .  
## SEM02         0.4208     2.8782   0.146             0.883792    
## SEM03        10.2082     2.9739   3.433             0.000616 ***
## SEM04         9.8016     2.9371   3.337             0.000869 ***
## SEM05         9.0351     3.4172   2.644             0.008287 ** 
## SEM06         8.3268     4.5780   1.819             0.069155 .  
## SEM07         4.4359     4.6628   0.951             0.341602    
## SEM08         7.0232     4.6739   1.503             0.133167    
## SEM09         7.0700     4.8341   1.463             0.143831    
## SEM10        11.6748     5.6663   2.060             0.039552 *  
## SEM11        11.0317     5.7623   1.914             0.055774 .  
## SEM12         7.4429     5.8097   1.281             0.200374    
## SEM13        12.1758     5.6834   2.142             0.032344 *  
## SEM14        16.1938     6.2627   2.586             0.009820 ** 
## SEM15        14.0195     6.5115   2.153             0.031492 *  
## SEM16        12.3163     6.5547   1.879             0.060459 .  
## SEM17        16.8200     6.4733   2.598             0.009468 ** 
## SEM18        14.3270     6.5709   2.180             0.029402 *  
## SEM19        13.6658     6.9490   1.967             0.049433 *  
## SEM20        13.5699     7.0137   1.935             0.053225 .  
## SEM21        15.3207     7.0225   2.182             0.029307 *  
## SEM22        15.5507     6.8065   2.285             0.022485 *  
## SEM23        23.6795     7.1975   3.290             0.001028 ** 
## SEM24        20.8389     7.2704   2.866             0.004218 ** 
## SEM25        17.2798     7.2981   2.368             0.018037 *  
## SEM26        14.1810     7.1338   1.988             0.047027 *  
## SEM27        19.3576     7.1797   2.696             0.007101 ** 
## SEM28        20.2957     7.3440   2.764             0.005794 ** 
## SEM29        21.1663     7.4009   2.860             0.004302 ** 
## SEM30        23.2606     7.3852   3.150             0.001670 ** 
## SEM31        20.9938     7.0234   2.989             0.002848 ** 
## SEM32        12.6051     7.2382   1.741             0.081829 .  
## SEM33        10.9075     7.3025   1.494             0.135496    
## SEM34        10.2098     7.3229   1.394             0.163475    
## SEM35        15.5747     7.0139   2.221             0.026545 *  
## SEM36         7.7640     6.9441   1.118             0.263736    
## SEM37        12.3435     7.0320   1.755             0.079428 .  
## SEM38        11.1000     7.0647   1.571             0.116371    
## SEM39        10.4803     6.8969   1.520             0.128856    
## SEM40        14.2819     6.4285   2.222             0.026470 *  
## SEM41         5.7861     6.5514   0.883             0.377294    
## SEM42        11.5985     6.6214   1.752             0.080055 .  
## SEM43        13.1273     6.6096   1.986             0.047224 *  
## SEM44         8.8763     5.9910   1.482             0.138675    
## SEM45         5.4147     5.9233   0.914             0.360810    
## SEM46         5.7883     6.0021   0.964             0.335027    
## SEM47         6.4695     6.0262   1.074             0.283211    
## SEM48         8.6292     5.4606   1.580             0.114279    
## SEM49        12.8982     4.7804   2.698             0.007060 ** 
## SEM50        13.6718     4.8965   2.792             0.005310 ** 
## SEM51        16.3735     4.9485   3.309             0.000962 ***
## SEM52        11.6304     4.7173   2.466             0.013805 *  
## SEM53        -1.2262     4.7280  -0.259             0.795407    
## DIASMon      -0.2485     1.0092  -0.246             0.805564    
## DIASSat      -3.7853     0.9837  -3.848             0.000125 ***
## DIASSun     -17.1871     0.9881 -17.393 < 0.0000000000000002 ***
## DIASThu      -0.1480     0.9822  -0.151             0.880212    
## DIASTue      -0.9599     0.9839  -0.976             0.329459    
## DIASWed      -0.9052     0.9838  -0.920             0.357669    
## FESTIVO1    -17.5351     1.3628 -12.867 < 0.0000000000000002 ***
## MADRE1        5.2640     5.3557   0.983             0.325845    
## DIC311       -1.4746     5.9856  -0.246             0.805447    
## SSANTA1     -10.4599     2.2271  -4.697           0.00000291 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 10.02 on 1357 degrees of freedom
## Multiple R-squared:  0.4431, Adjusted R-squared:  0.4008 
## F-statistic: 10.48 on 103 and 1357 DF,  p-value: < 0.00000000000000022

Validación

##     1462     1463     1464     1465     1466     1467 
## 40.55454 50.76913 53.84625 54.60845 56.28104 50.44121

MSE y RMSE para el Modelo Lineal

  • Entrenamiento

MSE: 93.3066431
RMSE: 9.6595364

  • Validación

MSE: 132.2622932
RMSE: 11.5005345

mean(Cdatos_vl2$ID)
## [1] 58.55068
CVarMSEml2<-((CMSE_lm_tr_2-CMSE_lm_2)/CMSE_lm_tr_2)*100
CVarMSEml2
## [1] -41.75014

9.2 Modelo Poisson

Entrenamiento

Cglm_2<-glm(ID~.-AÑO ,data=Cdatos_tr2,family = "poisson")
summary(Cglm_2)
## 
## Call:
## glm(formula = ID ~ . - AÑO, family = "poisson", data = Cdatos_tr2)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.8523  -0.7753  -0.0637   0.7171   4.8457  
## 
## Coefficients:
##              Estimate Std. Error z value             Pr(>|z|)    
## (Intercept)  4.023819   0.065425  61.503 < 0.0000000000000002 ***
## MES1         0.009780   0.062956   0.155             0.876548    
## MES2         0.156588   0.072974   2.146             0.031888 *  
## MES3         0.128714   0.079983   1.609             0.107559    
## MES4         0.034057   0.084652   0.402             0.687450    
## MES5         0.045193   0.087667   0.516             0.606200    
## MES6        -0.060756   0.087633  -0.693             0.488118    
## MES7        -0.061795   0.085204  -0.725             0.468293    
## MES8         0.102728   0.080779   1.272             0.203476    
## MES9         0.128074   0.074003   1.731             0.083511 .  
## MES10        0.073861   0.064213   1.150             0.250037    
## MES11        0.128846   0.049699   2.593             0.009527 ** 
## DIAM02      -0.098533   0.025741  -3.828             0.000129 ***
## DIAM03      -0.052529   0.025688  -2.045             0.040862 *  
## DIAM04      -0.052890   0.025933  -2.040             0.041399 *  
## DIAM05      -0.030064   0.026125  -1.151             0.249815    
## DIAM06      -0.058620   0.026755  -2.191             0.028452 *  
## DIAM07      -0.019430   0.027021  -0.719             0.472096    
## DIAM08      -0.041814   0.027598  -1.515             0.129743    
## DIAM09      -0.056785   0.027858  -2.038             0.041510 *  
## DIAM10      -0.033543   0.028064  -1.195             0.231994    
## DIAM11      -0.031387   0.028452  -1.103             0.269963    
## DIAM12      -0.069105   0.028898  -2.391             0.016789 *  
## DIAM13      -0.058481   0.028995  -2.017             0.043702 *  
## DIAM14      -0.050521   0.029059  -1.739             0.082113 .  
## DIAM15      -0.005315   0.028911  -0.184             0.854129    
## DIAM16      -0.020875   0.028907  -0.722             0.470213    
## DIAM17      -0.030515   0.028964  -1.054             0.292093    
## DIAM18       0.011639   0.028798   0.404             0.686092    
## DIAM19      -0.040120   0.028999  -1.384             0.166508    
## DIAM20      -0.042296   0.028853  -1.466             0.142674    
## DIAM21      -0.013514   0.028378  -0.476             0.633916    
## DIAM22      -0.067173   0.028534  -2.354             0.018564 *  
## DIAM23      -0.065631   0.028168  -2.330             0.019805 *  
## DIAM24      -0.083751   0.027834  -3.009             0.002622 ** 
## DIAM25      -0.061209   0.027490  -2.227             0.025975 *  
## DIAM26      -0.083113   0.027308  -3.044             0.002338 ** 
## DIAM27      -0.063732   0.026608  -2.395             0.016611 *  
## DIAM28      -0.058610   0.026162  -2.240             0.025074 *  
## DIAM29      -0.069256   0.026485  -2.615             0.008924 ** 
## DIAM30      -0.075873   0.026500  -2.863             0.004194 ** 
## DIAM31      -0.062440   0.032585  -1.916             0.055335 .  
## SEM02        0.009859   0.040285   0.245             0.806665    
## SEM03        0.185069   0.039765   4.654        0.00000325442 ***
## SEM04        0.177809   0.039488   4.503        0.00000670488 ***
## SEM05        0.167904   0.045064   3.726             0.000195 ***
## SEM06        0.152610   0.058092   2.627             0.008613 ** 
## SEM07        0.093801   0.059379   1.580             0.114175    
## SEM08        0.131077   0.059430   2.206             0.027416 *  
## SEM09        0.132761   0.061166   2.170             0.029969 *  
## SEM10        0.196599   0.071129   2.764             0.005710 ** 
## SEM11        0.185241   0.072425   2.558             0.010537 *  
## SEM12        0.132296   0.073507   1.800             0.071898 .  
## SEM13        0.202336   0.071781   2.819             0.004820 ** 
## SEM14        0.270107   0.078934   3.422             0.000622 ***
## SEM15        0.233082   0.082268   2.833             0.004609 ** 
## SEM16        0.207169   0.083003   2.496             0.012563 *  
## SEM17        0.276150   0.081884   3.372             0.000745 ***
## SEM18        0.240359   0.082967   2.897             0.003767 ** 
## SEM19        0.223957   0.087746   2.552             0.010700 *  
## SEM20        0.220262   0.088647   2.485             0.012965 *  
## SEM21        0.248225   0.088890   2.793             0.005230 ** 
## SEM22        0.252164   0.086463   2.916             0.003540 ** 
## SEM23        0.375942   0.091194   4.122        0.00003748522 ***
## SEM24        0.332223   0.092273   3.600             0.000318 ***
## SEM25        0.275609   0.092896   2.967             0.003009 ** 
## SEM26        0.223323   0.091022   2.453             0.014148 *  
## SEM27        0.313558   0.091516   3.426             0.000612 ***
## SEM28        0.324764   0.093381   3.478             0.000505 ***
## SEM29        0.334754   0.094122   3.557             0.000376 ***
## SEM30        0.369976   0.093937   3.939        0.00008197658 ***
## SEM31        0.334207   0.089774   3.723             0.000197 ***
## SEM32        0.219502   0.092393   2.376             0.017514 *  
## SEM33        0.190118   0.093261   2.039             0.041495 *  
## SEM34        0.181837   0.093751   1.940             0.052433 .  
## SEM35        0.256982   0.090143   2.851             0.004360 ** 
## SEM36        0.139307   0.089735   1.552             0.120560    
## SEM37        0.203679   0.090755   2.244             0.024814 *  
## SEM38        0.183667   0.091352   2.011             0.044375 *  
## SEM39        0.177031   0.089925   1.969             0.048993 *  
## SEM40        0.229846   0.084351   2.725             0.006433 ** 
## SEM41        0.096239   0.086445   1.113             0.265585    
## SEM42        0.187744   0.087297   2.151             0.031505 *  
## SEM43        0.209717   0.087283   2.403             0.016273 *  
## SEM44        0.144931   0.080375   1.803             0.071358 .  
## SEM45        0.087375   0.080070   1.091             0.275170    
## SEM46        0.092746   0.081100   1.144             0.252788    
## SEM47        0.102150   0.081648   1.251             0.210896    
## SEM48        0.135377   0.075711   1.788             0.073764 .  
## SEM49        0.207523   0.067221   3.087             0.002021 ** 
## SEM50        0.218502   0.068818   3.175             0.001498 ** 
## SEM51        0.255607   0.069419   3.682             0.000231 ***
## SEM52        0.182068   0.067675   2.690             0.007138 ** 
## SEM53       -0.047717   0.070035  -0.681             0.495657    
## DIASMon     -0.001337   0.012281  -0.109             0.913279    
## DIASSat     -0.056018   0.012016  -4.662        0.00000313193 ***
## DIASSun     -0.289293   0.012916 -22.397 < 0.0000000000000002 ***
## DIASThu     -0.002183   0.011882  -0.184             0.854243    
## DIASTue     -0.013498   0.011890  -1.135             0.256281    
## DIASWed     -0.012668   0.011896  -1.065             0.286942    
## FESTIVO1    -0.311926   0.019033 -16.389 < 0.0000000000000002 ***
## MADRE1       0.100524   0.069478   1.447             0.147941    
## DIC311      -0.037192   0.082435  -0.451             0.651870    
## SSANTA1     -0.187296   0.030490  -6.143        0.00000000081 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 3867.8  on 1460  degrees of freedom
## Residual deviance: 2093.2  on 1357  degrees of freedom
## AIC: 11053
## 
## Number of Fisher Scoring iterations: 4

Validación

##     1462     1463     1464     1465     1466     1467 
## 3.720335 3.921568 3.968401 3.978526 4.003534 3.918961

Calculo del Pseudo R^2 para el Modelo Poisson:

PseudoR2^: 0.4512764

Cálculo del MSE para el Modelo Poisson

  • Entrenamiento

MSE: 3839.6734359
RMSE: 61.9650985

  • Validacion

MSE: 3105.700784
RMSE: 55.7288147

*Variación

## [1] 19.1155

9.3 Modelo Lasso

Entrenamiento

  Cxtrain2<-model.matrix(ID ~ .-AÑO,Cdatos_tr2)[,-4]
  Cytrain2<-Cdatos_tr2$ID
  Classo_2<-glmnet(Cxtrain2,
                    Cytrain2,
                    standardize = FALSE,
                    alpha=1,
                    family = "poisson"
                    )
Classo_2
## 
## Call:  glmnet(x = Cxtrain2, y = Cytrain2, family = "poisson", alpha = 1,      standardize = FALSE) 
## 
##      Df  %Dev  Lambda
## 1     0  0.00 1.95800
## 2     1  3.12 1.78400
## 3     1  5.75 1.62600
## 4     1  7.97 1.48100
## 5     1  9.83 1.35000
## 6     1 11.40 1.23000
## 7     1 12.71 1.12100
## 8     1 13.82 1.02100
## 9     1 14.74 0.93030
## 10    2 16.90 0.84770
## 11    2 19.08 0.77240
## 12    3 21.28 0.70370
## 13    3 23.44 0.64120
## 14    3 25.26 0.58430
## 15    3 26.79 0.53240
## 16    3 28.07 0.48510
## 17    3 29.15 0.44200
## 18    3 30.05 0.40270
## 19    3 30.81 0.36690
## 20    4 31.59 0.33430
## 21    5 32.26 0.30460
## 22    6 32.99 0.27760
## 23    6 33.64 0.25290
## 24    6 34.18 0.23040
## 25    6 34.63 0.21000
## 26    7 35.02 0.19130
## 27    7 35.48 0.17430
## 28    8 35.87 0.15880
## 29    8 36.23 0.14470
## 30    9 36.57 0.13190
## 31   11 36.95 0.12020
## 32   14 37.40 0.10950
## 33   17 37.88 0.09975
## 34   17 38.35 0.09089
## 35   18 38.77 0.08282
## 36   20 39.16 0.07546
## 37   24 39.61 0.06876
## 38   24 40.06 0.06265
## 39   25 40.45 0.05708
## 40   31 40.82 0.05201
## 41   36 41.19 0.04739
## 42   44 41.59 0.04318
## 43   47 41.97 0.03934
## 44   51 42.33 0.03585
## 45   52 42.63 0.03266
## 46   54 42.89 0.02976
## 47   58 43.13 0.02712
## 48   62 43.34 0.02471
## 49   63 43.52 0.02251
## 50   68 43.69 0.02051
## 51   73 43.87 0.01869
## 52   74 44.03 0.01703
## 53   74 44.16 0.01552
## 54   79 44.26 0.01414
## 55   81 44.36 0.01288
## 56   85 44.46 0.01174
## 57   85 44.55 0.01070
## 58   87 44.64 0.00975
## 59   87 44.74 0.00888
## 60   86 44.82 0.00809
## 61   87 44.89 0.00737
## 62   85 44.95 0.00672
## 63   87 45.01 0.00612
## 64   88 45.06 0.00558
## 65   89 45.10 0.00508
## 66   91 45.15 0.00463
## 67   91 45.19 0.00422
## 68   91 45.23 0.00384
## 69   92 45.26 0.00350
## 70   93 45.29 0.00319
## 71   95 45.31 0.00291
## 72   95 45.34 0.00265
## 73   97 45.36 0.00241
## 74   99 45.40 0.00220
## 75   98 45.42 0.00200
## 76   99 45.44 0.00183
## 77   99 45.47 0.00166
## 78  101 45.51 0.00152
## 79  101 45.52 0.00138
## 80  102 45.54 0.00126
## 81  102 45.57 0.00115
## 82  100 45.59 0.00104
## 83  100 45.62 0.00095
## 84  101 45.63 0.00087
## 85  101 45.63 0.00079
## 86  102 45.65 0.00072
## 87  102 45.67 0.00066
## 88  102 45.67 0.00060
## 89  102 45.68 0.00054
## 90  101 45.69 0.00050
## 91  101 45.71 0.00045
## 92  101 45.71 0.00041
## 93  102 45.73 0.00038
## 94  101 45.73 0.00034
## 95  102 45.74 0.00031
## 96  102 45.74 0.00028
## 97  102 45.75 0.00026
## 98  102 45.75 0.00024
## 99  102 45.75 0.00021
## 100 102 45.77 0.00020

Validación

MSE y RMSE para el Modelo Lasso

  • Entrenamiento

MSE: 92.0163351
RMSE: 9.5925145

  • Validación:

MSE: 131.5848617
RMSE: 11.4710445

*Variación

CVarMSElas2<-((CMSE_tr_modelo_lasso_2-CMSE_vl_modelo_lasso_2)/CMSE_tr_modelo_lasso_2)*100
CVarMSElas2
## [1] -43.00163

9.4 Random Forest

Entrenamiento

Cmodelo_rf_2<-randomForest(ID~.-AÑO,data=Cdatos_tr2 ,importance=FALSE,ntree=500,mtry=2)
Cmodelo_rf_2
## 
## Call:
##  randomForest(formula = ID ~ . - AÑO, data = Cdatos_tr2, importance = FALSE,      ntree = 500, mtry = 2) 
##                Type of random forest: regression
##                      Number of trees: 500
## No. of variables tried at each split: 2
## 
##           Mean of squared residuals: 133.9569
##                     % Var explained: 20.05

Validación

##     1462     1463     1464     1465     1466     1467 
## 58.04507 62.72431 62.82032 62.90707 62.41442 61.91009

Resultado del bosque en función del número de Bosques

Cálculo del MSE para el Modelo Random Forest con Comunas

  • Entrenamiento

MSE: 122.3832676
RMSE: 11.0626971

Media entre la diferencia observada y predicha entrenamiento

## [1] -0.001896903
  • Validación

Media entre la diferencia observada y predicha validación

## [1] -6.25779

MSE: 156.5595317
RMSE: rCRMSE_modelo_rfv_2

*Variación

## [1] -27.9256

9.5 Red Neuronal

Entrenamiento

Cmodelo2 = h2o.deeplearning(
                          y = 'ID',
                          training_frame = as.h2o(Cdatos_tr2),
                          hidden = c(8,8),
                          epochs = 100,
                          
                          
                          )
## Warning in use.package("data.table"): data.table cannot be used without R
## package bit64 version 0.9.7 or higher. Please upgrade to take advangage of
## data.table speedups.
## 
  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |======================================================================| 100%
## 
  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |==============                                                        |  20%
  |                                                                            
  |======================================================================| 100%

Validación

## Warning in use.package("data.table"): data.table cannot be used without R
## package bit64 version 0.9.7 or higher. Please upgrade to take advangage of
## data.table speedups.
## 
  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |======================================================================| 100%
## 
  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |======================================================================| 100%

Cálculo del MSE para el modelo con Red Neuronal

  • Entrenamiento

MSE: 129.461763
RMSE: 11.3781265

  • Validación

MSE: 129.461763
RMSE: 11.3781265

*Variación

## [1] -311.763

*Media validación real-predicho, entrenamiento real-predicho

## [1] 58.55068
## [1] 64.7796
## [1] 63.60442
## [1] 64.00367

9.6 Xgboost

El XGboost (Extra Gradient boosting) parte del árbol de decisiones que se implementa en minería de datos para clasificar o pronosticar sobre una variable objetivo , a través, del aprendizaje automático que se realiza sobre un set de datos, utilizando varios árboles de decisiones, pero potenciando los resultados de estos, debido al procesamiento secuencial de la data con una función de pérdida o coste, la cual, minimiza el error iteración tras iteración, haciéndolo de esta manera, un pronosticador fuerte.

Construcción matriz de entrenamiento

Construcción matriz de validación

Entrenamiento

modelo2xg <- xgboost(data = train_matrix2 , 
                           objective = "count:poisson", eval_metric = "rmse",
                           nrounds = 50, max.depth = 1, eta = 1, 
                           subsample = 1,colsample_bytree=1, min_child_weight=1 )
## [1]  train-rmse:65.073082 
## [2]  train-rmse:64.073082 
## [3]  train-rmse:62.061371 
## [4]  train-rmse:58.019581 
## [5]  train-rmse:49.928905 
## [6]  train-rmse:33.996994 
## [7]  train-rmse:16.353298 
## [8]  train-rmse:12.352262 
## [9]  train-rmse:11.162349 
## [10] train-rmse:10.782062 
## [11] train-rmse:10.639372 
## [12] train-rmse:10.564971 
## [13] train-rmse:10.499427 
## [14] train-rmse:10.451012 
## [15] train-rmse:10.412947 
## [16] train-rmse:10.375799 
## [17] train-rmse:10.340749 
## [18] train-rmse:10.312448 
## [19] train-rmse:10.280381 
## [20] train-rmse:10.257374 
## [21] train-rmse:10.231756 
## [22] train-rmse:10.208152 
## [23] train-rmse:10.185641 
## [24] train-rmse:10.167708 
## [25] train-rmse:10.151332 
## [26] train-rmse:10.134226 
## [27] train-rmse:10.116194 
## [28] train-rmse:10.102639 
## [29] train-rmse:10.090843 
## [30] train-rmse:10.077860 
## [31] train-rmse:10.067226 
## [32] train-rmse:10.057198 
## [33] train-rmse:10.047338 
## [34] train-rmse:10.037616 
## [35] train-rmse:10.028504 
## [36] train-rmse:10.019638 
## [37] train-rmse:10.012671 
## [38] train-rmse:10.004662 
## [39] train-rmse:9.996900 
## [40] train-rmse:9.989637 
## [41] train-rmse:9.982532 
## [42] train-rmse:9.976544 
## [43] train-rmse:9.970345 
## [44] train-rmse:9.964125 
## [45] train-rmse:9.957726 
## [46] train-rmse:9.949064 
## [47] train-rmse:9.941461 
## [48] train-rmse:9.935128 
## [49] train-rmse:9.928802 
## [50] train-rmse:9.921652

El modelo se entrena teniendo en cuenta la métrica de evaluación RMSE, esto es, realiza 50 iteraciones intentando encontrar la mejor medida para este error, es decir, el menor valor.

Validación

## [1] 45.92014 59.47823 61.00642 61.00642 61.00642 59.03842
## [1] 46.60668 60.36753 61.91857 59.92115 47.35748 41.91621

Se muestran algunos datos de los conjuntos predichos tanto con los datos de validación, como con los de entrenamiento. Se puede observar que estos valores si varian entre si y aparentemente no se alejan considerablemente de la media.

Cálculo del MSE para el modelo XGBoost

  • Entrenamiento

MSE: 98.4391642
RMSE: 9.9216513

  • Validación

MSE: 115.3236489
RMSE: 10.7388849

  • Variación entre entrenamiento y validación
## [1] -17.1522

Variación entre los MSE de entrenamiento y validación: -17.1522025.
Teniendo en cuenta el rango de variación permitido en el que no se sospecha de sobre-entrenamiento del modelo, este valor parece no cumplir, pues es mayor al 15%, lo anterior puede explicarse dado que los datos de validación reales tienen una media de más de 6 unidades por debajo respecto a los datos de entrenamiento, y teniendo en cuenta que el modelo no es una serie de tiempo, ni se puede entrenar y modelar con la información del año 2018, no está en la capacidad de predecir estos valores considerablemente menores. De igual manera es un modelos con los MSE´s y RMSE´s más bajos en comparación a otros modelos y estos valores son aceptables teniendo en cuenta la escala de los datos. Por lo anterior en este caso no se considera un problema mayor la variación del 17% y el posible sobre-entrenamiento

Comparando los MSE´s de todos los modelos para los datos de TipoII sin comuna, y teniendo en cuenta la variación entre estos de sus respectivos datos de entrenamiento y validación, se considera que este modelo con XGBoost es el mejor para predecir los datos del 2019-2020 y más adelante en la parte de predicción se utilizará con este fin, para luego disponer de estas predicciónes en la aplicación web final.

  • Media entrenamiento real-pred y validación real-pred
## [1] 64.7796
## [1] 64.78025
## [1] 58.55068
## [1] 64.02016

En los valores anteriores se observa claramente lo explicado anteriormente, los datos de validación reales (Cdatos_vl2$ID) tienen una media de 6 unidades por debajo de los de entrenamiento aproximadamente, por lo tanto la media de sus valores predichos se espera esté más cercana a la de los datos del modelo y el MSE de validación tenga una variación mayor respecto al MSE de entrenamiento.

10 Resumen de ajuste de modelos para Accidentes tipo I y tipo II con comunas

10.1 Accidentes TIPO I

10.2 Accidentes TIPO II

11 Predicción años 2019-2020

Se cargan los datos correspondientes a los años 2019 y 2020

#load("G:/Mi unidad/Trabajo Final AP/Predicción/DataP2.RData")

Cabe recordar que en la sección denominada “Creación de los Datasets para predicción” se crearon los datos para los años que se definieron para la predicción, incluyendo un registro por día y teniendo en cuenta los datos reales respecto a los días festivos, día de la madre y demás fechas especiales. Para el año 2020 los modelos escogidos no tienen en cuenta la emergencia causada por el más conocido COVID-19, por lo tanto, los valores que se podrán observar en la aplicación para este año no se ven afectados por la pandemia.

#datap<-DataP
#Fechap<-datap$FECHA
#datap$ID<-0
#datap<-datap[,-1]
#datap<-datap[,-13]
#data_p2 <- model.matrix(ID~., data=datap)
#data_p2 <- data_p2[,-1]
#labelp2 <-datap[,"ID"] #Se crea la variable dependiente

#pmatrix2 <- xgb.DMatrix(data =as.matrix(data_p2), label= labelp2)

Tipo 1:
El modelo escogido para predecir los datos teniendo en cuenta los valores correspondientes a 2019-2020 para las variables consideradas en los modelos de los accidentes TipoI es el bosque aleatorio como se explicó en la sección propia de ese modelo.

#TipoI=predict(Cmodelo_rf_1, newdata=datap)
#TipoI<-round(TipoI)

Tipo 2:
El modelo escogido para predecir los datos teniendo en cuenta los valores correspondientes a 2019-2020 para las variables consideradas en los modelos de los accidentes TipoII es el XGBoost como se explicó en la sección propia de ese modelo.

#TipoII=predict(modelo2xg, newdata = pmatrix2)
#TipoII<-round(TipoII)
#datap$FECHA<-Fechap
#data_19_20_2<-data.frame(datap$FECHA)
#names(data_19_20_2)[1]="FECHA"
#data_19_20_2$AÑO <-as.integer(format(as.Date(data_19_20_2$FECHA,format="%Y/%m/%d"),"%Y"))
#data_19_20_2$MES <-as.integer(format(as.Date(data_19_20_2$FECHA,format="%Y/%m/%d"),"%m"))
#data_19_20_final<-cbind(data_19_20_2,TipoI,TipoII)
#save(data_19_20_final,file="PrediccionesFINALES.RData")
#write.csv(data_19_20_final,file="PrediccionesFINALES.csv")

12 Enlaces de interés

13 Bibliografía

Rodriguez, Y. (31 de Octubre de 2018 ). XgBoost. Obtenido de Diego Calvo: https://www.diegocalvo.es/xgboost/