View source: R/conditional_acf.R
conditional_acf | R Documentation |
This function computes autocorrelation between $x_t$ and $y_t+k$ at $k = 1,2,...$ conditional on a set of time series $z_t$
conditional_acf(data, formula, lag_max, fit_mean, fit_var, df_correlation)
data |
a tibble containing all the time series including $ystar*ystar_t-k$ which are uniquely identified by the corresponding Timestamp. |
formula |
A GAM formula. See |
lag_max |
Maximum lag at which to calculate the conditional acf |
fit_mean |
Model object of class "conditional_moment" returned from
|
fit_var |
Model object of class "conditional_moment" returned from
|
df_correlation |
a vector specifying the degrees of freedom to be considered for each numerical predictor when fitting additive models for conditional auto-correlations. Each component of the vector should corresponds to each predictor specified in "z_numeric". |
Suppose $x_t$ and $y_t$ are conditionally normalised with respect
to $z_t$ using conditional_mean
and conditional_var
. Then
we can estimate the conditional cross-correlation between $x_t$ and $y_t$ at lag $k$, i.e. $r_k = E(x_ty_t+k|z_t)$
via generalised additive models (GAM). conditional_ccf
uses natural splines implemented
in splines
package to estimate the conditional cross-correlations between two
time series given a set of time series predictors. Users first need to
normalise $x_t$ and $y_t$ at lag $k$ using conditional_mean
and conditional_var
The function returns a list of objects of class
"glm" as described in glm
.
glm
old_ts <- NEON_PRIN_5min_cleaned |>
dplyr::select(
Timestamp, site, turbidity, level,
conductance, temperature
) |>
tidyr::pivot_wider(
names_from = site,
values_from = turbidity:temperature
)
fit_mean <- old_ts |>
conditional_mean(turbidity_downstream ~
s(level_upstream, k = 8) +
s(conductance_upstream, k = 8) +
s(temperature_upstream, k = 8))
fit_var <- old_ts |>
conditional_var(
turbidity_downstream ~
s(level_upstream, k = 7) +
s(conductance_upstream, k = 7) +
s(temperature_upstream, k = 7),
family = "Gamma",
fit_mean = fit_mean
)
fit_c_acf <- old_ts |>
tidyr::drop_na() |>
conditional_acf(
turbidity_upstream ~ splines::ns(level_upstream, df = 5) +
splines::ns(conductance_upstream, df = 5),
lag_max = 10, fit_mean = fit_mean, fit_var = fit_var,
df_correlation = c(5, 5)
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.