test_that("sim_XXX is ok",
{
set.seed(1234)
m0 <- sim_mc(3, 2) # simulate 3x3 2-companion matrix
## this is an error (notice " cp", should be "cp"); TODO: catch and give informative message
## m1 <- sim_mc(3, 2, eigabs = c(0.25, 0.5), type.eigval = c("r", " cp"))
m1 <- sim_mc(3, 2, eigabs = c(0.25, 0.5), type.eigval = c("r", "cp"))
## compatibility, in older version eigval could also define type.eigval
## TODO: maybe remove the compatibility code from the sources and this test?
sim_mc(3, 2, eigabs = c(0.25, 0.5), eigval = c("r", "cp"))
m2 <- sim_mc(6, 4, eigsign = pi * c(1/2, 1, -1/2))
sim_mc(3, 2, value.type = "matrix")
sim_mc(3, 2, value.type = "list")
sim_mc(3, 2, eigval = c(0.25, 0.5, 0.75))
sim_pcfilter(2, 3)
sim_pcfilter(2, order = 3)
expect_error(sim_pcfilter(2))
## examples from mc_eigen.Rd
x <- sim_mc(6,4,mo.col=2)
x
y <- mCompanion(x,detect="gen")
y
z <- as.matrix(y)
xx <- mCompanion(x=z,mo.col=2)
mc_eigen(xx)
## examples from VAR2pcfilter.Rd
## create a pc filter
rfi <- sim_pcfilter(2,3)
rfi$pcfilter
## turn it into VAR form
flt <- new("MultiFilter", coef = rfi$pcfilter)
I1 <- mf_VSform(flt, form="I")
## from VAR to scalar form
flt2 <- VAR2pcfilter(I1$Phi, Sigma = I1$Phi0inv %*% t(I1$Phi0inv))
## confirm that we are back to the original
## (VAR2pcfilter doesn't drop redundant zeroes, so we do it manually)
all.equal(flt2[ , 1:3], rfi$pcfilter) ## TRUE
## more examples
flt[ , 1:3, lag0 = TRUE]
flt[ , 1:2, form = "vs"]
flt[ , 1:2, form = "v"]
mf_VSform(flt)
mf_VSform(flt, form = "I")
## examples from mf_VSform
## simulate a 3x3 2-companion matrix
## and turn it into a multi-filter
(m <- mCompanion("sim", dim=3, mo=2))
(flt <- new("MultiFilter", mc = m ))
mf_period(flt)
mf_poles(flt)
abs(mf_poles(flt))
mf_VSform(flt,form="U")
mf_VSform(flt,form="L")
mf_VSform(flt,form="I")
## simulate a pc filter (2 seasons)
## and turn it into a multi-filter object
(rfi <- sim_pcfilter(2, 3))
(flt <- new("MultiFilter", coef = rfi$pcfilter))
mf_period(flt)
mf_order(flt, form = "U")
mf_order(flt, i = 1, form = "U")
mf_order(flt, form = "L")
mf_order(flt, i = 1, form = "L")
mf_order(flt, i = 1)
mf_order(flt, i = "all")
mf_order(flt, i = "all", form = "L")
mf_poles(flt)
mf_poles(flt, blocks = TRUE)
abs(mf_poles(flt))
mcStable(flt)
mf_VSform(flt, form="U")
mf_VSform(flt, form="I")
mf_VSform(flt, form="L")
## indexing can be used to extract filter coefficients
flt[]
flt[1,]
## the rest are some checks of numerical performance.
rfi
rfi$mat==0
zapsmall(rfi$mat)
mCompanion(zapsmall(rfi$mat))
unclass(mCompanion(zapsmall(rfi$mat)))
unclass(mCompanion(rfi$mat))
flt1 <- new("MultiFilter", mc = mCompanion(zapsmall(rfi$mat)))
flt2 <- flt
flt1[]
flt2[]
flt1[] - flt2[]
rfi$pcfilter - rfi$mat[1:2,]
mf_poles(flt1)
abs(mf_poles(flt1))
## more examples
mf_order(flt)
mf_order(flt, form = "L")
mf_VSform(flt, form="U", perm = 2:1)
## TODO: this gives error, looks like a bug:
## VAR2pcfilter(I1$Phi, Sigma = I1$Phi0inv %*% t(I1$Phi0inv), perm = 2:1)
VAR2pcfilter(I1$Phi, Sigma = I1$Phi0inv %*% t(I1$Phi0inv), what = "coef.and.var")
VAR2pcfilter(I1$Phi, Sigma = I1$Phi0inv %*% t(I1$Phi0inv), what = "")
expect_error(VAR2pcfilter(I1$Phi), "One of Sigma, Phi0, Phi0inv must be specified")
expect_error(VAR2pcfilter(I1$Phi, Phi0 = I1$Phi0), "argument.*is missing, with no default")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.