context("Testing mls")
accuracy <- sqrt(.Machine$double.eps)
test_that("Embedding to low frequency works as expected", {
x <- 1:24
x1 <- matrix(2 * (1:12), ncol = 1)
x2 <- cbind(2 * (1:12), 2 * (1:12) - 1)
x3 <- rbind(c(NA, NA, NA), cbind(2 * (2:12), 2 * (2:12) - 1, 2 * (2:12) - 2))
x4 <- rbind(c(NA, NA), embed(x, 2))
expect_equivalent(fmls(x, 0, 2), x1)
expect_equivalent(fmls(x, 1, 2), x2)
expect_equivalent(fmls(x, 2, 2), x3)
expect_equivalent(fmls(x, 1, 1), x4)
})
test_that("mls and fmls give the same results", {
set.seed(123)
e <- rnorm(100)
a <- mls(e, 0:10, 10)
b <- fmls(e, 10, 10)
expect_lt(sum(abs(a - b), na.rm = TRUE), accuracy)
})
test_that("fmls and dmls give the same results", {
set.seed(123)
e <- rnorm(100)
a <- fmls(c(NA, diff(e)), 10, 10)
b <- dmls(e, 10, 10)
expect_lt(sum(abs(a - b), na.rm = TRUE), accuracy)
})
test_that("mlsd works for the ts objects", {
x <- ts(c(1:144), frequency = 12)
y <- ts(c(1:48), frequency = 4)
m1 <- mlsd(x, 0:7, y)
m2 <- mls(x, 0:7, 3)
expect_true(sum(abs(m1 - m2), na.rm = TRUE) < accuracy)
})
data(USunempr)
data(USrealgdp)
yy <- diff(log(USrealgdp))
xx <- diff(USunempr)
test_that("mlsd returns the matrix of apropriate dimensions", {
zz <- mlsd(xx, 0:24, yy)
expect_true(nrow(zz) == length(yy))
})
test_that("Windowing works with mlsd from the right", {
yy1 <- window(yy, end = 1980)
zz <- mlsd(xx, 0:24, yy1)
xx1 <- window(xx, end = c(1980, 12))
expect_true(zz[nrow(zz), 1] == xx1[length(xx1)])
})
test_that("Windowing works with mlsd from the left", {
yy1 <- window(yy, start = 1955, end = 1980)
zz <- mlsd(xx, 0:24, yy1)
xx1 <- window(xx, end = c(1980, 12))
expect_true(zz[nrow(zz), 1] == xx1[length(xx1)])
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.