Thomas Darimont
Erfahrenes Mitglied
Hallo,
Nicht immer kann man alle Werte eine Messreihe halten, so das es nützlich ist zu wissen, wie man statistische Kennzahlen auch "laufend" aktualiseren kann.
schaut mal hier:
Ausgabe:
Gruß Tom
Nicht immer kann man alle Werte eine Messreihe halten, so das es nützlich ist zu wissen, wie man statistische Kennzahlen auch "laufend" aktualiseren kann.
schaut mal hier:
Java:
package de.tutorials;
public class RunningStatisticsExample {
public static void main(String[] args) {
double[] values = {5,4,23,2,3,6,4,3};
Statistics statistics = new Statistics();
for(int i = 0; i< values.length;i++){
statistics.update(values[i]);
}
System.out.println(statistics);
}
static class Statistics {
double mean;
double standardDeviation;
double variance;
double sumOfSquares;
double sum;
int count;
public void update(double value) {
count++;
this.sum += value;
this.sumOfSquares += value * value;
this.mean += (value - mean) / count;
this.standardDeviation = Math.sqrt((count * sumOfSquares - sum * sum) / (count * (count - 1)));
this.variance = this.standardDeviation * this.standardDeviation;
}
public double getMean() {
return mean;
}
public void setMean(double mean) {
this.mean = mean;
}
public double getStandardDeviation() {
return standardDeviation;
}
public void setStandardDeviation(double standardDeviation) {
this.standardDeviation = standardDeviation;
}
@Override
public String toString() {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("sum: ");
stringBuilder.append(sum);
stringBuilder.append("\n");
stringBuilder.append("sum of x²: ");
stringBuilder.append(sumOfSquares);
stringBuilder.append("\n");
stringBuilder.append("mean: ");
stringBuilder.append(mean);
stringBuilder.append("\n");
stringBuilder.append("stddev: ");
stringBuilder.append(standardDeviation);
stringBuilder.append("\n");
stringBuilder.append("variance: ");
stringBuilder.append(variance);
stringBuilder.append("\n");
return stringBuilder.toString();
}
}
}
Ausgabe:
Code:
sum: 50.0
sum of x²: 644.0
mean: 6.25
stddev: 6.881652625434014
variance: 47.357142857142854
Gruß Tom