dwpt.sim: Simulate Seasonal Persistent Processes Using the DWPT

View source: R/dwpt_sim.R

dwpt.simR Documentation

Simulate Seasonal Persistent Processes Using the DWPT

Description

A seasonal persistent process may be characterized by a spectral density function with an asymptote occuring at a particular frequency in [0,\frac{1}{2}). It's time domain representation was first noted in passing by Hosking (1981). Although an exact time-domain approach to simulation is possible, this function utilizes the discrete wavelet packet transform (DWPT).

Usage

dwpt.sim(N, wf, delta, fG, M = 2, adaptive = TRUE, epsilon = 0.05)

Arguments

N

Length of time series to be generated.

wf

Character string for the wavelet filter.

delta

Long-memory parameter for the seasonal persistent process.

fG

Gegenbauer frequency.

M

Actual length of simulated time series.

adaptive

Logical; if TRUE the orthonormal basis used in the DWPT is adapted to the ideal spectrum, otherwise the orthonormal basis is performed to a maximum depth.

epsilon

Threshold for adaptive basis selection.

Details

Two subroutines are used, the first selects an adaptive orthonormal basis for the true spectral density function (SDF) while the second computes the bandpass variances associated with the chosen orthonormal basis and SDF. Finally, when M>N a uniform random variable is generated in order to select a random piece of the simulated time series. For more details see Whitcher (2001).

Value

Time series of length N.

Author(s)

B. Whitcher

References

Hosking, J. R. M. (1981) Fractional Differencing, Biometrika, 68, No. 1, 165-176.

Whitcher, B. (2001) Simulating Gaussian Stationary Time Series with Unbounded Spectra, Journal of Computational and Graphical Statistics, 10, No. 1, 112-134.

See Also

hosking.sim for an exact time-domain method and wave.filter for a list of available wavelet filters.

Examples


## Generate monthly time series with annual oscillation
## library(ts) is required in order to access acf()
x <- dwpt.sim(256, "mb16", .4, 1/12, M=4, epsilon=.001)
par(mfrow=c(2,1))
plot(x, type="l", xlab="Time")
acf(x, lag.max=128, ylim=c(-.6,1))
data(acvs.andel8)
lines(acvs.andel8$lag[1:128], acvs.andel8$acf[1:128], col=2)


waveslim documentation built on June 22, 2024, 9:43 a.m.