set.seed(2581) library("quantspec") ## help("quantspec") ## help("qRegEstimator") ## help("QRegEstimator") Y <- rnorm(8) bn <- qRegEstimator(Y, levels = c(0.25, 0.5, 0.75)) bn getFrequencies(bn) getParallel(bn) getValues(bn, levels = c(0.25, 0.5)) ## help("getValues-FreqRep") dn <- clippedFT(rnorm(32), levels = seq(0.05, 0.95, 0.05)) plot(dn, frequencies = 2 * pi * (0:64)/32, levels = c(0.25, 0.5)) def.par <- par(no.readonly = TRUE) # save default, for resetting... layout(matrix(c(1, 1, 2, 3), nrow = 1)) par(mar = c(5, 2, 2, 1)) library("zoo") plot(sp500, xlab = "time t", ylab = "", main = "") acf(coredata(sp500), xlab = "lag k", ylab = "", main = "") acf(coredata(sp500)^2, xlab = "lag k", ylab = "", main = "") par(def.par) #- reset to default CR <- quantilePG(sp500, levels.1 = c(0.05, 0.5, 0.95), type = "clipped", type.boot = "mbb", B = 250, l = 32) freq <- getFrequencies(CR) plot(CR, levels = c(0.05, 0.5, 0.95), frequencies = freq[freq > 0 & freq <= pi], ylab = expression({ I[list(n, R)]^{ list(tau[1], tau[2]) } }(omega))) plot(CR, levels = c(0.05, 0.5, 0.95), frequencies = freq[freq > 0 & freq <= pi/5], ylab = expression({ I[list(n, R)]^{ list(tau[1], tau[2]) } }(omega))) ## help("kernels") sPG <- smoothedPG(CR, weight = kernelWeight(W = W1, bw = 0.07)) plot(sPG, levels = c(0.05, 0.5, 0.95), type.scaling = "individual", frequencies = freq[freq > 0 & freq <= pi], ptw.CIs = 0.1, ylab = expression(hat(G)[list(n, R)](list(tau[1], tau[2], omega)))) plot(sPG, levels = c(0.05, 0.5, 0.95), type.scaling = "real-imaginary", ptw.CIs = 0.1, type.CIs = "boot.full", frequencies = freq[freq > 0 & freq <= pi], ylab = expression(hat(G)[list(n, R)](list(tau[1], tau[2], omega)))) ## help("plot-SmoothedPG") ## help("ts-models") csd <- quantileSD(N = 2^9, seed.init = 2581, type = "copula", ts = ts1, levels.1 = c(0.25, 0.5, 0.75), R = 100, quiet = TRUE) plot(csd, ylab = expression(f[list(q[tau[1]], q[tau[2]])](omega))) ################################################### ### The next step takes very long to finish!! ################################################### csd <- quantileSD(N = 2^12, seed.init = 2581, type = "copula", ts = ts1, levels.1 = c(0.25, 0.5, 0.75), R = 50000) save(csd, file = "csd-qar1.RData") ## help("increasePrecision-QuantileSD") load("csd-qar1.RData") plot(csd, frequencies = 2 * pi * (1:2^8)/2^9, ylab = expression(f[list(q[tau[1]], q[tau[2]])](omega))) set.seed(20581) sCR <- smoothedPG(ts1(512), levels.1 = c(0.25, 0.5, 0.75), weight = kernelWeight(W = W1, bw = 0.1)) plot(sCR, qsd = csd, ylab = bquote(paste(hat(G)[list(n, R)](list(tau[1], tau[2], omega)), " and ", f[list(q[tau[1]], q[tau[2]])](omega)))) set.seed(2581) ts <- ts1 N <- 128 R <- 5000 freq <- 2 * pi * (1:16)/32 levels <- c(0.25, 0.5, 0.75) J <- length(freq) K <- length(levels) sims <- array(0, dim = c(4, R, J, K, K)) weight <- kernelWeight(W = W1, bw = 0.3) for (i in 1:R) { Y <- ts(N) CR <- quantilePG(Y, levels.1 = levels, type = "clipped") LP <- quantilePG(Y, levels.1 = levels, type = "qr") sCR <- smoothedPG(CR, weight = weight) sLP <- smoothedPG(LP, weight = weight) sims[1, i, , , ] <- getValues(CR, frequencies = freq)[, , , 1] sims[2, i, , , ] <- getValues(LP, frequencies = freq)[, , , 1] sims[3, i, , , ] <- getValues(sCR, frequencies = freq)[, , , 1] sims[4, i, , , ] <- getValues(sLP, frequencies = freq)[, , , 1] } trueV <- getValues(csd, frequencies = freq) SqDev <- array(apply(sims, c(1, 2), function(x) { abs(x - trueV)^2 }), dim = c(J, K, K, 4, R)) rimse <- sqrt(apply(SqDev, c(2, 3, 4), mean)) rimse