Class PeriodicBJFilter
PeriodicBJFilter-class.Rd
A class for filters following the Box-Jenkins sign convention
Objects from the Class
Objects can be created by calls of the form new("PeriodicBJFilter", coef, order, ...)
.
Extends
Class "PeriodicMonicFilterSpec"
, directly.
Class "VirtualBJFilter"
, directly.
Class "VirtualMonicFilterSpec"
, by class "PeriodicMonicFilterSpec", distance 2.
Class "VirtualMonicFilter"
, by class "VirtualBJFilter", distance 2.
Methods
- filterCoef
signature(object = "PeriodicBJFilter", convention = "character")
: ...- coerce
signature(from = "matrix", to = "PeriodicBJFilter")
: ...- coerce
signature(from = "PeriodicBJFilter", to = "PeriodicSPFilter")
: ...- coerce
signature(from = "PeriodicSPFilter", to = "PeriodicBJFilter")
: ...- filterPoly
signature(object = "PeriodicBJFilter")
: ...- filterPolyCoef
signature(object = "PeriodicBJFilter")
: ...- show
signature(object = "PeriodicBJFilter")
: ...
See also
filterCoef
for more details on the generics
Examples
## a toy filter of order c(3, 3, 3, 3) and 4 seasons
co <- matrix(c(1, 1, 0,
2, 2, 2,
3, 0, 0,
4, 4, 4), nrow = 4, ncol = 3)
## these are equivalent:
bj1 <- new("PeriodicBJFilter", coef = co)
bj1b <- new("PeriodicBJFilter", coef = co, order = 3)
bj1c <- new("PeriodicBJFilter", coef = co, order = c(3, 3, 3, 3))
identical(bj1b, bj1c) # TRUE
#> [1] TRUE
identical(bj1, bj1b) # FALSE but only because classbj1@order is "integer"
#> [1] FALSE
# \dontshow{
## redundant wrap with show() below since pkgdown::build_site()
## throws errors without that.
# }
## a more refined spec. for the order:
show( new("PeriodicBJFilter", coef = co, order = c(2, 3, 1, 3)) )
#> An object of class "PeriodicBJFilter"
#> order: 2 3 1 3
#> Coefficients:
#> [,1] [,2] [,3]
#> [1,] 1 2 0
#> [2,] 1 2 4
#> [3,] 0 3 4
#> [4,] 2 0 4
#> [,1] [,2] [,3]
#> [1,] 1 2 0
#> [2,] 1 2 4
#> [3,] 0 3 4
#> [4,] 2 0 4
## as()
show( as(co, "PeriodicBJFilter") )
#> An object of class "PeriodicBJFilter"
#> order: 3 3 3 3
#> Coefficients:
#> [,1] [,2] [,3]
#> [1,] 1 2 0
#> [2,] 1 2 4
#> [3,] 0 3 4
#> [4,] 2 0 4
#> [,1] [,2] [,3]
#> [1,] 1 2 0
#> [2,] 1 2 4
#> [3,] 0 3 4
#> [4,] 2 0 4
show( as(co, "PeriodicSPFilter") )
#> An object of class "PeriodicSPFilter"
#> order: 3 3 3 3
#> Coefficients:
#> [,1] [,2] [,3]
#> [1,] 1 2 0
#> [2,] 1 2 4
#> [3,] 0 3 4
#> [4,] 2 0 4
#> [,1] [,2] [,3]
#> [1,] 1 2 0
#> [2,] 1 2 4
#> [3,] 0 3 4
#> [4,] 2 0 4
## change the sign convention:
sp1 <- as(bj1, "PeriodicSPFilter")
## the two parameterisations have different signs:
bj1
#> An object of class "PeriodicBJFilter"
#> order: 3 3 3 3
#> Coefficients:
#> [,1] [,2] [,3]
#> [1,] 1 2 0
#> [2,] 1 2 4
#> [3,] 0 3 4
#> [4,] 2 0 4
sp1
#> An object of class "PeriodicSPFilter"
#> order: 3 3 3 3
#> Coefficients:
#> [,1] [,2] [,3]
#> [1,] -1 -2 0
#> [2,] -1 -2 -4
#> [3,] 0 -3 -4
#> [4,] -2 0 -4
## nevertheless, bj1 and sp1 represent the same filter
filterPoly(bj1)
#> List of polynomials:
#> [[1]]
#> 1 - x - 2*x^2
#>
#> [[2]]
#> 1 - x - 2*x^2 - 4*x^3
#>
#> [[3]]
#> 1 - 3*x^2 - 4*x^3
#>
#> [[4]]
#> 1 - 2*x - 4*x^3
#>
filterPoly(sp1)
#> List of polynomials:
#> [[1]]
#> 1 - x - 2*x^2
#>
#> [[2]]
#> 1 - x - 2*x^2 - 4*x^3
#>
#> [[3]]
#> 1 - 3*x^2 - 4*x^3
#>
#> [[4]]
#> 1 - 2*x - 4*x^3
#>
identical(filterPoly(bj1), filterPoly(sp1)) # TRUE
#> [1] FALSE
filterPolyCoef(bj1)
#> [,1] [,2] [,3] [,4]
#> [1,] 1 -1 -2 0
#> [2,] 1 -1 -2 -4
#> [3,] 1 0 -3 -4
#> [4,] 1 -2 0 -4
filterPolyCoef(sp1)
#> [,1] [,2] [,3] [,4]
#> [1,] 1 -1 -2 0
#> [2,] 1 -1 -2 -4
#> [3,] 1 0 -3 -4
#> [4,] 1 -2 0 -4
identical(filterPolyCoef(bj1), filterPolyCoef(sp1)) # TRUE
#> [1] TRUE
filterOrder(bj1)
#> [1] 3 3 3 3
nSeasons(bj1)
#> [1] 4