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