Java Variance variance(double[] arr)

Here you can find the source of variance(double[] arr)

Description

variance

License

Apache License

Declaration

public static double variance(double[] arr) 

Method Source Code

//package com.java2s;
/*/*from w  ww.j  a v  a 2s. c o  m*/
 * Copyright 2013,2014 BioASQ project: FP7/2007-2013, ICT-2011.4.4(d), 
 *  Intelligent Information Management, 
 *  Targeted Competition Framework grant agreement n? 318652.
 *  www: http://www.bioasq.org
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

public class Main {
    public static double variance(double[] arr) {
        int n = arr.length;
        if (n < 2)
            return 0;
        //throw new IllegalArgumentException("Must be at least 2 elements in array.");

        //   1st get the average of the data.
        double ave = average(arr);

        double var = 0;
        double ep = 0;
        for (int i = 0; i < n; ++i) {
            double s = arr[i] - ave;
            ep += s;
            var += s * s;
        }

        var = (var - ep * ep / n) / (n - 1);

        return var;
    }

    public static double variance(double[] arr, double average) {
        int n = arr.length;
        if (n < 2)
            return 0;
        //throw new IllegalArgumentException("Must be at least 2 elements in array.");

        //   1st get the average of the data.
        double ave = average;

        double var = 0;
        double ep = 0;
        for (int i = 0; i < n; ++i) {
            double s = arr[i] - ave;
            ep += s;
            var += s * s;
        }

        var = (var - ep * ep / n) / (n - 1);

        return var;
    }

    public static double average(double values[]) {
        int s = values.length;
        if (s == 0)
            return Double.MIN_VALUE;
        double avg = 0.0;
        for (int i = 0; i < s; i++)
            avg += values[i];

        return avg / s;
    }
}

Related

  1. variance(double... array)
  2. variance(double[] a)
  3. variance(double[] a, int from, int to)
  4. variance(double[] arr)
  5. variance(double[] array)
  6. variance(double[] array)
  7. variance(double[] d)
  8. Variance(double[] in, double mean)