Подгонка данных к нестандартизированному t-распределению Стьюдента в Java

Я пытаюсь повторно реализовать некоторый R-код в Java, и, поскольку он будет интегрирован в другой код, не контролируемый мной, он действительно должен быть в Java.

Важнейшей частью является подгонка данных к нестандартизированному t-распределению с использованием моментов данных (среднее значение, дисперсия, асимметрия, эксцесс). Т.е. нахождение параметров нестандартизированного t-распределения, которое наилучшим образом соответствует данным.

Я уже нашел решение для резервного копирования создания Java-оболочки кода R с использованием JRI. Но есть ли способ сделать это в чистом Java-коде?

1 ответ

Так что это на самом деле совсем не сложно:

 /**
 * Returns the parameters of the Student T distribution which is fitted using the moments given.
 *
 * @param avg: estimated average.
 * @param variance: estimated variance.
 * @param kurtosis: estimated kurtosis.

 * @return double[] {location, scale, degrees of freedom}.
 * @throws Nothing!! (for now)
 */
public static double[] get_Tdistribution_params_from_moments(double avg, double variance, double kurtosis){
    double mu = avg; // localization parameter
    double nu = (6-4*kurtosis)/(3-kurtosis); // degree of freedom
    double sigma = Math.pow(((nu-2)/nu)*variance,0.5); // scale parameter
    return new double[] {mu,sigma, nu};
}
Другие вопросы по тегам