Простая статистика - пакеты Java для вычисления среднего значения, стандартного отклонения и т. Д. [Закрыто]

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

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

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

РЕДАКТИРОВАТЬ

Что касается:

Насколько сложно написать простой класс, который рассчитывает средние и стандартные отклонения?

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

 Adam Hughes28 дек. 2015 г., 21:17
Вы не должны помнить это наизусть. Любой язык, достойный внимания, должен обеспечивать прямой доступ к базовой описательной статистике. Наблюдение за тем, как люди спрашивают «как сложно написать стандартное отклонение», забавно ...

Ответы на вопрос(5)

что нет прямого метода и классов в Java. Мы должны построить его для себя. Для вашего требования этот код поможет вам.Рассчитать стандартное отклонение в Java

 cowls24 июн. 2015 г., 16:22
Ответили через два года после ответа Джона Полетта. Очевидно, есть библиотеки, доступные для этого. Я бы не реализовал свой, если бы не в образовательных целях.
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);
    }
}

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

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

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

Это заняло бы больше времени у дизайнера / разработчика / технического документатора ... без четкой «отдачи от инвестиций».

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

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

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

 wvdz14 дек. 2016 г., 11:31
Хороший, но довольно хромой, что он не обеспечивает getStd ()
 Enrico Giurin07 февр. 2017 г., 03:44
Я не могу понять, почему метод вычисления отклонения не был добавлен в IntSummaryStatistics.
Решение Вопроса
 Grundlefleck15 нояб. 2009 г., 00:02
Только что открыл эту библиотеку, именно для расчета среднего значения, стандартного отклонения. Очень легко подобрать. +1
 Peter Perháč14 нояб. 2009 г., 23:50
Благодарю. Я так понимаю, на самом деле нет причин искать дальше. Вы довольны Apache Commons, или это просто так, достаточно хорошо, может быть лучше?
 Michael Rusch08 сент. 2011 г., 22:45
Просто для того, чтобы сэкономить людям несколько кликов: DescriptiveStatistics - это то, что содержит все значения, которые вы отправляете, в памяти, а SummaryStatistics не хранит их в памяти.
 Stephen C15 нояб. 2009 г., 11:46
@MasterPeter - но я уверен, что вы помните URL для Википедии наизусть :-) :-)
 Stephen C15 нояб. 2009 г., 00:27
API используютdouble неint или жеlong поэтому целочисленное переполнение не является проблемой. Однако они не могут обрабатывать наборы значений с более чемInteger.MAX_VALUE двойники.

Ваш ответ на вопрос