【问题标题】:Calculating mean and standard deviation in java在java中计算平均值和标准差
【发布时间】:2017-01-18 19:13:32
【问题描述】:

我在计算平均值时没有问题,但我的标准差总是有点偏。我难住了。 对于标准偏差,我使用 for 循环返回填充了用户提示值的数组,并从每个值中减去平均值,然后对其进行平方。然后再一个for循环将它们加在一起,除以值的数量,然后平方根。我哪里错了?

import java.util.Scanner;

public class Assignment4 
{
    public static void main(String[] args)
    {
        Scanner scan = new Scanner(System.in);


        System.out.println("Please enter the number of items:"); // PROMPTS USER FOR # OF ITEMS
        double size = scan.nextDouble();

        double meanSum = 0;
        double deviationSum = 0;
        double array[] = new double [(int) size];


        System.out.println("Please enter the items");
        for (int i = 0; i < size; i++)
            {
                 array[i]= scan.nextDouble();
            }


        for (int i = 0; i < size; i++)
            {
                meanSum += array[i];
            }

        double mean = ((meanSum / size));
        System.out.println("The mean is: " + mean);




        //STANDARD DEVIATION CALCULATION
        for (int i = 0; i < size; i++)
            {
                array[i] = (Math.pow((array[i] - mean), 2));
            }
        for (int i = 0; i < size; i++)
        {
            deviationSum += array[i];
        }

        double variance = ((deviationSum / size));

        double standardDeviation = Math.sqrt(variance);
        System.out.println("The standard deviation is: " + standardDeviation);

    }

}

【问题讨论】:

标签: java standard-deviation


【解决方案1】:

根据您比较答案的对象,它可能会使用更正,例如Bessel's correction。换句话说,不是除以size,而是除以size-1。另见this 和this

【讨论】:

    【解决方案2】:

    您可以将您的答案与 DescriptiveStatistics 输出的结果 (https://commons.apache.org/proper/commons-math/javadocs/api-2.2/org/apache/commons/math/stat/descriptive/DescriptiveStatistics.html) 进行比较

    你只需调用.addValue(double)函数,最后调用函数返回均值和标准差

    【讨论】:

      猜你喜欢
      • 2014-03-21
      • 1970-01-01
      • 2012-04-20
      • 2018-07-20
      • 1970-01-01
      • 1970-01-01
      • 2016-04-17
      相关资源
      最近更新 更多