Opened 14 years ago
Closed 14 years ago
#2877 closed Bugs (fixed)
Approximation error in the non central chi square distribution
Reported by: | Owned by: | John Maddock | |
---|---|---|---|
Milestone: | Boost 1.39.0 | Component: | math |
Version: | Boost 1.36.0 | Severity: | Problem |
Keywords: | Approximation error | Cc: |
Description
Hi,
I'll like inform you about an error of approximation on the non central chi square distribution.
When the freedom degree is equal to 3, the distribution calls the modified bessel function of the first kind.
In this case, I0.5(x) = sqrt(2 / πx) * sinh(x) ( see http://www.boost.org/doc/libs/1_36_0/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html )
Nonetheless, it seems that you use yet the Berton and Krishnamoorthy method and their recurrence, and that imply an error approximation.
For example, i compute the method with R. let x = 5.0, freedom degree = 3.0 and the non-centrality parameter = 1.5 then dchisq(5.0,3,1.5) = 0.0972573 (See the wikipedia example)
When i use I0.5(x) = sqrt(2 / πx) * sinh(x) to compute the chi square distribution, i find the same result.
conversely, when i use the boost library non_central_chi_squared.hpp, my result is 0.0976656.
Note in the other cases, the deviation between the two results can be greater
best regards, Cédric Naud
Attachments (1)
Change History (4)
comment:1 by , 14 years ago
Status: | new → assigned |
---|
by , 14 years ago
Attachment: | bessel.patch added |
---|
comment:2 by , 14 years ago
It's a bug in cyl_bessel_i that's causing the issue - a patch is attached to this ticket, will be in SVN shortly.
comment:3 by , 14 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Confirmed as a bug, I just can't spot the error at present...