Análisis de series temporales en R

Las series temporales en R se utilizan para ver cómo se comporta un objeto durante un período de tiempo. En R, se puede hacer fácilmente con la función ts() con algunos parámetros. La serie de tiempo toma el vector de datos y cada dato está conectado con el valor de marca de tiempo dado por el usuario. Esta función se utiliza principalmente para conocer y pronosticar el comportamiento de un activo en el negocio durante un período de tiempo. Por ejemplo, análisis de ventas de una empresa, análisis de inventario, análisis de precios de una acción o mercado en particular, análisis de población, etc.

Sintaxis:  objectName <- ts(datos, inicio, fin, frecuencia)

dónde,

  • data representa el vector de datos
  • inicio representa la primera observación en la serie de tiempo
  • final representa la última observación en la serie de tiempo
  • la frecuencia representa el número de observaciones por unidad de tiempo. Por ejemplo, frecuencia=1 para datos mensuales.

Nota: Para conocer más parámetros opcionales, use el siguiente comando en la consola R: 

help("ts")

Ejemplo: Tomemos el ejemplo de la situación de pandemia de COVID-19. Tomando un número total de casos positivos de casos de COVID-19 semanalmente desde el 22 de enero de 2020 hasta el 15 de abril de 2020 del mundo en vector de datos.

R

# Weekly data of COVID-19 positive cases from
# 22 January, 2020 to 15 April, 2020
x <- c(580, 7813, 28266, 59287, 75700,
    87820, 95314, 126214, 218843, 471497,
    936851, 1508725, 2072113)
 
# library required for decimal_date() function
library(lubridate)
 
# output to be created as png file
png(file ="timeSeries.png")
 
# creating time series object
# from date 22 January, 2020
mts <- ts(x, start = decimal_date(ymd("2020-01-22")),
                            frequency = 365.25 / 7)
 
# plotting the graph
plot(mts, xlab ="Weekly Data",
        ylab ="Total Positive Cases",
        main ="COVID-19 Pandemic",
        col.main ="darkgreen")
 
# saving the file
dev.off()

Producción: 

Serie temporal multivariada

Series temporales multivariantes crea varias series temporales en un solo gráfico.

Ejemplo: Toma de datos de casos positivos totales y muertes totales por COVID-19 semanalmente desde el 22 de enero de 2020 hasta el 15 de abril de 2020 en vector de datos. 

R

# Weekly data of COVID-19 positive cases and
# weekly deaths from 22 January, 2020 to
# 15 April, 2020
positiveCases <- c(580, 7813, 28266, 59287,
                75700, 87820, 95314, 126214,
                218843, 471497, 936851,
                1508725, 2072113)
 
deaths <- c(17, 270, 565, 1261, 2126, 2800,
            3285, 4628, 8951, 21283, 47210,
            88480, 138475)
 
# library required for decimal_date() function
library(lubridate)
 
# output to be created as png file
png(file ="multivariateTimeSeries.png")
 
# creating multivariate time series object
# from date 22 January, 2020
mts <- ts(cbind(positiveCases, deaths),
start = decimal_date(ymd("2020-01-22")),
                    frequency = 365.25 / 7)
 
# plotting the graph
plot(mts, xlab ="Weekly Data",
    main ="COVID-19 Cases",
    col.main ="darkgreen")
 
# saving the file
dev.off()

Producción: 

Pronóstico

La previsión se puede realizar en series temporales utilizando algunos modelos presentes en R. En este ejemplo, se utiliza el modelo automatizado de Arima. Para conocer más parámetros de la función arima(), use el siguiente comando. 

help("arima")

En el siguiente código, la previsión se realiza utilizando la biblioteca de previsión y, por lo tanto, es necesaria la instalación de la biblioteca de previsión. 

R

# Weekly data of COVID-19 cases from
# 22 January, 2020 to 15 April, 2020
x <- c(580, 7813, 28266, 59287, 75700,
    87820, 95314, 126214, 218843,
    471497, 936851, 1508725, 2072113)
 
# library required for decimal_date() function
library(lubridate)
 
# library required for forecasting
library(forecast)
 
# output to be created as png file
png(file ="forecastTimeSeries.png")
 
# creating time series object
# from date 22 January, 2020
mts <- ts(x, start = decimal_date(ymd("2020-01-22")),
                            frequency = 365.25 / 7)
 
# forecasting model using arima model
fit <- auto.arima(mts)
 
# Next 5 forecasted values
forecast(fit, 5)
 
# plotting the graph with next
# 5 weekly forecasted values
plot(forecast(fit, 5), xlab ="Weekly Data",
ylab ="Total Positive Cases",
main ="COVID-19 Pandemic", col.main ="darkgreen")
 
# saving the file
dev.off()

Salida: 
después de ejecutar el código anterior, se producen los siguientes resultados previstos.

         Point Forecast   Lo 80   Hi 80   Lo 95   Hi 95
2020.307        2547989 2491957 2604020 2462296 2633682
2020.326        2915130 2721277 3108983 2618657 3211603
2020.345        3202354 2783402 3621307 2561622 3843087
2020.364        3462692 2748533 4176851 2370480 4554904
2020.383        3745054 2692884 4797225 2135898 5354210

A continuación, el gráfico muestra los valores estimados pronosticados de COVID-19 si continúa generalizándose durante las próximas 5 semanas. 

Publicación traducida automáticamente

Artículo escrito por utkarsh_kumar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *