Choosing and Building Covariance Models
Source:vignettes/correlation-models.Rmd
correlation-models.RmdWhy this vignette?
The main modelling decision in mcgf is the covariance
structure. The package separates it into:
- a symmetric base model, and
- an optional Lagrangian component for directional space-time asymmetry.
The combined model is
This vignette shows how the available functions fit together.
Pure spatial and temporal kernels
cor_exp() implements the powered exponential
correlation.
c_exp <- cor_exp(
h,
c = 0.2,
gamma = 0.5,
nugget = 0.05,
is.dist = TRUE
)cor_cauchy() implements the Cauchy correlation and is
commonly used for the temporal component.
c_time <- cor_cauchy(
u,
a = 0.4,
alpha = 0.5
)Separable covariance
A separable model multiplies the spatial and temporal components:
par_s <- list(
nugget = 0.05,
c = 0.2,
gamma = 0.5
)
par_t <- list(
a = 0.4,
alpha = 0.5
)
c_sep <- cor_sep(
spatial = "exp",
temporal = "cauchy",
par_s = par_s,
par_t = par_t,
h = h,
u = u
)This is a good baseline because it is simple and easy to interpret.
Fully symmetric Gneiting model
cor_fs() introduces the space-time interaction parameter
beta (Gneiting 2002).
c_fs <- cor_fs(
nugget = 0.05,
c = 0.2,
gamma = 0.5,
a = 0.4,
alpha = 0.5,
beta = 0.5,
h = h,
u = u
)When beta = 0, this formulation reduces to the
corresponding separable model.
Use the fully symmetric model when the strength or scale of spatial dependence changes with temporal lag but you do not yet need directional asymmetry.
Lagrangian covariance functions
The Lagrangian functions use signed distances and a prevailing velocity .
Triangular
c_tri <- cor_lagr_tri(
v1 = 2,
v2 = 1,
k = 3,
h1 = h1,
h2 = h2,
u = u
)The triangular form has compact support: correlations become exactly zero outside its support.
Askey
c_askey <- cor_lagr_askey(
v1 = 2,
v2 = 1,
k = 3,
h1 = h1,
h2 = h2,
u = u
)The Askey form also has compact support but uses a smoother power.
Exponential
c_lagr_exp <- cor_lagr_exp(
v1 = 2,
v2 = 1,
k = 3,
h1 = h1,
h2 = h2,
u = u
)The exponential Lagrangian model decays continuously rather than being truncated at zero.
Combine the base and Lagrangian terms
cor_stat() constructs the general stationary model.
A practical model-selection sequence
For a new dataset, the following progression is usually easiest to diagnose:
- Fit a separable model (
model = "sep"). - Fit a fully symmetric model (
model = "fs"). - Compare their errors and fitted correlations.
- Inspect empirical lagged cross-correlations for directional asymmetry.
- If asymmetry is scientifically meaningful, fit a Lagrangian
component with
fit_lagr(). - For known atmospheric or operating regimes, move to
mcgf_rs()and allow selected parameters to vary by regime.
The Lagrangian regime-switching framework is used for short-term wind forecasting in Jia and Sezer (2025).
Parameter interpretation
| Parameter | Role |
|---|---|
nugget |
spatial nugget effect |
c |
spatial scale |
gamma |
spatial smoothness/power parameter |
a |
temporal scale |
alpha |
temporal smoothness/power parameter |
beta |
space-time interaction in the fully symmetric model |
v1, v2
|
components of prevailing velocity |
k |
Lagrangian scale |
lambda |
weight of the Lagrangian component |