web-dev-qa-db-fra.com

Comment calculez-vous la variance, la médiane et l'écart type en C++ ou en Java?

Dupliquer possible:
Statistiques simples - Packages Java pour le calcul de la moyenne, de l'écart type, etc.

J'ai un vecteur de quelques doubles (1.1,2,3,5). Comment puis-je calculer la variance, la médiane et l'écart type? 

Java ou C++ ou même un pseudo-code feraient l'affaire.

13
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];
    }
}
106
Dennis

Pour calculer la moyenne, parcourez la liste/le tableau de nombres en gardant une trace des sommes partielles et de la longueur. Puis retournez le sum/length.

double sum = 0.0;
int length = 0;

for( double number : numbers ) {
    sum += number;
    length++;
}

return sum/length;

La variance est calculée de manière similaire. L’écart-type est simplement la racine carrée de la variance:

double stddev = Math.sqrt( variance );
0
tskuzzy