Estimate periods from (set of) eigenvectors

Share:

Description

Function to estimate the parameters (frequencies and rates) given a set of SSA eigenvectors.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
## S3 method for class '1d.ssa'
parestimate(x, groups, method = c("pairs", "esprit-ls", "esprit-tls"),
            subspace = c("column", "row"),
            normalize.roots = NULL,
            ..., drop = TRUE)
## S3 method for class 'toeplitz.ssa'
parestimate(x, groups, method = c("pairs", "esprit-ls", "esprit-tls"),
            subspace = c("column", "row"),
            normalize.roots = NULL,
            ..., drop = TRUE)
## S3 method for class 'mssa'
parestimate(x, groups, method = c("pairs", "esprit-ls", "esprit-tls"),
            subspace = c("column", "row"),
            normalize.roots = NULL,
            ..., drop = TRUE)
## S3 method for class '2d.ssa'
parestimate(x, groups,
            method = c("esprit-diag-ls", "esprit-diag-tls",
                       "esprit-memp-ls", "esprit-memp-tls"),
            subspace = c("column", "row"),
            normalize.roots = NULL,
            ...,
            beta = 8,
            drop = TRUE)

Arguments

x

SSA object

groups

list of indices of eigenvectors to estimate from

...

further arguments passed to 'decompose' routine, if necessary

drop

logical, if 'TRUE' then the result is coerced to lowest dimension, when possible (length of 'groups' is one)

method

estimation method. For 1dSSA: 'pairs' for rough estimation based on pair of eigenvectors, 'esprit-ls' for least-squares 1D-ESPRIT and 'esprit-tls' for total-least-squares 1D-ESPRIT. For 2dSSA: 'esprit-diag-ls' or 'esprit-diag-tls' for ‘Two-Dimensional ESPRIT Method’ (2D-ESPRIT diagonalization) and 'esprit-memp-ls' or ‘esprit-memp-tls’ for ‘MEMP with an improved pairing step’. Suffix '-ls' or '-tls' means approximate matrix equation solve method, as in 1D-ESPRIT case.

subspace

which subspace will be used for parameter estimation

normalize.roots

logical vector or 'NULL', force signal roots to lie on unit circle. 'NULL' means automatic selection: normalize iff circular topology OR Toeplitz SSA used

beta

In 2D-ESPRIT, coefficient in convex linear combination of shifted matrices.

Details

The time series is assumed to satisfy the model

x_n = ∑_k{C_kμ_k^n}

for complex μ_k or, alternatively,

x_n = ∑_k{A_k ρ_k^n \sin(2πω_k n + φ_k)}.

The return value are the estimated moduli and arguments of complex μ_k, more precisely, ρ_k ('moduli') and T_k = 1/ω_k ('periods').

For images, the model

x_{ij}=∑_k C_k λ_k^i μ_k^j

is considered.

Also ‘print’ and ‘plot’ methods are implemented for classes ‘fdimpars.1d’ and ‘fdimpars.2d’.

Value

For 1D-SSA (and Toeplitz), a list of objects of S3-class ‘fdimpars.1d’. Each object is a list with 5 components:

roots

complex roots of minimal LRR characteristic polynomial

periods

periods of dumped sinusoids

frequencies

frequencies of dumped sinusoids

moduli

moduli of roots

rates

rates of exponential trend (rates == log(moduli))

For 'method' = 'pairs' all moduli are set equal to 1 and all rates equal to 0.

For 2D-SSA, a list of objects of S3-class ‘fdimpars.2d’. Each object is unnamed list of two ‘fdimpars.1d’ objects, each for corresponding spatial coordinate.

In all cases 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.

If 'drop = TRUE' and length of 'groups' is one, then corresponding list of estimated parameters is returned.

References

Golyandina, N., Zhigljavsky, A. (2013): Singular Spectrum Analysis for time series. Springer Briefs in Statistics. Springer.

Roy, R., Kailath, T., (1989): ESPRIT: estimation of signal parameters via rotational invariance techniques. IEEE Trans. Acoust. 37, 984–995.

Rouquette, S., Najim, M. (2001): Estimation of frequencies and damping factors by two- dimensional esprit type methods. IEEE Transactions on Signal Processing 49(1), 237–245.

Wang, Y., Chan, J-W., Liu, Zh. (2005): Comments on “estimation of frequencies and damping factors by two-dimensional esprit type methods”. IEEE Transactions on Signal Processing 53(8), 3348–3349.

See Also

Rssa for an overview of the package, as well as, ssa, lrr,

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# Decompose 'co2' series with default parameters
s <- ssa(co2, neig = 20)
# Estimate the periods from 2nd and 3rd eigenvectors using default
# 'pairs' method
print(parestimate(s, groups = list(c(2, 3))))
# Estimate the peroids from 2nd, 3rd, 5th and 6th eigenvectors using ESPRIT
pe <- parestimate(s, groups = list(c(2, 3, 5, 6)), method = "esprit-ls")
print(pe)
plot(pe)


# Artificial image for 2D SSA
mx <- outer(1:50, 1:50,
            function(i, j) sin(2*pi * i/17) * cos(2*pi * j/7) + exp(i/25 - j/20)) +
      rnorm(50^2, sd = 0.1)
# Decompose 'mx' with default parameters
s <- ssa(mx, kind = "2d-ssa")
# Estimate parameters
pe <- parestimate(s, groups = list(1:5))
print(pe)
plot(pe, col = c("green", "red", "blue"))

# Real example: Mars photo
data(Mars)
# Decompose only Mars image (without backgroud)
s <- ssa(Mars, mask = Mars != 0, wmask = circle(50), kind = "2d-ssa")
# Reconstruct and plot texture pattern
plot(reconstruct(s, groups = list(c(13,14, 17, 18))))
# Estimate pattern parameters
pe <- parestimate(s, groups = list(c(13,14, 17, 18)))
print(pe)
plot(pe, col = c("green", "red", "blue", "black"))

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.