Una serie de tiempo es una lista de fechas, cada una de las cuales se asocia a un valor numérico. Las series de tiempo son un modo estructurado de representar datos. Visualmente, es una curva que evoluciona a lo largo del tiempo.
El pronóstico de las series de tiempo significa que extendemos los valores históricos al futuro, donde aún no hay mediciones disponibles. El pronóstico se realiza generalmente para optimizar áreas como los niveles de inventario, la capacidad de producción o los niveles de personal.
Existen dos variables estructurales principales que definen un pronóstico de serie de tiempo:
| Variable | Descripción |
|---|---|
| Periodo | Representa el nivel de agregación. Los períodos más comunes son meses, semanas y días. |
| Horizonte | Representa la cantidad de períodos por adelantado que deben ser pronosticados. |
Cuando trabajamos con series de tiempo en R, muchas veces es complicado que este programa acepte que los datos contengan fecha y hora; Lubridate fue creado por Garrett Grolemund y Hadley Wickham y es un paquete de R que simplifica la labor de trabajar con fechas y horas en R.
install.packages("lubridate",dependencies = TRUE)
library(lubridate)
##
## Attaching package: 'lubridate'
## The following object is masked from 'package:base':
##
## date
Sus funciones tienen diversos formatos para trabajar. La estructura de las fechas en lubridate son y (año), m (mes) y d (día), mismos que se pueden almacenar en variables para simplificarlos en una tabla.
Por ejemplo:
A continuación, se muestran algunos comandos con la descripción de la función que desempeña:
| Función | Descripción |
|---|---|
| Sys.getlocale | Devuelve la hora local. |
| Today | Devuelve la fecha del día actual. |
| rbind | Separa el año, mes y día de una fecha. |
| wday | Extrae el día de la semana donde el día es representado por un valor numérico; donde “label=true” muestra el nombre del día de la semana. |
| now | Devuelve la fecha y hora de ese momento. |
| hour/minute/second | Devuelven el valor hora/minuto/segundo al momento. |
| ymd, dmy, hms, etc… | Ayudan a separar los componentes de la fecha y hora cuando no tienen una estructura definida. |
| update | Permite actualizar fecha y hora. |
| with_tz y force_tz | Funciones para realizar combinaciones aritméticas. |
Estructura de comandos
Sys.getlocale("LC_TIME")
today()
rbind(y,m,d)
wday(variable,label = true)
now()
hour()
minute()
second()
ymd (), dmy (), hms (), ymd_hms ()
Intervalos
Los intervalos son periodos de tiempo específicos (debido a que están vinculados a fechas específicas). Las funciones auxiliares para crear duraciones siguen el mismo formato, pero empiezan con un “d” (por duración) o “e” (para exacto).
my_day <- today()
my_day
## [1] "2017-06-07"
rbind(year(my_day),month(my_day),day(my_day)) #Estructura de fecha.
## [,1]
## [1,] 2017
## [2,] 6
## [3,] 7
wday(my_day,label = TRUE)
## [1] Wed
## Levels: Sun < Mon < Tues < Wed < Thurs < Fri < Sat
dmy("13/07/1993") #Formato de fecha.
## [1] "1993-07-13"
actually <- now()
actually
## [1] "2017-06-07 19:07:48 CDT"
meeting <- ymd_hms("2017-06-13 12:00:00", tz = "America/Chicago") #Visualizar hora actual en otra ubicación.
with_tz(meeting, "Pacific/Auckland")
## [1] "2017-06-14 05:00:00 NZST"
minutes(2)
## [1] "2M 0S"
dminutes(2) #Duración de 2 minutos
## [1] "120s (~2 minutes)"
leap_year(2017)
## [1] FALSE
ymd(20170713) + years(5) #Operación airtmética para sumar 5 años a la fecha.
## [1] "2022-07-13"
El paquete lubridate nos ayuda a jugar con la estructura de las fechas y horas, además de realizar operaciones aritméticas para resolver problemas de tiempo, ajustes de hora para cambios de vuelos, etc… Es una excelente herramienta que complementa otros paquetes de R enfocados al análisis de series de tiempo.