Как мне перевести эту формулу эксцесса из документации Java в Ruby? - PullRequest
0 голосов
/ 28 сентября 2018

У меня проблема со странной формулой эксцесса, используемой в документации по Java: http://commons.apache.org/proper/commons-math//javadocs/api-3.0/org/apache/commons/math3/stat/descriptive/moment/Kurtosis.html

Computes the Kurtosis of the available values.

We use the following (unbiased) formula to define kurtosis:

kurtosis = { [n(n+1) / (n -1)(n - 2)(n-3)] sum[(x_i - mean)^4] / std^4 } - [3(n-1)^2 / (n-2)(n-3)]

where n is the number of values, mean is the Mean and std is the StandardDeviation

Note that this statistic is undefined for n < 4. Double.Nan is returned when there is not sufficient data to compute the statistic.

Самое близкое значение, которое я получил от java-программы, я получил, когда использовал эту формулу https://www.itl.nist.gov/div898/handbook/eda/section3/eda35b.htm, но я все еще был выше 0,2 от ожидаемого значения.

Я не понимаю квадратные скобки, и когда я попытался реализовать формулу, я был на 3 порядка от требуемого значения.

Можно ли перевести формулу документации java для перевода либо в Ruby, либо в какую-то математическую запись, которая имеет смысл?

первая попытка

Это мой перевод на Ruby, которыйпримерно на 0,2 больше, чем значение, создаваемое Java-программой.

  def kurtosis
    return 0 if @values.length == 1
    cached_mean = mean
    n = @values.length.to_f

    rku = @values.sum { |x| (x - cached_mean)**4 }
    rkb = standard_deviation**4
    real_kurtosis = rku / rkb

    bk = (n * (n + 1)) / ((n - 1) * (n - 2) * (n - 3))
    ak = (3 * (n - 1)**2) / ((n - 2) * (n - 3))
    (bk * real_kurtosis) - ak
  end

1 Ответ

0 голосов
/ 28 сентября 2018

Существует четыре слегка отличающихся определения куртоза:

enter image description here

Избыток * * * * * * * * * * * * - это куртоз разницы междуданное распределение и эксцесс нормального распределения. Смещение - это разница между ожидаемым значением и истинным значением оцениваемого параметра.Более полное объяснение найдено, например, в https://en.wikipedia.org/wiki/Kurtosis и https://en.wikipedia.org/wiki/Bias_of_an_estimator.

Вы можете сравнивать только значения эксцессов, принадлежащих к той же версии эксцессов.Веб-сайт nist (https://www.itl.nist.gov/div898/handbook/eda/section3/eda35b.htm) объясняет смещенные версии, документацию Java (http://commons.apache.org/proper/commons-math//javadocs/api-3.0/org/apache/commons/math3/stat/descriptive/moment/Kurtosis.html) несмещенный избыток эксцесс). Как правило, оба значения отличаются в соответствиис вашими результатами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...