Простая статистика - пакеты Java для расчета среднего, стандартного отклонения и т.д.

Не могли бы вы предложить любые простые пакеты статистики Java?

Мне не обязательно нужен какой-либо передовой материал. Я был очень удивлен, что не существует функции для вычисления среднего значения в пакете java.lang.Math...

Что вы, ребята, используете для этого?


ИЗМЕНИТЬ

Относительно:

Как трудно писать простой класс который рассчитывает средства и стандартные отклонения?

Ну, не сложно. Я задал этот вопрос только после того, как их вручную закодировали. Но это только добавило моему разочарованию в Java, чтобы эти простые функции не были доступны под рукой, когда они мне были нужны. Я не помню формулу для вычисления stdev наизусть:)

Ответ 2

Просто отвечая на эту часть вопроса:

Я был очень удивлен, что там не представляется функцией для вычислить Среднее значение в java.lang.Math package...

Я не думаю, что с удивлением обнаружил это. Существует множество "полезных алгоритмов", которые не реализуют библиотеки классов Java. Они не реализуют все. И в этом они ничем не отличаются от других языков программирования.

На самом деле было бы плохо, если бы Sun даже пыталась реализовать слишком много в J2SE:

  • Требуется больше времени для разработчиков/разработчиков/технических документов... без четкой "отдачи от инвестиций".

  • Это увеличит площадь Java; например размер "rt.jar". (Или, если они попытаются смягчить это, это приведет к большей сложности платформы...)

  • Для вещей в математическом пространстве вам часто нужно внедрять алгоритмы по-разному (с различными API-интерфейсами) для удовлетворения различных требований.

  • Для сложных вещей Sun может не пытаться "стандартизировать" API-интерфейсы, но оставить это для какой-либо другой заинтересованной/опытной группы, чтобы сделать это; например люди Apache.

Ответ 5

import java.util.*;
public class stdevClass {
    public static void main(String[] args){
        int [] list = {1,-2,4,-4,9,-6,16,-8,25,-10};
        double stdev_Result = stdev(list);
        System.out.println(stdev(list));
    }

    public static double stdev(int[] list){
        double sum = 0.0;
        double mean = 0.0;
        double num=0.0;
        double numi = 0.0;
        double deno = 0.0;

        for (int i : list) {
            sum+=i;
        }
        mean = sum/list.length;

        for (int i : list) {
            numi = Math.pow((double) i - mean), 2);
            num+=numi;
        }

        return Math.sqrt(num/list.length);
    }
}