Exemple #1
0
        public double GetCovarianve(double[] xArray, double[] yArray, bool biasCorrected) //throws MathIllegalArgumentException
        {
            Mean   mean   = new Mean();
            double result = 0.0D;
            int    length = xArray.Length;

            if (length != yArray.Length)
            {
                // throw new MathIllegalArgumentException(LocalizedFormats.DIMENSIONS_MISMATCH_SIMPLE, new Object[] { Integer.valueOf(length), Integer.valueOf(yArray.length)
            }

            if (length < 2)
            {
                //throw new MathIllegalArgumentException(LocalizedFormats.INSUFFICIENT_OBSERVED_POINTS_IN_SAMPLE, new Object[] { Integer.valueOf(length), Integer.valueOf(2) });
            }
            double xMean = mean.Evaluate(xArray);
            double yMean = mean.Evaluate(yArray);

            for (int i = 0; i < length; i++)
            {
                double xDev = xArray[i] - xMean;
                double yDev = yArray[i] - yMean;
                result += (xDev * yDev - result) / (i + 1);
            }
            return(biasCorrected ? result * (length / (length - 1)) : result);
        }
Exemple #2
0
        public double Evaluate(double[] values, int begin, int length) //throws MathIllegalArgumentException
        {
            double var = Double.NaN;

            if (Test(values, begin, length))
            {
                Clear();
                if (length == 1)
                {
                    var = 0.0D;
                }
                else if (length > 1)
                {
                    Mean   mean = new Mean();
                    double m    = mean.Evaluate(values, begin, length);
                    var = Evaluate(values, m, begin, length);
                }
            }
            return(var);
        }