misst {ASSA} | R Documentation |
Multivariate Interval Singular Spectrum Trendlines
Description
Computes a trendline for multivariate interval data using singular spectrum analysis.
Usage
misst(y, l= 'automatic' , m = 'automatic', vertical = TRUE)
Arguments
y |
object of class |
l |
window length; the string |
m |
number of leading eigentriples. An automatic
criterion based on the cumulative periodogram of the residuals is
provided by default by using the string |
vertical |
logical; if |
Details
Multivariate singular spectrum analysis is used to decompose interval 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 |
mitsframe object with interval trendline estimation from targeted grouping based on a cumulative periodogram criterion (or according to the number of components specified in vector |
l |
window length. |
m |
vector with number of components selected on each dimension. |
vertical |
flag indicating if the trajectory matrices where stacked vertically. |
residuals |
mitsframe object with the interval residuals from targeted grouping based on a cumulative periodogram criterion (or according to the number of components specified in vector |
svd |
the Singular Value Decomposition of the trajectory matrix. |
erc |
list with elementary reconstructed components. |
observations |
mitsframe object with the raw data |
References
de Carvalho, M. and Martos, G. (2020). Modeling Interval Trendlines: Symbolic Singular Spectrum Analysis for Interval Time Series. Submitted (available on arXiv).
See Also
See msst
for a similar routine yielding trendlines for
standard multivariate time series of data.
Examples
muX.a = function(t){ 8 + t + sin(pi*t) } ; muX.b = function(t){ muX.a(t) + 2 }
muY.a = function(t){sqrt(t) + cos(pi*t/2) } ; muY.b = function(t){ 2*muY.a(t) + 2 }
N = 100; t=seq(0.1,2*pi,length = N);
set.seed(1)
e.x = rnorm(100); e.y = rnorm(100);
a.X = muX.a(t) + e.x; b.X = a.X + 2
a.Y = muY.a(t) + e.y ; b.Y = 2*a.Y + 2
A <- cbind(a.X, a.Y); B <- cbind(b.X, b.Y)
y <- mitsframe(dates=t, A=A, B = B)
fit <- misst(y)
fit$l;
fit$m;
fit$vertical
# Estimated trendlines:
head(fit$trendlines$A,5)
head(fit$trendlines$B,5)
## Estimated interval trendlines
plot(fit)
## Scree-plot
plot(fit, options = list(type = "screeplots"))
## Per
plot(fit, options = list(type = "cpgrams"))
## ERC
plot(fit, options=list(type='components',ncomp=1:3))
##################################
### Forecasting with misst ###
##################################
pred = predict(fit, p = 5)
pred$forecasts # Forecast organized in an array.
# End