set.seed(99999)
library(SSsimple)
tau <- 100
n.all <- 35
Hs.all <- matrix(rnorm(n.all), nrow=n.all)
Ht <- matrix(rnorm(tau*2), nrow=tau)
Hst.ls.all <- list()
for(i in 1:tau) { Hst.ls.all[[i]] <- matrix(rnorm(n.all*2), nrow=n.all) }
Hst.combined <- list()
for(i in 1:tau) {
Hst.combined[[i]] <- cbind( Hs.all, matrix(Ht[i, ], nrow=n.all, ncol=ncol(Ht),
byrow=TRUE), Hst.ls.all[[i]] )
}
locs.all <- cbind(runif(n.all, -1, 1), runif(n.all, -1, 1))
D.mx.all <- distance(locs.all, locs.all, FALSE)
R.all <- exp(-2*D.mx.all) + diag(0.01, n.all)
######## use SSsimple to simulate
sssim.obj <- SS.sim.tv( 0.999, Hst.combined, 0.01, R.all, tau )
n <- n.all
locs <- locs.all
Z.all <- sssim.obj$Z
Z <- Z.all
Hst.ls <- Hst.ls.all
Hs <- Hs.all
test.rng <- 20:tau
################ WIDALS, true cross-validation
rm.ndx <- create.rm.ndx.ls(n, 10)
cv <- 2
lags <- c(0)
b.lag <- 0
GP <- c(1/8, 1/12, 5, 0, 1)
GP.mx <- matrix(GP, ncol=length(GP))
Zwid <- widals.snow(j=1, rm.ndx, Z, Hs, Ht, Hst.ls, locs, lags, b.lag, cv = cv,
geodesic = FALSE, wrap.around = NULL, GP.mx, stnd.d = FALSE, ltco = -16)
errs.sq <- (Z - Zwid)^2
sqrt( mean(errs.sq[test.rng, ]) )
################ WIDALS, pseudo cross-validation
rm.ndx <- I(1:n)
cv <- -2
lags <- c(0)
b.lag <- -1
GP <- c(1/8, 1/12, 5, 0, 1)
GP.mx <- matrix(GP, ncol=length(GP))
Zwid <- widals.snow(j=1, rm.ndx, Z, Hs, Ht, Hst.ls, locs, lags, b.lag, cv = cv,
geodesic = FALSE, wrap.around = NULL, GP.mx, stnd.d = FALSE, ltco = -16)
errs.sq <- (Z - Zwid)^2
sqrt( mean(errs.sq[test.rng, ]) )
Run the code above in your browser using DataLab