fracdiff.sim

0th

Percentile

Simulate fractional ARIMA Time Series

Generates simulated long-memory time series data from the fractional ARIMA(p,d,q) model. This is a test problem generator for fracdiff.

Note that the MA coefficients have inverted signs compared to other parametrizations, see the details in fracdiff.

Keywords
ts
Usage
fracdiff.sim(n, ar = NULL, ma = NULL, d, rand.gen = rnorm, innov = rand.gen(n+q, ...), n.start = NA, backComp = TRUE, allow.0.nstart = FALSE, start.innov = rand.gen(n.start, ...), ..., mu = 0)
Arguments
n
length of the time series.
ar
vector of autoregressive parameters; empty by default.
ma
vector of moving average parameters; empty by default.
d
fractional differencing parameter.
rand.gen
a function to generate the innovations; the default, rnorm generates white N(0,1) noise.
innov
an optional times series of innovations. If not provided, rand.gen() is used.
n.start
length of “burn-in” period. If NA, the default, the same value as in arima.sim is computed.
backComp
logical indicating if back compatibility with older versions of fracdiff.sim is desired. Otherwise, for d = 0, compatibility with R's arima.sim is achieved.
allow.0.nstart
logical indicating if n.start = 0 should be allowed even when $p + q > 0$. This not recommended unless for producing the same series as with older versions of fracdiff.sim.
start.innov
an optional vector of innovations to be used for the burn-in period. If supplied there must be at least n.start values.
...
additional arguments for rand.gen(). Most usefully, the standard deviation of the innovations generated by rnorm can be specified by sd.
mu
time series mean (added at the end).
Value

a list containing the following elements :
series
time series
ar, ma, d, mu, n.start
same as input

See Also

fracdiff, also for references; arima.sim

Aliases
  • fracdiff.sim
Examples
## Pretty (too) short to "see" the long memory
fracdiff.sim(100, ar = .2, ma = .4, d = .3)

## longer with "extreme" ar:
r <- fracdiff.sim(n=1500, ar=-0.9, d= 0.3)
plot(as.ts(r$series))

## Show that  MA  coefficients meaning is inverted
## compared to   stats :: arima :

AR <- 0.7
MA <- -0.5
n.st <- 2

AR <- c(0.7, -0.1)
MA <- c(-0.5, 0.4)
n <- 512 ; sd <- 0.1
n.st <- 10

set.seed(101)
Y1 <- arima.sim(list(ar = AR, ma = MA), n = n, n.start = n.st, sd = sd)
plot(Y1)

# For our fracdiff, reverse the MA sign:
set.seed(101)
Y2 <- fracdiff.sim(n = n, ar = AR, ma = - MA, d = 0,
                   n.start = n.st, sd = sd)$series
lines(Y2, col=adjustcolor("red", 0.5))
## .. no, you don't need glasses ;-)  Y2 is Y1 shifted slightly

##' rotate left by k (k < 0: rotate right)
rot <- function(x, k) {
  stopifnot(k == round(k))
  n <- length(x)
  if(k <- k %% n) x[c((k+1):n, 1:k)] else x
}
k <- n.st - 2
Y2.s <- rot(Y2, k)
head.matrix(cbind(Y1, Y2.s))
plot(Y1, Y2.s); i <- (n-k+1):n
text(Y1[i], Y2.s[i], i, adj = c(0,0)-.1, col=2)

## With  backComp = FALSE,  get *the same* as arima.sim():
set.seed(101)
Y2. <- fracdiff.sim(n = n, ar = AR, ma = - MA, d = 0,
                    n.start = n.st, sd = sd, backComp = FALSE)$series
stopifnot( all.equal( c(Y1), Y2., tol= 1e-15))
Documentation reproduced from package fracdiff, version 1.4-2, License: GPL (>= 2)

Community examples

Looks like there are no examples yet.