You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Andreas Stefik (Jira)" <ji...@apache.org> on 2020/10/23 15:00:05 UTC
[jira] [Created] (STATISTICS-25) T Distribution Inverse Cumulative
Probability Function gives the Wrong Answer
Andreas Stefik created STATISTICS-25:
----------------------------------------
Summary: T Distribution Inverse Cumulative Probability Function gives the Wrong Answer
Key: STATISTICS-25
URL: https://issues.apache.org/jira/browse/STATISTICS-25
Project: Apache Commons Statistics
Issue Type: Bug
Reporter: Andreas Stefik
Hi There,
Given code like this:
import org.apache.commons.math3.analysis.UnivariateFunction;
import org.apache.commons.math3.analysis.solvers.BrentSolver;
import org.apache.commons.math3.distribution.TDistribution;
public class Main {
public static void main(String[] args) {
double df = 1E38;
double t = 0.975;
TDistribution dist = new TDistribution(df);
double prob = dist.inverseCumulativeProbability(1.0 - t);
System.out.println("Prob: " + prob);
}
}
It is possible I am misunderstanding, but that seems equivalent to:
scipy.stats.t.cdf(1.0 - 0.975, 1e38)
In Python. They give different answers. Python gives 0.509972518193, which seems correct, whereas Apache Commons gives Prob: -6.462184036284304E-10. That's a huge difference.
My hunch is that as you get closer to infinity it begins to fail, but I haven't checked carefully. For calls with much smaller degrees of freedom, you get answers that are basically the same as Python or online calculators.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)