2015-07-26 2 views
1

Я пытаюсь рассчитать двухстороннее распределение учеников с использованием commons-math. Я использую Excel для сравнения значений и проверки правильности моих результатов.Вычисление TDIST с использованием библиотеки Apache Commons

Так Использование Excel для вычисления TDIST (х, ДФ, т) с й = 5.968191467, DF = 8, хвост т = 2

=TDIST(ABS(5.968191467),8,2) 

и получить результат: 0,000335084

Используя обыкновенный Math как так:

TDistribution tDistribution = new TDistribution(8); 
System.out.println(BigDecimal.valueOf(tDistribution.density(5.968191467))); 

Я получаю результат: 0,00018738010608336254

Что я должен использовать, чтобы получить результат точно так же, как и значение TDIST?

ответ

1

Чтобы скопировать вашу формулу в Excel можно использовать CDF:

2*(1.0 - tDistribution.cumulativeProbability(5.968191467)) 
+0

Спасибо, что работает !! –

0

Правая формула для общего х является:

2*(1.0 - tDistribution.cumulativeProbability(Math.abs(x))) 

(благодаря ryuichiro). Не забудьте добавить абсолютное значение, потому что TDIST 2 степеней свободы в Excel представляет собой симметричную формулу, то есть

TDIST(-x,df,2) = TDIST(x,df,2) 

и один из ryuchiro не будет работать для отрицательных х годов. Проверьте также docs или this.