Pr entropy

From Eigenvector Research Documentation Wiki
Jump to navigation Jump to search

Purpose

Pattern recognition entropy (PRE), Shannon entropy, transform.

Synopsis

For input(x) PR_ENTROPY calculates the pattern recognition entropy (PRE)
on the ROWS of (x). If (x) is MxN with a row given by x(i,:) i=1,...,M
then the output (ax) is PRE calculated as
ax = -p'.*log2(p); where p = normaliz(abs(x(i,:)),[],1) with 0<p<=1
if optional input (a) is included then
p = normaliz(abs(x(i,:))+a,[],1);
to avoid taking log of <=0.
Note: PR_ENTROPY was originally intended for use with non-negative data.
The PR_ENTROPY function includes abs(x) to allow negative data to be used,
however input (a) is included to avoid problems when (x) is small.
See: TG Avval, B Moeini, V Carver, N Fairley, EF Smith, J Baltrusaitis,
V Fernandez, BJ Tyler, N Gallagher, MR Linford, "The Often-Overlooked
Power of Summary Statistics in Exploratory Data Analysis: Comparison of
Pattern Recognition Entropy (PRE) to Other Summary Statistics and
Introduction of Divided Spectrum-PRE (DS-PRE)," J. Chem. Inf. Model.,
2021, 61, 4173−4189. DOI: 10.1021/acs.jcim.1c00244

Description

For input (x), where x is a MxN matrix to transform (class double or DataSet).
If (x) is a DataSet object then the calculation uses
x(:,x.include{2}).
the output (ax) is given by
ax = -p'.*log2(p); where p = normaliz(abs(x(i,:)),[],1) with 0<p<=1

Options

For optional input (a) a scalar offset {default: a = eps} then
ax = -p'.*log2(p+a);
where (ax) is MxN.
For optional input (sf==true) {default: sf=false} then (ax) is summed
to give |PRE| values across each row of (x) and (ax) is Mx1.

See Also

auto, asinsqrt, asinhx