Learn R Programming

freqdom.fda (version 1.0.1)

fts.spectral.density: Functional spectral and cross-spectral density operator

Description

Estimates the spectral density operator and cross spectral density operator of functional time series.

Usage

fts.spectral.density(
  X,
  Y = X,
  freq = (-1000:1000/1000) * pi,
  q = ceiling((dim(X$coefs)[2])^{     0.33 }),
  weights = "Bartlett"
)

Arguments

X

an object of class fd containing \(T\) functional observations.

Y

an object of class fd containing \(T\) functional observations.

freq

a vector containing frequencies in \([-\pi, \pi]\) on which the spectral density should be evaluated. By default freq=(-1000:1000/1000)*pi.

q

window size for the kernel estimator, i.e. a positive integer. By default we choose q = max(1, floor((dim(X$coefs)[2])^{0.33})).

weights

kernel used in the spectral smoothing. For possible choices see spectral.density in package freqdom. By default the Bartlett kernel is chosen.

Value

Returns an object of class fts.timedom. The list is containing the following components:

  • operators \(\quad\) an array. Element [,,k] in the coefficient matrix of the spectral density matrix evaluated at the \(k\)-th frequency listed in freq.

  • lags \(\quad\) returns the lags vector from the arguments.

  • basisX \(\quad\) returns X$basis, an object of class basis.fd (see create.basis).

  • basisY \(\quad\) returns Y$basis, an object of class basis.fd (see create.basis)

Details

Let \(X_1(u),\ldots, X_T(u)\) and \(Y_1(u),\ldots, Y_T(u)\) be two samples of functional data. The cross-spectral density kernel between the two time series \((X_t(u))\) and \((Y_t(u))\) is defined as $$ f^{XY}_\omega(u,v)=\sum_{h\in\mathbf{Z}} \mathrm{Cov}(X_h(u),Y_0(v)) e^{-ih\omega}. $$ The function fts.spectral.density determines the empirical cross-spectral density kernel between the two time series. The estimator is of the form $$ \widehat{f}^{XY}_\omega(u,v)=\sum_{|h|\leq q} w(|k|/q)\widehat{c}^{XY}_h(u,v)e^{-ih\omega}, $$ with \(\widehat{c}^{XY}_h(u,v)\) defined in fts.cov.structure. The other paremeters are as in cov.structure.

Since \(X_t(u)=\boldsymbol{b}_1^\prime(u)\mathbf{x}_t\) and \(Y_t(u)=\mathbf{y}_t^\prime \boldsymbol{b}_2(u)\) we can write $$ \widehat{f}^{XY}_\omega(u,v)=\boldsymbol{b}_1^\prime(u)\widehat{\mathcal{F}}^{\mathbf{xy}}(\omega)\boldsymbol{b}_2(v), $$ where \(\widehat{\mathcal{F}}^{\mathbf{xy}}(\omega)\) is defined as for the function spectral.density for series of coefficient vectors \((\mathbf{x}_t\colon 1\leq t\leq T)\) and \((\mathbf{y}_t\colon 1\leq t\leq T)\).

See Also

The multivariate equivalent in the freqdom package: spectral.density

Examples

Run this code
# NOT RUN {
data(pm10)
X = center.fd(pm10)

# Compute the spectral density operator with Bartlett weights
SD = fts.spectral.density(X, freq = (-50:50/50) * pi, q = 2, weight="Bartlett")
fts.plot.operators(SD, freq = -2:2)

# Compute the spectral density operator with Tukey weights
SD = fts.spectral.density(X, freq = (-50:50/50) * pi, q = 2, weight="Tukey")
fts.plot.operators(SD, freq = -2:2)
# Note relatively small difference between the two plots

# Now, compute the spectral density operator with Tukey weights and larger q
SD = fts.spectral.density(X, freq = (-50:50/50) * pi, q = 5, weight="Tukey")
fts.plot.operators(SD, freq = -2:2)
# }

Run the code above in your browser using DataLab