# Perform vector SSA forecasting of the series

### Description

Perform vector SSA forecasting of the series.

### Usage

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | ```
## S3 method for class '1d.ssa'
vforecast(x, groups, len = 1, only.new = TRUE, ...,
drop = TRUE, drop.attributes = FALSE)
## S3 method for class 'toeplitz.ssa'
vforecast(x, groups, len = 1, only.new = TRUE, ...,
drop = TRUE, drop.attributes = FALSE)
## S3 method for class 'toeplitz.ssa'
vforecast(x, groups, len = 1, only.new = TRUE, ...,
drop = TRUE, drop.attributes = FALSE)
## S3 method for class 'mssa'
vforecast(x, groups, len = 1,
direction = c("row", "column"),
only.new = TRUE, ...,
drop = TRUE, drop.attributes = FALSE)
## S3 method for class 'cssa'
vforecast(x, groups, len = 1, only.new = TRUE, ...,
drop = TRUE, drop.attributes = FALSE)
## S3 method for class 'pssa.1d.ssa'
vforecast(x, groups, len = 1, only.new = TRUE, ...,
drop = TRUE, drop.attributes = FALSE)
``` |

### Arguments

`x` |
SSA object holding the decomposition |

`groups` |
list, the grouping of eigentriples to be used in the forecast |

`len` |
integer, the desired length of the forecasted series |

`direction` |
direction of forecast in multichannel SSA case, "column" stands for so-called L-forecast and "row" stands for K-forecast |

`only.new` |
logical, if 'TRUE' then only forecasted values are returned, whole series otherwise |

`...` |
additional arguments passed to |

`drop` |
logical, if 'TRUE' then the result is coerced to series itself, when possible (length of 'groups' is one) |

`drop.attributes` |
logical, if 'TRUE' then the attributes of the input series are not copied to the reconstructed ones. |

### Details

The routines applies the vectors SSA forecasting algorithm to
produce the new series which is expected to 'continue' the current
series on the basis of the decomposition given. Vector forecast
differs from recurrent forecast in such way that it continues the set
of vectors in the subspace spanning the chosen eigenvectors (the same
formula as described in `lrr`

is used for constructing of
the last components of the new vectors) and then derive the series out
of this extended set of vectors.

For multichannel SSA, forecast uses the formulae from (Golyandina et al, 2015).

### Value

List of forecasted objects. Elements of the list have the same names
as elements of `groups`

. If group is unnamed, corresponding
component gets name ‘Fn’, where ‘n’ is its index in `groups`

list.

Or, the forecasted object itself, if length of groups is one and 'drop = TRUE'.

### References

Golyandina, N., Nekrutkin, V. and Zhigljavsky, A. (2001): *Analysis of
Time Series Structure: SSA and related techniques.* Chapman and
Hall/CRC. ISBN 1584881941

Golyandina, N., Korobeynikov, A., Shlemov, A. and Usevich, K. (2015):
*Multivariate and 2D Extensions of Singular Spectrum Analysis
with the Rssa Package*. Journal of Statistical Software, Vol. 67, Issue 2.
https://www.jstatsoft.org/article/view/v067i02

Golyandina, N. and Stepanov, D. (2005): *SSA-based approaches to
analysis and forecast of multidimensional time series*. In
Proceedings of the 5th St.Petersburg Workshop on Simulation, June
26-July 2, 2005, St. Petersburg State University, St. Petersburg,
293–298. http://www.gistatgroup.com/gus/mssa2.pdf

### See Also

`Rssa`

for an overview of the package, as well as,
`rforecast`

,
`bforecast`

,
`forecast`

.

### Examples

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | ```
# Decompose 'co2' series with default parameters
s <- ssa(co2)
# Produce 24 forecasted values of the series using different sets of eigentriples
# as a base space for the forecast.
vfor <- vforecast(s, groups = list(c(1,4), 1:4), len = 24, only.new=FALSE)
matplot(data.frame(c(co2, rep(NA, 24)), vfor), type="l")
# Forecast `co2' trend by SSA with projections
s <- ssa(co2, column.projector = 2, row.projector = 2)
len <- 100
vfor <- vforecast(s, groups = list(trend = seq_len(nspecial(s))), len = len, only.new = FALSE)
matplot(data.frame(c(co2, rep(NA, len)), vfor), type = "l")
# Forecast finite rank series with polynomial component by SSA with projections
v <- 5000 * sin(2*pi / 13 * (1:100)) + (1:100)^2 + 10000
s <- ssa(v, row.projector = 2, column.projector = 2)
plot(vforecast(s, groups = list(all = 1:6), len = 100, only.new = FALSE), type = "l")
``` |