可能性のある複製:
単純な統計-Java平均、標準偏差などを計算するためのパッケージ
いくつかのdouble(1.1、2、3、5)のベクトルがあります。分散、中央値、標準偏差を計算するにはどうすればよいですか?
Java、C++、または擬似コードでも可能です。
public class Statistics {
double[] data;
int size;
public Statistics(double[] data) {
this.data = data;
size = data.length;
}
double getMean() {
double sum = 0.0;
for(double a : data)
sum += a;
return sum/size;
}
double getVariance() {
double mean = getMean();
double temp = 0;
for(double a :data)
temp += (a-mean)*(a-mean);
return temp/(size-1);
}
double getStdDev() {
return Math.sqrt(getVariance());
}
public double median() {
Arrays.sort(data);
if (data.length % 2 == 0)
return (data[(data.length / 2) - 1] + data[data.length / 2]) / 2.0;
return data[data.length / 2];
}
}
平均を計算するには、数値のリスト/配列をループし、部分的な合計と長さを追跡します。その後、sum/length
。
double sum = 0.0;
int length = 0;
for( double number : numbers ) {
sum += number;
length++;
}
return sum/length;
分散も同様に計算されます。標準偏差は、単に分散の平方根です。
double stddev = Math.sqrt( variance );