MI: Calculate Mutual Information

Description Usage Arguments Details Value Author(s) References Examples

View source: R/MI.R


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


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



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.


optional numerical vector that must be specified if x is a vector. Defaults to NULL.


integer specifying the number of the neighbours to be used in the calculation of the MI value.


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


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.


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


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).


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

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

Example output

Loading required package: convert
Loading required package: Biobase
Loading required package: BiocGenerics
Loading required package: parallel

Attaching package: 'BiocGenerics'

The following objects are masked from 'package:parallel':

    clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
    clusterExport, clusterMap, parApply, parCapply, parLapply,
    parLapplyLB, parRapply, parSapply, parSapplyLB

The following objects are masked from 'package:stats':

    IQR, mad, sd, var, xtabs

The following objects are masked from 'package:base':

    Filter, Find, Map, Position, Reduce, anyDuplicated, append,
    as.data.frame, cbind, colMeans, colSums, colnames, do.call,
    duplicated, eval, evalq, get, grep, grepl, intersect, is.unsorted,
    lapply, lengths, mapply, match, mget, order, paste, pmax, pmax.int,
    pmin, pmin.int, rank, rbind, rowMeans, rowSums, rownames, sapply,
    setdiff, sort, table, tapply, union, unique, unsplit, which,
    which.max, which.min

Welcome to Bioconductor

    Vignettes contain introductory material; view with
    'browseVignettes()'. To cite Bioconductor, see
    'citation("Biobase")', and for packages 'citation("pkgname")'.

Loading required package: limma

Attaching package: 'limma'

The following object is masked from 'package:BiocGenerics':


Loading required package: marray
Loading required package: graph
[1] 1.618473
         [,1]     [,2]     [,3]     [,4]
[1,] 3.198743 1.169191 1.381692 1.377843
[2,] 1.169191 3.198743 1.262225 1.292517
[3,] 1.381692 1.262225 3.198743 1.252056
[4,] 1.377843 1.292517 1.252056 3.198743

maigesPack documentation built on Nov. 8, 2020, 6:23 p.m.