H.als.b {widals} | R Documentation |
Adaptive Least Squares
Description
Adaptive Least Squares expecially for large spacio-temporal data
Usage
H.als.b(Z, Hs, Ht, Hst.ls, rho, reg, b.lag = -1, Hs0 = NULL, Ht0 = NULL, Hst0.ls = NULL)
Arguments
Z |
Space-time data. A |
Hs |
Spacial covariates (of supporting sites). An |
Ht |
Temporal covariates (of supporting sites). A |
Hst.ls |
Space-time covariates (of supporting sites). A list of length |
rho |
ALS signal-to-noise ratio (SNR). A non-negative scalar. |
reg |
ALS regularizer. A non-negative scalar. |
b.lag |
ALS lag. A scalar integer, typically -1 (a-prior), or 0 (a-posteriori). |
Hs0 |
Spacial covariates (of interpolation sites). An |
Ht0 |
Temporal covariates (of interpolation sites). A |
Hst0.ls |
Space-time covariates (of interpolation sites). A list of length |
Value
A named list.
Z.hat |
A |
B |
A |
Z0.hat |
A |
inv.LHH |
A |
ALS.g |
The ALS gain at time |
Examples
set.seed(99999)
library(SSsimple)
tau <- 70
n.all <- 14
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]] )
}
######## use SSsimple to simulate
sssim.obj <- SS.sim.tv( 0.999, Hst.combined, 0.01, diag(1, n.all), tau )
ndx.support <- 1:10
ndx.interp <- 11:14
Z.all <- sssim.obj$Z
Z <- Z.all[ , ndx.support]
Z0 <- Z.all[ , ndx.interp]
Hst.ls <- subsetsites.Hst.ls(Hst.ls.all, ndx.support)
Hst0.ls <- subsetsites.Hst.ls(Hst.ls.all, ndx.interp)
Hs <- Hs.all[ ndx.support, , drop=FALSE]
Hs0 <- Hs.all[ ndx.interp, , drop=FALSE]
xrho <- 1/10
xreg <- 1/10
xALS <- H.als.b(Z=Z, Hs=Hs, Ht=Ht, Hst.ls=Hst.ls, rho=xrho, reg=xreg, b.lag=-1,
Hs0=Hs0, Ht0=Ht, Hst0.ls=Hst0.ls)
test.rng <- 20:tau
errs.sq <- (Z0 - xALS$Z0.hat)^2
sqrt( mean(errs.sq[test.rng, ]) )
################ calculate the 'effective standard errors' (actually 'effective prediction
################ errors') of the ALS partial slopes
rmse <- sqrt(mean((Z[test.rng, ] - xALS$Z.hat[test.rng, ])^2))
rmse
als.se <- rmse * sqrt(xALS$ALS.g) * sqrt(diag(xALS$inv.LHH))
cbind(xALS$B[tau, ], als.se, xALS$B[tau, ]/als.se)