transfer_entropy: Function to estimate Shannon and Renyi transfer entropy...

View source: R/transfer_entropy.R

transfer_entropyR Documentation

Function to estimate Shannon and Renyi transfer entropy between two time series x and y.

Description

Function to estimate Shannon and Renyi transfer entropy between two time series x and y.

Usage

transfer_entropy(
  x,
  y,
  lx = 1,
  ly = 1,
  q = 0.1,
  entropy = "Shannon",
  shuffles = 100,
  type = "quantiles",
  quantiles = c(5, 95),
  bins = NULL,
  limits = NULL,
  nboot = 300,
  burn = 50,
  quiet = NULL,
  seed = NULL,
  na.rm = TRUE
)

Arguments

x

a vector of numeric values, ordered by time. Also allowed are xts, zoo, or ts objects.

y

a vector of numeric values, ordered by time. Also allowed are xts, zoo, or ts objects.

lx

Markov order of x, i.e. the number of lagged values affecting the current value of x. Default is lx = 1.

ly

Markov order of y, i.e. the number of lagged values affecting the current value of y. Default is ly = 1.

q

a weighting parameter used to estimate Renyi transfer entropy, parameter is between 0 and 1. For q = 1, Renyi transfer entropy converges to Shannon transfer entropy. Default is q = 0.1.

entropy

specifies the transfer entropy measure that is estimated, either 'Shannon' or 'Renyi'. The first character can be used to specify the type of transfer entropy as well. Default is entropy = 'Shannon'.

shuffles

the number of shuffles used to calculate the effective transfer entropy. Default is shuffles = 100.

type

specifies the type of discretization applied to the observed time series:'quantiles', 'bins' or 'limits'. Default is type = 'quantiles'.

quantiles

specifies the quantiles of the empirical distribution of the respective time series used for discretization. Default is quantiles = c(5,95).

bins

specifies the number of bins with equal width used for discretization. Default is bins = NULL.

limits

specifies the limits on values used for discretization. Default is limits = NULL.

nboot

the number of bootstrap replications for each direction of the estimated transfer entropy. Default is nboot = 300.

burn

the number of observations that are dropped from the beginning of the bootstrapped Markov chain. Default is burn = 50.

quiet

if FALSE (default), the function gives feedback.

seed

a seed that seeds the PRNG (will internally just call set.seed), default is seed = NULL.

na.rm

if missing values should be removed (will remove the values at the same point in the other series as well). Default is TRUE.

Value

an object of class transfer_entropy, containing the transfer entropy estimates in both directions, the effective transfer entropy estimates in both directions, standard errors and p-values based on bootstrap replications of the Markov chains under the null hypothesis of statistical independence, an indication of statistical significance, and quantiles of the bootstrap samples (if nboot > 0).

See Also

coef, print.transfer_entropy

Examples

# construct two time-series
set.seed(1234567890)
n <- 500
x <- rep(0, n + 1)
y <- rep(0, n + 1)

for (i in seq(n)) {
  x[i + 1] <- 0.2 * x[i] + rnorm(1, 0, 2)
  y[i + 1] <- x[i] + rnorm(1, 0, 2)
}

x <- x[-1]
y <- y[-1]

# Calculate Shannon's Transfer Entropy
te_result <- transfer_entropy(x, y, nboot = 100)
te_result

summary(te_result)


  # Parallel Processing using the future-package
  library(future)
  plan(multisession)

  te_result2 <- transfer_entropy(x, y, nboot = 100)
  te_result2

  # revert back to sequential execution
  plan(sequential)

  te_result2 <- transfer_entropy(x, y, nboot = 100)
  te_result2

  # General set of quiet
  set_quiet(TRUE)
  a <- transfer_entropy(x, y, nboot = 0)

  set_quiet(FALSE)
  a <- transfer_entropy(x, y, nboot = 0)

  # close multisession, see also ?plan
  plan(sequential)


RTransferEntropy documentation built on Feb. 16, 2023, 9:28 p.m.