Nothing
context("Testing midas_r methods")
set.seed(1001)
n<-250
trend<-c(1:n)
x<-rnorm(4*n)
z<-rnorm(12*n)
fn_x <- nealmon(p=c(1,-0.5),d=8)
fn_z <- nealmon(p=c(2,0.5,-0.1),d=17)
y<-2+0.1*trend+mls(x,0:7,4)%*%fn_x+mls(z,0:16,12)%*%fn_z+rnorm(n)
spd <- split_data(list(y = y, x = x, trend = trend, z = z), 1:200, 201:250 )
accuracy <- sqrt(.Machine$double.eps)
##Add test for preserving zoo and other attributes.
##Add test for printing out the estimation sample start and end.
test_that("midas_r preserves ts attribute",{
spd$indata$y <- ts(spd$indata$y, start = 1, frequency = 1)
a <- midas_r(y~trend+mls(x,0:7,4,nealmon)+mls(z,0:16,12,nealmon),start=list(x=c(1,-0.5),z=c(2,0.5,-0.1)), data = spd$indata)
fa <- forecast(a, newdata = spd$outdata)
expect_true(inherits(fa$mean,"ts"))
expect_true(identical(time(fa$mean),time(ts(201:250,start=201))))
spd$indata$y <- ts(spd$indata$y, start = 1950, frequency = 4)
a <- midas_r(y~trend+mls(x,0:7,4,nealmon)+mls(z,0:16,12,nealmon),start=list(x=c(1,-0.5),z=c(2,0.5,-0.1)), data = spd$indata)
fa <- forecast(a, newdata = spd$outdata)
expect_true(inherits(fa$mean,"ts"))
expect_true(identical(time(fa$mean),time(ts(201:250,start=c(2000,1), frequency = 4))))
spd$indata$y <- ts(spd$indata$y, start = 1990, frequency = 12)
a <- midas_r(y~trend+mls(x,0:7,4,nealmon)+mls(z,0:16,12,nealmon),start=list(x=c(1,-0.5),z=c(2,0.5,-0.1)), data = spd$indata)
fa <- forecast(a, newdata = spd$outdata)
expect_true(inherits(fa$mean,"ts"))
expect_lt(sum(abs(time(fa$mean)-time(ts(201:250,start=c(2006, 9), frequency = 12)))), accuracy)
})
test_that("midas_u preserves ts attribute",{
spd$indata$y <- ts(spd$indata$y, start=1, frequency =1)
a <- midas_u(y~trend+mls(x,0:7,4)+mls(z,0:16,12), data = spd$indata)
fa <- forecast(a, newdata = spd$outdata)
expect_true(inherits(fa$mean,"ts"))
expect_true(identical(time(fa$mean),time(ts(201:250,start=201))))
spd$indata$y <- ts(spd$indata$y, start = 1950, frequency = 4)
a <- midas_r(y~trend+mls(x,0:7,4,nealmon)+mls(z,0:16,12,nealmon),start=list(x=c(1,-0.5),z=c(2,0.5,-0.1)), data = spd$indata)
fa <- forecast(a, newdata = spd$outdata)
expect_true(inherits(fa$mean,"ts"))
expect_true(identical(time(fa$mean),time(ts(201:250,start=c(2000,1), frequency = 4))))
spd$indata$y <- ts(spd$indata$y, start = 1990, frequency = 12)
a <- midas_r(y~trend+mls(x,0:7,4,nealmon)+mls(z,0:16,12,nealmon),start=list(x=c(1,-0.5),z=c(2,0.5,-0.1)), data = spd$indata)
fa <- forecast(a, newdata = spd$outdata)
expect_true(inherits(fa$mean,"ts"))
expect_lt(sum(abs(time(fa$mean)-time(ts(201:250,start=c(2006, 9), frequency = 12)))), accuracy)
})
test_that("forecast for midas_r and midas_u is the same",{
a <- midas_r(y~trend+mls(x,0:7,4)+mls(z,0:16,12),start=NULL, data = spd$indata)
b <- midas_u(y~trend+mls(x,0:7,4)+mls(z,0:16,12),start=NULL, data = spd$indata)
fa <- forecast(a, newdata = spd$outdata)
fb <- forecast(b, newdata = spd$outdata)
expect_lt(sum(abs(fa$mean-fb$mean)), accuracy)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.