tolBasis
Introducción
tolBasis
es uno de los paquetes para R desarrollados para la integración con TOL. Véase Rprojects.
tolBasis
es el paquete fundamental para la incorporación de TOL en R. Son los cimientos sobre los que se apoyan los desarrollos de TOL en R.
No necesita de una instalación de TOL para ser usado.
Incorpora los conceptos TOL a R: fechados, series temporales polinomios de retardos, etc.
Fechas en R (clases Date y POSIXt)
Las fechas en R ya disponen de un soporte compatible con TOL:
- La clase "Date" para las fechas enteras (sin horas, minutos y segundos).
- Las clases "POSIXct" y "POSIXlt" (derivadas de "POSIXt") para los instantes temporales en general (con horas, minutos y segundos).
Para ampliar el conjunto de funcionalidades con fechas, tolBasis
se apoya en el paquete lubridate
de R.
Este paquete se carga automáticamnete con tolBasis
.
Se incorpora una nueva función con el mismo nombre de la clase ("Date") a modo de constructora de fechas al estilo de TOL, es decir, indicando el año y opcionalmente el mes y el día.
Ejemplos:
Date(2012) # equivale a y2012 en TOL Date(2015,5,12) # equivale a y2015m05d12 en TOL
Fechados en R (clase Dating)
Los fechados de TOL han sido parcialmente implementados en R, para poder dar un soporte a las series temporales con la misma concepción que en TOL.
Los fechados en R se implementan a través de una clase (S3) denominada "Dating".
Inicialmente sólo se han considerado los fechados con fechas enteras (sin horas, minutos y segundos).
Esta decisión se debe a varios motivos:
- La mayor sencillez de la implementación usando sólo fechas (clase "Date" en R),
- Las dificultades de usar instantes temporales, por la existencia de zonas horarias, cambios de hora, etc.
- El uso más común de estos fechados (de fecha entera).
Los fechados más comunes ya están predefinidos:
Yearly
,Monthly
,Weekly
,Daily
.
Nótese queWeekly
en R se refiere a los domingos (por cómo se definen las semanas en R) y no a los lunes como ocurre en TOL.Mondays
,Tuesdays
,Wednesdays
,Thursdays
,Fridays
,Saturdays
,Sundays
.
Corresponden a los timesets de TOL del tipoW(n)
. Nótese queMondays
coincide con el fechadoWeekly
en TOL.Quarterly
,HalfYearly
.
Para el uso de los fechados en R, se incorporan algunos métodos, siguiendo la siguiente nomenclatura: "D" (de Dating) más el nombre de la función (en minúsculas):
- Dbelong
- Dseq
- Dsucc
- Dfloor
- Dceiling
- Dround
- Ddiff
Hay disponible más información en la documentación del paquete en R.
Ejemplos:
Dsucc(Sys.Date(), Monthly, 1) # próximo mes currYear <- Dfloor(Sys.Date(), Yearly) # año en curso Dseq(currYear, dating=Monthly, len=12) # meses del año en curso
Series en R (clase Serie)
Las series temporales se reimplementan en R con un diseño similar al de TOL.
Las series temporales en R se implementan a través de una clase (S3) denominada "Serie" que se apoya en la clase "Dating".
Se descartaron las implementaciones existentes (clases "ts" o "xts") por no adecuarse a las necesidades de uso de las series en TOL.
Aunque sí se implementan mecanismos de conversión entre unas clases y otras (as.ts
, as.xts
, as.Serie
, etc.)
para facilitar el uso y la explotación de los resultados.
El constructor por defecto de las series temporales ("Serie") recibe: un vector de datos, un fechado y la fecha del primer dato de la serie.
Ejemplos:
Serie(rnorm(12), Monthly, Date(2015)) # constructor Serie ts1 <- ts(1:10, frequency = 4, start = c(1959, 2)) # constructor ts as.Serie(ts1) # conversión ts a Serie
Para el uso de las series temporales en R, se incorporan algunos métodos, siguiendo la siguiente nomenclatura: "S" (de Serie) más el nombre de la función (en minúsculas):
- Sdating
- Sfirst
- Slast
- Ssub
- Sdates
Además se implementa el uso con series de los operadores aritméticos (+
, -
, *
, /
, ^
) y el operador [ ]
.
Hay disponible más información en la documentación del paquete en R.
Ejemplos:
s <- Serie(rnorm(12), Monthly, Date(2015)) Ssub(s, Date(2015,6), Date(2015,8)) # datos de junio a agosto Ssub(s, -3, -1) # últimos tres datos Slast(s) # fecha del último dato s[Slast(s)] # último dato
Polinomios de retardos en R (clase Polyn)
Los polinomios de retardos se implementan en R para su uso con las series temporales (clase "Serie").
Además permitirá la intercomunicación de este tipo de objetos con TOL. Véase la información correspondiente del paquete tolRlink
.
Los polinomios de retardos en R se implementan a través de una clase (S3) denominada "Polyn" que se apoya internamente en la gestión de polinomios del paquete polynom
.
Los dos polinomios elementales ya se encuentran implementados:
B
: el operador de retardo (es un monomio de grado 1)A
: el operador de adelanto (es un monomio de grado -1). Nótese que se usaA
en lugar deF
como en TOL, ya que en R, esta variable está reservada para el valor binario falso.
Se implementa el uso con estos polinomios de los operadores aritméticos (+
, -
, *
, /
, ^
), de los operadore de relación ==
y !=
y del operador [ ]
.
Además se incorpora el operador %:%
(<Polyn> %:% <Serie> -> <Serie>
) que permite aplicar polinomios de retardos a las series temporales.
Ejemplos:
(1+B)^2 pol <- (1-A)*(1+B) as.character(pol, forward="F") # polinomio en formato TOL
Cocientes de polinomios de retardos en R (clase Ratio)
Los cocientes de polinomios de retardos se implementan en R para favorecer la intercomunicación con TOL.
Los cocientes de polinomios de retardos en R se implementan a través de otra clase (S3) denominada "Ratio" que se apoya en la clase "Polyn".
Los cocientes de polinomios pueden crearse naturalmente (mediante el operador /
) o mediante el constructor de la clase:
Ejemplos:
(1-B)/(1+B) Ratio(1, 1-B)
Para el uso de los cocientes de polinomios de retardos en R, se incorporan algunos métodos, siguiendo la siguiente nomenclatura: "R" (de Ratio) más el nombre de la función (en minúsculas):
- Rnumerator
- Rdenominator
Además se implementa el uso con estos cocientes de los operadores aritméticos (+
, -
, *
, /
, ^
) y de los operadores de relación ==
y !=
.