Storeless covariance
--------------------
Key: MATH-449
URL: https://issues.apache.org/jira/browse/MATH-449
Project: Commons Math
Issue Type: Improvement
Reporter: Patrick Meyer
Currently there is no storeless version for computing the covariance. However,
Pebay (2008) describes algorithms for on-line covariance computations,
[http://infoserve.sandia.gov/sand_doc/2008/086212.pdf]. I have provided a
simple class for implementing this algorithm. It would be nice to have this
integrated into org.apache.commons.math.stat.correlation.Covariance.
{code}
public class StorelessCovariance{
private double deltaX = 0.0;
private double deltaY = 0.0;
private double meanX = 0.0;
private double meanY = 0.0;
private double N=0;
private Double covarianceNumerator=0.0;
private boolean unbiased=true;
public Covariance(boolean unbiased){
this.unbiased = unbiased;
}
public void increment(Double x, Double y){
if(x!=null & y!=null){
N++;
deltaX = x - meanX;
deltaY = y - meanY;
meanX += deltaX/N;
meanY += deltaY/N;
covarianceNumerator += ((N-1.0)/N)*deltaX*deltaY;
}
}
public Double getResult(){
if(unbiased){
return covarianceNumerator/(N-1.0);
}else{
return covarianceNumerator/N;
}
}
}
{code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.