mutualInformation: Average Mutual Information (AMI)

View source: R/mutualInformation.R

mutualInformationR Documentation

Average Mutual Information (AMI)

Description

Functions for estimating the Average Mutual Information (AMI) of a time series.

Usage

mutualInformation(
  time.series,
  lag.max = NULL,
  n.partitions = NULL,
  units = c("Nats", "Bits", "Bans"),
  do.plot = TRUE,
  ...
)

## S3 method for class 'mutualInf'
plot(
  x,
  main = "Average Mutual Information (AMI)",
  xlab = "Time lag",
  ylab = NULL,
  type = "h",
  ...
)

## S3 method for class 'mutualInf'
as.numeric(x, ...)

## S3 method for class 'mutualInf'
x[i]

## S3 method for class 'mutualInf'
x[[i]]

Arguments

time.series

The observed time series.

lag.max

Largest lag at which to calculate the AMI.

n.partitions

Number of bins used to compute the probability distribution of the time series.

units

The units for the mutual information. Allowed units are "Nats", "Bits" or "Bans" (somethings called Hartleys). Default is "Nats".

do.plot

Logical value. If TRUE, the AMI is plotted

...

Further arguments for the plotting function.

x

A mutualInf object.

main

Title for the plot.

xlab

Title for the x axis.

ylab

Title for the y axis.

type

Type of plot to be drawn.

i

Indices specifying elements to extract.

Details

The Average Mutual Information (AMI) measures how much one random variable tells us about another. In the context of time series analysis, AMI helps to quantify the amount of knowledge gained about the value of x(t+\tau) when observing x(t).

To measure the AMI iof a time series, we create a histogram of the data using bins. Let p_i the probability that the signal has a value inside the ith bin, and let p_{ij}(\tau) be the probability that x(t) is in bin i ans x(t+\tau) is in bin j. Then, AMI for time delay \tau is defined as

AMI(\tau) = \sum_{i,j} p_{ij} log(\frac{p_{ij}}{p_i p_j})

Depending on the base of the logarithm used to define AMI, the AMI is measured in bits (base 2, also called shannons), nats (base e) or bans (base 10, also called hartleys).

Value

A mutualInf object that consist of a list containing all the relevant information of the AMI computation: time.lag, mutual.information, units and n.partitions.

Author(s)

Constantino A. Garcia

References

H. Kantz and T. Schreiber: Nonlinear Time series Analysis (Cambridge university press) H. Abarbanel: Analysis of observed chaotic data (Springer, 1996).

See Also

timeLag

Examples

## Not run: 
sx = sinaiMap(a=0.3,n.sample=5000,start=c(0.23489,0.8923),do.plot=FALSE)$x
mutinf = mutualInformation(sx, n.partitions = 20, units = "Bits") 
## End(Not run)

nonlinearTseries documentation built on Sept. 23, 2024, 5:10 p.m.