MI {maigesPack} | R Documentation

## Calculate Mutual Information

### Description

Function to calculate the mutual information of 2 random variables, or between all pairs of rows of a numerical matrix.

### Usage

    MI(x, y=NULL, k=1)

### Arguments

`x` | numerical matrix to calculate the MI between all pairs of rows from `x`. Also, `x` must be a numerical vector and `y` must be specified as another numerical vector of same lenght as `x` and the MI value between both them are calculated.
`y` | optional numerical vector that must be specified if `x` is a vector. Defaults to NULL.
`k` | integer specifying the number of the neighbours to be used in the calculation of the MI value.

### Details

This function implements an algorithm proposed by Kraskov et al. (2004) that don't use estimator of the entropy.

### Value

If `x` is a matrix, the function return a square matrix with lenght equal to the number of rows of `x` with MI values between all pairs of rows from `x`. If `x` is a numerical vector, `y` must be specified and the function returns a positive real number with the MI value between the two vectors.

### Author(s)

Gustavo H. Esteves <gesteves@vision.ime.usp.br>

### References

Kraskov, A.; Stogbauer, H. and Grassberger, P. Estimating mutual information, Physical Review E, 69, 066138, 2004 (http://scitation.aip.org/getabs/servlet/GetabsServlet?prog=normal&id=PLEEE8000069000006066138000001&idtype=cvips&gifs=yes).

### Examples

    x <- runif(50, 0, 1)
    y <- rbeta(50, 1, 2)
    MI(x, y)

    z <- matrix(rnorm(100, 0, 1), 4, 25)
    MI(z)

[Package maigesPack version 1.8.0 Index]