Learn R Programming

qfa (version 4.0)

qspec.sar: Spline Autoregression (SAR) Estimator of Quantile Spectrum

Description

This function computes spline autoregression (SAR) estimate of quantile spectrum.

Usage

qspec.sar(
  y,
  y.qser = NULL,
  tau,
  d = 1,
  p = NULL,
  order.max = NULL,
  spar = NULL,
  method = c("GCV", "AIC", "BIC"),
  weighted = FALSE,
  freq = NULL,
  n.cores = 1,
  cl = NULL
)

Value

a list with the following elements:

spec

matrix or array of SAR quantile spectrum

freq

sequence of frequencies

fit

object of SAR model

qser

matrix or array of quantile series if y.qser = NULL

Arguments

y

vector or matrix of time series (if matrix, nrow(y) = length of time series)

y.qser

matrix or array of pre-calculated QSER (default = NULL: compute from y and tau); if y.qser is supplied, y can be left unspecified

tau

sequence of quantile levels in (0,1)

d

subsampling rate of quantile levels (default = 1)

p

order of SAR model (default = NULL: automatically selected by AIC)

order.max

maximum order for AIC if p = NULL (default = NULL: determined by stats::ar())

spar

penalty parameter alla smooth.spline (default = NULL: automatically selected)

method

criterion for penalty parameter selection: "GCV", "AIC" (default), or "BIC"

weighted

if TRUE, penalty function is weighted (default = FALSE)

freq

sequence of frequencies in [0,1) (default = NULL: all Fourier frequencies)

n.cores

number of cores for parallel computing of QDFT if y.qser = NULL (default = 1)

cl

pre-existing cluster for repeated parallel computing of QDFT (default = NULL)

Examples

Run this code
y1 <- stats::arima.sim(list(order=c(1,0,0), ar=0.5), n=64)
y2 <- stats::arima.sim(list(order=c(1,0,0), ar=-0.5), n=64)
tau <- seq(0.1,0.9,0.05)
n <- length(y1)
ff <- c(0:(n-1))/n
sel.f <- which(ff > 0 & ff < 0.5)
# compute from time series
y.sar <- qspec.sar(cbind(y1,y2),tau=tau,p=1)
qfa.plot(ff[sel.f],tau,Re(y.sar$spec[1,1,sel.f,]))
# compute from quantile series
y.qser <- qser(cbind(y1,y2),tau)
y.sar <- qspec.sar(y.qser=y.qser,tau=tau,p=1)
qfa.plot(ff[sel.f],tau,Re(y.sar$spec[1,1,sel.f,]))

Run the code above in your browser using DataLab