# Pr entropy

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.