A8U1

Del Pardo Espinoza Antonio - Irineo Inzunza Marco Antonio - Rojas Wilson Roberto - Valencia Camacho Jesús Gabriel

3/24/2022

Análisis de series de tiempo de Muertes por ahogamiento en niños menores a 5 años

Representa las Muertes por ahogamiento en niños menores a 5 años a lo largo de los años en México. Se utiliza para conocer la frecuencia con la que se dan estas muertes y como ha cambiado a lo largo de los años.

DROWN

Importación.

Importación de paquetes.

library(pacman)
p_load("DT","xfun", "readr","tidyr", "dplyr","prettydoc", "stringr","vembedr", "xfun", "ggplot2", "lubridate", "plotly","readr","corrplot","scales","anytime", "tidyverse", "lubridate", "forecast", "TTR", "MLmetrics", "tseries", "fpp", "TSstudio", "xfun")
library(readxl)

Importación de datos.

options(readr.show_col_types = FALSE)
drown <- read_csv("drowning-death-rates-under-5.csv")
anyNA(drown)
## [1] FALSE

Esto nos dice que no se tiene ningún valor faltante

Analisís de datos.

drown <- ts(drown [,4],  start = 1990, end = 2019, frequency = 2)
drown
## Time Series:
## Start = c(1990, 1) 
## End = c(2019, 1) 
## Frequency = 2 
##  [1] 8.388906 8.222425 8.017183 7.700256 7.339840 6.979461 6.683143 6.488267
##  [9] 6.292146 6.075895 5.764837 5.534564 5.287090 5.053605 4.806004 4.619971
## [17] 4.452318 4.305863 4.142876 3.983313 3.825256 3.647187 3.462988 3.237864
## [25] 3.055325 2.886930 2.657506 2.439821 2.337547 2.187058 8.388906 8.222425
## [33] 8.017183 7.700256 7.339840 6.979461 6.683143 6.488267 6.292146 6.075895
## [41] 5.764837 5.534564 5.287090 5.053605 4.806004 4.619971 4.452318 4.305863
## [49] 4.142876 3.983313 3.825256 3.647187 3.462988 3.237864 3.055325 2.886930
## [57] 2.657506 2.439821 2.337547

La siguiente serie de tiempo muestra la tasa de Muertes en ahogamiento en niños menores a 5 años desde 1990 a 2019

autoplot(drown)

Descomposición de la serie de tiempo.

La descomposición de una serie de tiempo es un proceso que identifica y calcula las diversas componentes existentes en una serie temporal, así como la forma en que estas se relacionan entre sí. Se utiliza para identificar componentes, reensamblando las partes para construir un pronóstico. Con lo mencionado se realizará la descomposición para poder conocer los componentes de la serie de tiempo y como es que estos mismos se relacionan.

drown_dc <- drown %>%
decompose(type="multiplicative") %>%
autoplot()
drown_dc

Validación cruzada

La validación cruzada es una técnica para evaluar modelos de ML mediante el entrenamiento de varios modelos de ML en subconjuntos de los datos de entrada disponibles y evaluarlos con el subconjunto complementario de los datos.

test_drown <- tail(drown, 6) #20% para pruebas

train_drown <- head(drown, length(drown)-6) #80% para entrenamiento

Ajuste del modelo con Holt-Winters.

Se usará el metodo Holt-Winters para el ajuste del modelo.

drown_ses <- HoltWinters(train_drown, seasonal = "multiplicative",)
drown_ses
## Holt-Winters exponential smoothing with trend and multiplicative seasonal component.
## 
## Call:
## HoltWinters(x = train_drown, seasonal = "multiplicative")
## 
## Smoothing parameters:
##  alpha: 1
##  beta : 0
##  gamma: 1
## 
## Coefficients:
##          [,1]
## a   3.4589937
## b  -0.2234730
## s1  0.9988452
## s2  1.0011548

Forecasting

drown_forecast <- forecast(object = drown_ses, h=11)

Visualizando resultados

drown %>%
  autoplot(series = "actual") +
  autolayer(drown_forecast$fitted, series = "train") +
  autolayer(drown_forecast$mean, series = "test") +
  theme_minimal()
## Warning: Removed 2 row(s) containing missing values (geom_path).

Evaluar la precisión del modelo

eval_ses <- accuracy(drown_forecast, test_drown)
eval_ses
##                      ME      RMSE        MAE      MPE     MAPE      MASE
## Training set 0.12600264 0.9018968 0.18255949 1.823383 2.673268 0.2764853
## Test set     0.09245649 0.1134196 0.09245649 3.631802 3.631802 0.1400248
##                     ACF1 Theil's U
## Training set 0.006934401        NA
## Test set     0.195634903 0.7421043

De acuerdo con la prueba de precision el modelo tiene un error medio de: 19.4%

Utilizando el modelo SARIMA o ARIMA

Los modelos SARIMA captan el comportamiento puramente estacional de una serie, en forma similar, como hemos visto, se realiza para la componente regular o no estacional. Una serie con influencia solamente por la componente estacional puede ser descrito por un modelo SARIMA (P,D,Q)

Empezaremos haciendo una prueba al conjunto de datos

adf.test(drown)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  drown
## Dickey-Fuller = -2.1913, Lag order = 3, p-value = 0.4975
## alternative hypothesis: stationary

Deacuerdo con el valor de P, los datos son estacionarios porque son mayores a 0.05

Analisis de ajuste

drown_diff <- drown %>%
  diff(lag=12) %>%
  diff(lag=1)

drown_diff %>%
  autoplot()

Analizando la serie de tiempo por medio de un modelo ARIMA

drown_auto <- auto.arima(y = train_drown, seasonal = T)
summary(drown_auto)
## Series: train_drown 
## ARIMA(1,0,0) with non-zero mean 
## 
## Coefficients:
##          ar1    mean
##       0.8857  5.4422
## s.e.  0.0647  0.9189
## 
## sigma^2 = 0.7808:  log likelihood = -68.4
## AIC=142.79   AICc=143.28   BIC=148.7
## 
## Training set error measures:
##                       ME      RMSE       MAE       MPE     MAPE      MASE
## Training set -0.07901075 0.8668068 0.3719827 -4.223656 7.723828 0.5633656
##                    ACF1
## Training set 0.03858599

Visualizando la grafica de resultados de datos reales versus las predicciones (forecasting) del modelo SARIMA

Datos reales vs SARIMA

train_drown %>%
  autoplot(series= "actual") +
  autolayer (drown_auto$fitted, series = "SARIMA auto") +
  theme_minimal()

Conclusion

Podemos darnos cuenta que las muertes bajan y suben constantemente, nos dimos cuenta gracias a al dickey-fuller test que los datos son estacionarios por los que la frecuencia de los datos no cambian mucho con el paso del tiempo.

Descargas

Descargar este código

xfun::embed_file("A8U1.Rmd")

Download A8U1.Rmd

Descargar datos

xfun::embed_file("drowning-death-rates-under-5.csv")

Download drowning-death-rates-under-5.csv