commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Patrick Meyer (JIRA)" <j...@apache.org>
Subject [jira] Created: (MATH-449) Storeless covariance
Date Wed, 01 Dec 2010 16:13:12 GMT
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.


Mime
View raw message