Isis 3 Programmer Reference
Isis::MultivariateStatistics Class Reference

Container of multivariate statistics. More...

#include <MultivariateStatistics.h>

Collaboration diagram for Isis::MultivariateStatistics:
Collaboration graph

Public Member Functions

 MultivariateStatistics ()
 Constructs a Multivariate Statistics object with accumulators and counters set to zero.
 
 MultivariateStatistics (const PvlObject &inStats)
 Constructs a MulitvariateStatistics object from a PvlObject.
 
 ~MultivariateStatistics ()
 Destructs a MultivariateStatistics object.
 
void Reset ()
 Resets all accumulators to zero.
 
void AddData (const double *x, const double *y, const unsigned int count)
 Add two arrays of doubles to the accumulators and counters.
 
void AddData (double x, double y, unsigned int count=1)
 Add an x,y value to the accumulators and counters count times.
 
void RemoveData (const double *x, const double *y, const unsigned int count)
 Remove an array of doubles from the accumulators and counters.
 
Isis::Statistics X () const
 Returns a Stats object for all of the X data fed through the AddData method.
 
Isis::Statistics Y () const
 Returns a Stats object for all of the Y data fed through the AddData method.
 
double SumXY () const
 Returns the sum of x*y for all data given through the AddData method.
 
double Covariance () const
 Computes and returns the covariance between the two data sets If there are no valid data (pixels) then NULL8 is returned.
 
double Correlation () const
 Computes and returns the coefficient of correlation (between -1.0 and 1.0) of the two data sets.
 
void LinearRegression (double &a, double &b) const
 Fits a line.
 
BigInt ValidPixels () const
 Returns the number of valid pixels processed.
 
BigInt InvalidPixels () const
 Returns the number of invalid pixels encountered.
 
BigInt TotalPixels () const
 Returns the total number of pixels processed.
 
PvlObject toPvl (QString name="MultivariateStatistics") const
 Serializes a multivariate statistics object as a PvlObject.
 

Private Member Functions

void fromPvl (const PvlObject &inStats)
 Unserializes a multivariate statistics object from a PvlObject.
 

Private Attributes

Isis::Statistics p_x
 A Statistics object holding x data.
 
Isis::Statistics p_y
 A Statistics object holding y data.
 
double p_sumxy
 The sum of x and y.
 
BigInt p_validPixels
 The number of valid (computed) pixels.
 
BigInt p_invalidPixels
 The number of invalid (ignored) pixels.
 
BigInt p_totalPixels
 The total number of pixels (invalid and valid).
 

Detailed Description

Container of multivariate statistics.

This class is used to accumulate multivariate statisics on two double arrays. In particular, it is highly useful for obtaining the covariance, correlation, and linear regression analysis on the the data. It ignores input values which are Isis special pixel values. That is, if either co-aligned double value is a special pixel then both values are not used in any statistical computation.

See also
Histogram
Stats
Author
2004-06-08 Jeff Anderson
History

2005-03-28 Leah Dahmer modified file to support Doxygen documentation.

2005-05-23 Jeff Anderson - Added 2GB+ file support

2012-01-03 Steven Lambright - Added AddData(double, double, unsigned int) for a significant performance improvement and to increase the consistency in the API relative to the Statistics class.

2016-07-15 Ian Humphrey - Added constructor to initialize a MultivariateStatistics object from a PvlObject. Added fromPvl() and toPvl() methods to allow for serialization/unserialization with PvlObjects. Updated unit test. References #2282.

Todo

This class needs an example.

For the below methods we will need to compute log x, loy y, sumx3, sumx4,sumx2y: void ExponentialRegression (double &a, double &b) const; void PowerRegression (double &a, double &b) const; void parabolicRegression (double &a, double &b, double &c);

Definition at line 54 of file MultivariateStatistics.h.

Constructor & Destructor Documentation

◆ MultivariateStatistics() [1/2]

Isis::MultivariateStatistics::MultivariateStatistics ( )

Constructs a Multivariate Statistics object with accumulators and counters set to zero.

Definition at line 25 of file MultivariateStatistics.cpp.

References Reset().

◆ MultivariateStatistics() [2/2]

Isis::MultivariateStatistics::MultivariateStatistics ( const PvlObject & inStats)

Constructs a MulitvariateStatistics object from a PvlObject.

Parameters
constPvlObject & - Input multivariate statistics.

Definition at line 35 of file MultivariateStatistics.cpp.

References fromPvl(), and Reset().

◆ ~MultivariateStatistics()

Isis::MultivariateStatistics::~MultivariateStatistics ( )

Destructs a MultivariateStatistics object.

Definition at line 54 of file MultivariateStatistics.cpp.

Member Function Documentation

◆ AddData() [1/2]

void Isis::MultivariateStatistics::AddData ( const double * x,
const double * y,
const unsigned int count )

Add two arrays of doubles to the accumulators and counters.

This method can be invoked multiple times, for example, once for each line in a cube, before obtaining statistics.

Parameters
xArray of doubles to add.
yArray of doubles to add.
countNumber of doubles to process.

Definition at line 66 of file MultivariateStatistics.cpp.

References Isis::Statistics::AddData(), Isis::IsValidPixel(), p_invalidPixels, p_sumxy, p_totalPixels, p_validPixels, p_x, and p_y.

Referenced by Isis::MaximumCorrelation::MatchAlgorithm().

◆ AddData() [2/2]

void Isis::MultivariateStatistics::AddData ( double x,
double y,
unsigned int count = 1 )

Add an x,y value to the accumulators and counters count times.

This method can be invoked multiple times before obtaining statistics.

Parameters
xx value to add
yy value to add
countNumber of times to add this x,y value

Definition at line 94 of file MultivariateStatistics.cpp.

References Isis::Statistics::AddData(), Isis::IsValidPixel(), p_invalidPixels, p_sumxy, p_totalPixels, p_validPixels, p_x, and p_y.

◆ Correlation()

double Isis::MultivariateStatistics::Correlation ( ) const

Computes and returns the coefficient of correlation (between -1.0 and 1.0) of the two data sets.

This can be used as a goodness-of-fit measurement. The close the correlation is two -1.0 or 1.0 the more likely the data sets are related (and therefore the regression equation is valid).

Returns
The coefficient of correlation. (between -1.0 and 1.0) The closer to 0.0 implies there is less correlation between the data sets. Returns NULL8 if correlation couldn't be computed.

Definition at line 171 of file MultivariateStatistics.cpp.

References Covariance(), p_validPixels, p_x, p_y, and Isis::Statistics::StandardDeviation().

Referenced by toPvl().

◆ Covariance()

double Isis::MultivariateStatistics::Covariance ( ) const

Computes and returns the covariance between the two data sets If there are no valid data (pixels) then NULL8 is returned.

Returns
Covariance between the two data sets.

Definition at line 153 of file MultivariateStatistics.cpp.

References Isis::Statistics::Average(), p_sumxy, p_validPixels, p_x, p_y, and Isis::Statistics::Sum().

Referenced by Correlation(), and toPvl().

◆ fromPvl()

void Isis::MultivariateStatistics::fromPvl ( const PvlObject & inStats)
private

Unserializes a multivariate statistics object from a PvlObject.

Parameters
constPvlObject & - Input multivariate statistics

Definition at line 272 of file MultivariateStatistics.cpp.

References p_invalidPixels, p_sumxy, p_totalPixels, p_validPixels, p_x, and p_y.

Referenced by MultivariateStatistics().

◆ InvalidPixels()

BigInt Isis::MultivariateStatistics::InvalidPixels ( ) const

Returns the number of invalid pixels encountered.

Returns
The number of invalid (unprocessed) pixels.

Definition at line 211 of file MultivariateStatistics.cpp.

References p_invalidPixels.

Referenced by toPvl().

◆ LinearRegression()

void Isis::MultivariateStatistics::LinearRegression ( double & a,
double & b ) const

Fits a line.

\[ y=A+Bx \]

through the data.

Parameters
aThe additive constant A.
bThe additive constant B.

Definition at line 222 of file MultivariateStatistics.cpp.

References p_sumxy, p_validPixels, p_x, p_y, Isis::IException::Programmer, Isis::Statistics::Sum(), and Isis::Statistics::SumSquare().

Referenced by toPvl().

◆ RemoveData()

void Isis::MultivariateStatistics::RemoveData ( const double * x,
const double * y,
const unsigned int count )

Remove an array of doubles from the accumulators and counters.

Parameters
xPointer to an array of doubles to remove.
yArray of doubles to add.
countNumber of doubles to process.
Returns
(type)return description
Todo
The description for param y doesn't make sense here. -Leah

Definition at line 124 of file MultivariateStatistics.cpp.

References Isis::IsValidPixel(), p_invalidPixels, p_sumxy, p_totalPixels, p_validPixels, p_x, p_y, Isis::IException::Programmer, and Isis::Statistics::RemoveData().

◆ Reset()

void Isis::MultivariateStatistics::Reset ( )

Resets all accumulators to zero.

Definition at line 42 of file MultivariateStatistics.cpp.

References p_invalidPixels, p_sumxy, p_totalPixels, p_validPixels, p_x, p_y, and Isis::Statistics::Reset().

Referenced by MultivariateStatistics(), and MultivariateStatistics().

◆ SumXY()

double Isis::MultivariateStatistics::SumXY ( ) const

Returns the sum of x*y for all data given through the AddData method.

Returns
The sum of x*y for all data.

Definition at line 242 of file MultivariateStatistics.cpp.

References p_sumxy.

Referenced by toPvl().

◆ toPvl()

PvlObject Isis::MultivariateStatistics::toPvl ( QString name = "MultivariateStatistics") const

Serializes a multivariate statistics object as a PvlObject.

Parameters
QString(Default value is "MultivariateStatistics") - Name of the PvlObject
Returns
PvlObject The serialized multivariate statistics

Definition at line 293 of file MultivariateStatistics.cpp.

References Correlation(), Covariance(), InvalidPixels(), LinearRegression(), SumXY(), Isis::Statistics::toPvl(), Isis::toString(), TotalPixels(), ValidPixels(), X(), and Y().

◆ TotalPixels()

BigInt Isis::MultivariateStatistics::TotalPixels ( ) const

Returns the total number of pixels processed.

Returns
The total number of pixel processed (valid and invalid).

Definition at line 189 of file MultivariateStatistics.cpp.

References p_totalPixels.

Referenced by toPvl().

◆ ValidPixels()

BigInt Isis::MultivariateStatistics::ValidPixels ( ) const

Returns the number of valid pixels processed.

Only valid pixels are utilized when computing the average, standard deviation, variance, minimum, and maximum.

Returns
The number of valid pixels processed.

Definition at line 201 of file MultivariateStatistics.cpp.

References p_validPixels.

Referenced by Isis::OverlapStatistics::IsValid(), and toPvl().

◆ X()

Isis::Statistics Isis::MultivariateStatistics::X ( ) const

Returns a Stats object for all of the X data fed through the AddData method.

Returns
A Stats object for all X data.

Definition at line 252 of file MultivariateStatistics.cpp.

References p_x.

Referenced by toPvl().

◆ Y()

Isis::Statistics Isis::MultivariateStatistics::Y ( ) const

Returns a Stats object for all of the Y data fed through the AddData method.

Returns
A Stats object for all Y data.

Definition at line 262 of file MultivariateStatistics.cpp.

References p_y.

Referenced by toPvl().

Member Data Documentation

◆ p_invalidPixels

BigInt Isis::MultivariateStatistics::p_invalidPixels
private

The number of invalid (ignored) pixels.

Definition at line 101 of file MultivariateStatistics.h.

Referenced by AddData(), AddData(), fromPvl(), InvalidPixels(), RemoveData(), and Reset().

◆ p_sumxy

double Isis::MultivariateStatistics::p_sumxy
private

The sum of x and y.

Definition at line 91 of file MultivariateStatistics.h.

Referenced by AddData(), AddData(), Covariance(), fromPvl(), LinearRegression(), RemoveData(), Reset(), and SumXY().

◆ p_totalPixels

BigInt Isis::MultivariateStatistics::p_totalPixels
private

The total number of pixels (invalid and valid).

Definition at line 106 of file MultivariateStatistics.h.

Referenced by AddData(), AddData(), fromPvl(), RemoveData(), Reset(), and TotalPixels().

◆ p_validPixels

BigInt Isis::MultivariateStatistics::p_validPixels
private

The number of valid (computed) pixels.

Definition at line 96 of file MultivariateStatistics.h.

Referenced by AddData(), AddData(), Correlation(), Covariance(), fromPvl(), LinearRegression(), RemoveData(), Reset(), and ValidPixels().

◆ p_x

Isis::Statistics Isis::MultivariateStatistics::p_x
private

A Statistics object holding x data.

Definition at line 86 of file MultivariateStatistics.h.

Referenced by AddData(), AddData(), Correlation(), Covariance(), fromPvl(), LinearRegression(), RemoveData(), Reset(), and X().

◆ p_y

Isis::Statistics Isis::MultivariateStatistics::p_y
private

A Statistics object holding y data.

Definition at line 88 of file MultivariateStatistics.h.

Referenced by AddData(), AddData(), Correlation(), Covariance(), fromPvl(), LinearRegression(), RemoveData(), Reset(), and Y().


The documentation for this class was generated from the following files: