Learn R Programming

EGAnet (version 2.4.0)

glla: Generalized Local Linear Approximation

Description

Estimates the derivatives of a time series using generalized local linear approximation (GLLA). GLLA is a filtering method for estimating derivatives from data that uses time delay embedding and a variant of Savitzky-Golay filtering to accomplish the task.

Usage

glla(
  x,
  n.embed,
  tau,
  delta,
  order,
  na.derivative = c("none", "kalman", "rowwise", "skipover")
)

Value

Returns a matrix containing n columns in which n

is one plus the maximum order of the derivatives to be estimated via generalized local linear approximation

Arguments

x

Numeric vector. An observed time series

n.embed

Numeric (length = 1). Number of embedded dimensions (the number of observations to be used in the Embed function)

tau

Numeric (length = 1). Number of observations to offset successive embeddings in the Embed function. A tau of one uses adjacent observations. Default is 1

delta

Numeric (length = 1). The time between successive observations in the time series. Default is 1

order

Numeric (length = 1). The maximum order of the derivative to be estimated. For example, "order = 2" will return a matrix with three columns with the estimates of the observed scores and the first and second derivative for each row of the embedded matrix (i.e. the reorganization of the time series implemented via the Embed function)

na.derivative

Character (length = 1). How should missing data in the embeddings be handled? Available options (see Boker et al. (2018) for more details):

  • "none" (default) --- does nothing and leaves NAs in data

  • "kalman" --- uses Kalman smoothing (KalmanSmooth) with structural time series models (StructTS) to impute missing values. This approach models the underlying temporal dependencies (trend, seasonality, autocorrelation) to generate estimates for missing observations while preserving the original time scale. More computationally intensive than the other methods but typically provides the most accurate imputation by respecting the stochastic properties of the time series

  • "rowwise" --- adjusts time interval with respect to each embedding ensuring time intervals are adaptive to the missing data (tends to be more accurate than "none")

  • "skipover" --- "skips over" missing data and treats the non-missing points as continuous points in time (note that the time scale shifts to the "per mean time interval," which is different and larger than the original scale)

Author

Hudson Golino <hfg9s at virginia.edu>

References

GLLA implementation
Boker, S. M., Deboeck, P. R., Edler, C., & Keel, P. K. (2010) Generalized local linear approximation of derivatives from time series. In S.-M. Chow, E. Ferrer, & F. Hsieh (Eds.), The Notre Dame series on quantitative methodology. Statistical methods for modeling human dynamics: An interdisciplinary dialogue, (p. 161-178). Routledge/Taylor & Francis Group.

Deboeck, P. R., Montpetit, M. A., Bergeman, C. S., & Boker, S. M. (2009) Using derivative estimates to describe intraindividual variability at multiple time scales. Psychological Methods, 14(4), 367-386.

Filtering procedure
Savitzky, A., & Golay, M. J. (1964). Smoothing and differentiation of data by simplified least squares procedures. Analytical Chemistry, 36(8), 1627-1639.

Missing Data
Boker, S. M., Tiberio, S. S., & Moulder, R. G. (2018). Robustness of time delay embedding to sampling interval misspecification. In K. van Montfort, J. H. L. Oud, & M. C. Voelkle (Eds.), Continuous Time Modeling in the Behavioral and Related Sciences (pp. 239–258). Springer International Publishing.

Examples

Run this code
# A time series with 8 time points
tseries <- 49:56
deriv.tseries <- glla(tseries, n.embed = 4, tau = 1, delta = 1, order = 2)

Run the code above in your browser using DataLab