msst {ASSA}R Documentation

Multivariate Singular Spectrum Trendlines

Description

Computes trendlines for multivariate time series data using multivariate singular spectrum analysis.

Usage

msst(y, l = "automatic", m = "automatic", vertical = TRUE)

Arguments

y

mtsframe object containing raw data.

l

window length; the string "automatic" sets the default option
l = ceiling(y$n + 1) / y$D for vertical and ceiling(D * (y$n + 1) / (y$D + 1)).

m

number of leading eigentriples. An automatic criterion based on the cumulative periodogram of the residuals is provided by default by using the string "automatic".

vertical

logical; if TRUE the trajectory matrices are stacked vertically, otherwise the bind is horizontal.

Details

Multivariate singular spectrum analysis is used to decompose time series data (y) into principal components, and a cumulative periodogram-based criterion automatically learns about what elementary reconstructed components (erc) contribute to the signal; see de Carvalho and Martos (2018) for details. The trendline results from adding elementary reconstructed components selected by the cumulative periodogram of the residuals. The plot method depicts the trendlines, and the print method reports the trendlines along with the components selected by the cumulative periodogram-based criterion.

Value

trendline

mtsframe object with trendline estimation from targeted grouping based on a cumulative periodogram criterion (or according to the number of components specified in vector m).

residuals

mtsframe object with the residuals from targeted grouping based on a cumulative periodogram criterion (or according to the number of components specified in vector m).

erc

list with elementary reconstructed components.

eigen.val

vector with the singular values of the trajectory matrix.

l

window length.

selected.components

vector with number of components selected on each dimension.

selection.criteria

vector indicating if the null hypothesis of white noise is rejected along the dimensions (0: not rejected, 1: rejected).

rank

rank of the trajectory matrix.

Author(s)

Gabriel Martos and Miguel de Carvalho

References

de Carvalho, M. and Martos, G. (2018). Brexit: Tracking and disentangling the sentiment towards leaving the EU. Submitted.

See Also

See msstc for a similar routine yielding trendlines for multivariate time series of compositional data.

Examples

## SIMULATED DATA EXAMPLE
N <- 500
t <- seq(.01, 5, length = N)
Y <- cbind(t^3 - 9 * t^2 + 23 * t + rnorm(N, 0, 1), 
           10 * sin(3 * t) / t + rnorm(N, 0, 1))
y <- mtsframe(date = t, Y)
fit <- msst(y)
matplot(t, Y, col = "gray", ylim = c(-10, 31), 
        xlab = "time", pch = 16)
lines(t, t^3 - 9 * t^2 + 23 * t)
lines(t, fit$trendline$Y[,1], col = "red")
lines(t, 10 * sin(3 * t) / t, col = "black")
lines(t, fit$trendline$Y[,2], col = "red")

## BREXIT DATA EXAMPLE
## (de Carvalho and Martos, 2018; Fig. 1)
data(brexit)
attach(brexit)
y <- mtsframe(date, brexit[, 1:3] / 100)
fit <- msst(y)

## Window length and number of components automatically selected on
## each dimension:
fit$l
fit$selected.components 

## Plot trendlines (de Carvalho and Martos, 2018; Fig. 1)
plot(fit, options = list(type = "trendlines"), xlab="time",
     col=c("blue", "red", "black"), lwd = 2, lty = c(1, 2, 3))

## Plot elementary reconstructed components 
## (de Carvalho and Martos, 2018; Fig. 5)
plot(fit, options = list(type = "components", ncomp = 1:3))

## Plot cumulative periodograms (with 95% confidence bands)
par(mfrow = c(1, 3))
plot(fit, options = list(type = "cpgrams",
          series.names = c('Leave','Stay','Undecided')) )

## Scree-plot (with 95% confidence bands)
par(mfrow = c(1, 1))
plot(fit, options = list(type = "screeplots", ncomp = 1:10),
     type = "b", pch = 20, lwd = 2, main='Scree plot')

[Package ASSA version 1.0 Index]