Nothing
context("Fit, transform and simulation")
test_that("FitSSM, transformSSM and simulateSSM works",{
tol<-1e-4
model<-SSModel(log(cbind(front,rear))~ -1 + log(PetrolPrice) + log(kms)
+ SSMregression(~law,data=Seatbelts,index=1)
+ SSMcustom(Z=diag(2),T=diag(2),R=matrix(1,2,1),
Q=matrix(1),P1=diag(10,2))
+ SSMseasonal(period=12,sea.type='trigonometric'),
data=Seatbelts,H=matrix(NA,2,2))
model$y[c(6,205,50,50+192)] <- NA
updatefn <- function(pars, model,...){
diag(model$H[,,1])<-exp(0.5*pars[1:2])
model$H[1,2,1]<-model$H[2,1,1]<-tanh(pars[3])*prod(sqrt(exp(0.5*pars[1:2])))
model$R[28:29]<-exp(pars[4:5])
model
}
expect_warning(fit<-fitSSM(model=model,updatefn=updatefn,inits=c(-10,-10,0.7,-4,-4),method="BFGS"),NA)
expect_equal(fit$optim.out$p,c(-10.431,-9.460,0.732,-4.182,-4.218),tolerance=1e-4,check.attributes=FALSE)
expect_equal(fit$optim.out$value,-337.3011,tolerance=1e-6,check.attributes=FALSE)
expect_warning(mod <- transformSSM(fit$model, "augment"),NA)
set.seed(123)
expect_warning(out <- KFS(mod,smoothing="state"),NA)
expect_warning(sim <- simulateSSM(mod,"states",nsim=25,antithetics=TRUE),NA)
expect_equal(rowMeans(sim[192,,]), out$alpha[192,],tolerance=tol)
expect_equal(rowMeans(sim[1,,]), out$alpha[1,],tolerance=tol)
expect_equal(cov(t(sim[1,,])), out$V[,,1],tolerance=1e-2,check.attributes=FALSE)
expect_equal(var(sim[1,29,]), 1.102994,tolerance=tol,check.attributes=FALSE)
expect_equal(cov(t(sim[192,,])), out$V[,,192],tolerance=1e-2,check.attributes=FALSE)
expect_equal(var(sim[192,29,]), 1.219971, tolerance=tol,check.attributes=FALSE)
expect_warning(out <- KFS(fit$model,smoothing=c("state","disturbance")),NA)
expect_warning(sim <- simulateSSM(fit$model,"disturbances",nsim=25,antithetics=TRUE),NA)
expect_equal(rowMeans(sim[192,,]), c(out$eps[192,],0), check.attributes=FALSE)
expect_equal(rowMeans(sim[1,,]), c(out$eps[1,],out$eta[1,]), check.attributes=FALSE)
expect_equal(apply(sim[1,1:2,],1,var), c(0.0014407910, 0.0007057237),tolerance=tol,check.attributes=FALSE)
expect_equal(var(sim[1,3,]), 0.8124605,tolerance=tol,check.attributes=FALSE)
expect_equal(apply(sim[192,1:2,],1,var), c(0.0017375633,0.0006524667),tolerance=tol,check.attributes=FALSE)
expect_equal(var(sim[192,3,]), 0.6529779,tolerance=tol,check.attributes=FALSE)
})
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.