krige.mcgf_rs {mcgf} | R Documentation |
Obtain kriging forecasts for an mcgf_rs
object.
Description
Obtain kriging forecasts for an mcgf_rs
object.
Usage
## S3 method for class 'mcgf_rs'
krige(
x,
newdata = NULL,
newlabel = NULL,
soft = FALSE,
prob,
model = c("all", "base", "empirical"),
interval = FALSE,
level = 0.95,
...
)
Arguments
x |
An |
newdata |
A data.frame with the same column names as |
newlabel |
A vector of new regime labels. |
soft |
Logical; if true, soft forecasts (and bounds) are produced. |
prob |
Matrix with simplex rows. Number of columns must be the same as
unique labels in |
model |
Which model to use. One of |
interval |
Logical; if TRUE, prediction intervals are computed. |
level |
A numeric scalar between 0 and 1 giving the confidence level for
the intervals (if any) to be calculated. Used when |
... |
Additional arguments. Give |
Details
It produces simple kriging forecasts for a zero-mean mcgf. It supports
kriging for the empirical
model, the base
model, and the all
model
which is the general stationary model with the base and Lagrangian model
from x
.
When soft = TRUE
, prob
will be used to compute the soft forecasts
(weighted forecasts). The number of columns must match the number of unique
levels in x
. The column order must be the same as the order of regimes as
in levels(attr(x, "label", exact = TRUE))
. If not all regimes are seen in
newlabel
, then only relevant columns in prob
are used.
When interval = TRUE
, confidence interval for each forecasts and each
horizon is given. Note that it does not compute confidence regions.
Value
A list of kriging forecasts (and prediction intervals).
See Also
Other functions on fitting an mcgf_rs:
add_base.mcgf_rs()
,
add_lagr.mcgf_rs()
,
fit_base.mcgf_rs()
,
fit_lagr.mcgf_rs()
,
krige_new.mcgf_rs()
Examples
data(sim2)
sim2_mcgf <- mcgf_rs(sim2$data, dists = sim2$dists, label = sim2$label)
sim2_mcgf <- add_acfs(sim2_mcgf, lag_max = 5)
sim2_mcgf <- add_ccfs(sim2_mcgf, lag_max = 5)
# Fit a regime-switching separable model
fit_sep <- fit_base(
sim2_mcgf,
lag_ls = 5,
model_ls = "sep",
par_init_ls = list(list(
c = 0.00005,
gamma = 0.5,
a = 0.5,
alpha = 0.5
)),
par_fixed_ls = list(c(nugget = 0))
)
# Store the fitted separable models to 'sim2_mcgf'
sim2_mcgf <- add_base(sim2_mcgf, fit_base_ls = fit_sep)
# Calculate the simple kriging predictions and intervals
sim2_krige <- krige(sim2_mcgf, model = "base", interval = TRUE)
# Calculate RMSE for each location
rmse <- sqrt(colMeans((sim2_mcgf - sim2_krige$fit)^2, na.rm = TRUE))
rmse
# Calculate MAE for each location
mae <- colMeans(abs(sim2_mcgf - sim2_krige$fit), na.rm = TRUE)
mae
# Calculate POPI for each location
popi <- colMeans(
sim2_mcgf < sim2_krige$lower | sim2_mcgf > sim2_krige$upper,
na.rm = TRUE
)
popi