【发布时间】: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);
}
}
【问题讨论】:
-
What am i getting wrong?你在比较什么?它是否使用Bessel's Corresction 例如n-1?见stats.stackexchange.com/questions/17890/… 和stats.stackexchange.com/questions/3931/… -
啊!除以 n-1 固定它。非常感谢!