Estudio de las alertas del servicio de emergencias 112 del Gobierno de Canarias utilizando técnicas de ciencia de los datos

Carlos B. Rosa Remedios
Luis Santacreus Ríos
(CECOES 1-1-2 Canarias)


Carlos Pérez-González
Teno González Dos Santos
Marcos Colebrook Santamaría
José Luis Roda García
(Universidad de La Laguna)

El CECOES 1-1-2

Sectores

Integra otros servicios de emergencia

Proceso de llamada

Mientras se toman los datos del incidente, la ayuda ya va en camino. Gracias a unos protocolos automáticos, se clasifica la llamada y se envía el recurso más adecuado para cada situación, ya sea sanitario, de seguridad, extinción de incendios, salvamento y rescate.

Apoyado en un programa informatizado, el operador de demanda realiza un cuestionario que permite clasificar la alerta y asignar el recurso o recursos necesarios para resolver el incidente.

Objetivos planteados

AÑO Las Palmas S/C. Tenerife
2005 345,035 313,875
2006 355,433 329,674
2007 355,070 330,162
…. …… ……
2013 348,352 331,204
2014 359,035 346,127

Conjunto de datos

Adquisición de datos: uso de software R

Adquisición de datos: importación

start <- proc.time()
datos_2005 <- read.csv("112_20XX.txt", sep=";", dec=",", stringsAsFactors=FALSE)
end<-proc.time() - start
## [1] "Fichero incidencias 2005: 14.43 segundos"
## [1] "Fichero incidencias 2006: 18.9 segundos"
## [1] "........."
## [1] "Fichero incidencias 2014: 15.9 segundos"

Adquisición de datos: importación

## [1] "Uso RAM fichero incidencias 2005: 156.7 Mb"
## [1] "Uso RAM fichero incidencias 2006: 178.9 Mb"
## [1] "........."
## [1] "Uso RAM fichero incidencias 2014: 203.2 Mb"

Adquisición de datos: uso de librerías de bigdata

library(ffbase)
start <- proc.time()
datos_global <- load.ffdf(dir="data_ffdf")
end<-proc.time() - start
## [1] "Estructura ffdf: 0.13 segundos"
## [1] "Uso RAM de estructura ffdf: 5.3 Mb"

Preparación de datos: librerías de resúmenes estadísticos

table.dia_by_muni_by_sexo<-112_ffdf %>%
                          filter(anio="2009") %>%
                          group_by(dia,sexo,municipio) %>%
                          summarize(n=n()) %>%
                          mutate(prop.catch=n/sum(n)) %>%
                          arrange(desc(prop.catch))
##    row          MES   SEXO MUNICIPIO TOTAL
##      1     01-ENERO HOMBRE     ADEJE     1
##      2     01-ENERO  MUJER     ADEJE     1
##      3     01-ENERO HOMBRE    AGAETE     1
##      4     01-ENERO  MUJER    AGAETE     1
##                 ...    ...       ...   NaN
##  69349 31-DICIEMBRE HOMBRE     YAIZA     1
##  69350 31-DICIEMBRE  MUJER     YAIZA     1
## [1] "Consulta estad. data.frame: 37.6 segundos"
## [1] "Consulta estad. WITH ffdf y dplyr: 0.2 segundos"

Preparación de los datos: Depuración (I)

SEXO[ SEXO %not in% c('Mu','Ho')]<-""

Preparación de los datos: Depuración (II)

Preparación de los datos: Normalización (I)

FECHA.INICIO<-
  strptime( paste(as.Date(DIA.INICIO,format= "%d/%m/%Y"), HORA.INICIO),
            format= "%Y-%m-%d %H:%M:%S", tz="GMT")

FECHA.FINALIZA<-
  strptime( paste(as.Date(DIA.FINALIZA,format= "%d/%m/%Y"), HORA.FINALIZA),
            format= "%Y-%m-%d %H:%M:%S", tz="GMT")
DURALERTA<-as.numeric(difftime(FECHA.FINALIZA,FECHA.INICIO,units="hours"))

Preparación de los datos: Normalización (II)

## [1] "Adeje"                  "Arucas"                
## [3] "Icod de los Vinos"      "Mar"                   
## [5] "San Bartolomé Tirajana" "Silos Los"             
## [7] "Vallehermoso"
#Custom R function
compare.linkage(Nombre.Municipio, Nombre.Oficial.INE)
## [1] "Operación de comparación: 0.1 segundos"

Preparación de los datos: Creando un mapa base (I)

Preparación de los datos: Creando un mapa base (II)

Análisis y presentación: Aplicación web

Análisis y presentación: Aplicación web

Análisis y presentación: Aplicación web

Análisis y presentación: Aplicación web

Análisis y presentación: Aplicación web

Análisis y presentación: Aplicación web

Análisis y presentación: Aplicación web

Análisis y presentación: Aplicación web

Análisis y presentación: Conclusiones (I)

#Custom R function
library(nnet)
mod1<-multinom(TRECURSO~SEXO+EDAD+MES+TIDE, data=112.datos)

Análisis y presentación: Conclusiones (II)

## [1] "# weights:  181"
## [1] "initial  value 2091.871880 "
## [1] "iter  10 value 5.870648"
## [1] "iter  20 value 2.942765"
## [1] "........"
## [1] "iter  1000 value 0.273944"
## [1] "stopped after 1000 iterations"
## [1] "Tiempo total: 5.3 minutos"

Referencias