concerning Roger Hui's formula for the students CDF,

It would be handy to return

1 instead of assert when y>0 or when y>0 and the calculation returns less
than 0

0 instead of assert when y<0 or when y<0 and the calculation is not 0.

On Tue, Aug 12, 2008 at 8:40 PM, Robert Cyr <[EMAIL PROTECTED]> wrote:

> There appears to be a sign problem in the formula.
>
> The formula either form Wolfram or wikipedia are:
>
> tcdf=: 4 : 0
>  assert. (%:x)>|y
>  0.5 + y * (!-:x+1) * ((0.5,-:1+x) H. 1.5 x%~-*:y) % (%:o.x) * !<:-:x
> )
>
> As noted by others, the limit also needs to be adjusted.
> The limits probably are too high, as tcdf cannot exceed 1.  It seems to be
> in that region that problem results occur.
>
>
> On Tue, Aug 12, 2008 at 5:38 PM, Roger Hui <[EMAIL PROTECTED]> wrote:
>
>> For large x one may want to use the N(0,1) CDF
>> in a pinch.  From
>> http://www.jsoftware.com/jwiki/Essays/Normal_CDF
>>
>> erf   =: (1 H. 1.5)@*: * 2p_0.5&* % ^@:*:
>> n01cdf=: -: @ >: @ erf @ %&(%:2)
>>
>>   10 tcdf 3
>> 0.993328
>>    n01cdf 3
>> 0.99865
>>
>> The bad  100 tcdf 9  result is likely due to extreme
>> accumulation of numerical errors.  On my machine I get:
>>
>>   100 tcdf 9
>> 1.03437e17
>>
>>   n01cdf 9
>> 1
>>   1 - n01cdf 9
>> _2.22045e_16
>>
>>
>>
>> ----- Original Message -----
>> From: John Randall <[EMAIL PROTECTED]>
>> Date: Tuesday, August 12, 2008 14:07
>> Subject: Re: [Jprogramming] general Gamma distribution
>> To: Programming forum <[email protected]>
>>
>> > Roger Hui wrote:
>> > > It's the absolute value of y that should be bounded,
>> > > not just y itself.  Thus:
>> > >
>> > > tcdf=: 4 : 0
>> > >  assert. (%:x)>|y
>> > >  0.5 + y * (!-:x-1) * ((0.5,-:1+x) H. 1.5 x%~-*:y) %
>> > (%:o.x) * !<:-:x
>> > > )
>> > >
>> > >
>> > Mathworld <http://mathworld.wolfram.com/Studentst-
>> > Distribution.html> has
>> > different formulations (equations 7 and  8), which rely on
>> > the incomplete
>> > beta function and are not subject to the hypergeometric bounds.
>> >
>> > I don't think the restriction is bad when x (degrees of freedom)
>> > is above
>> > about 10.  For example
>> >
>> >    10 tcdf 3
>> > 0.993328
>> >
>> > but it is not good if x is smaller.   High values of y
>> > give strange results:
>> >
>> >    100 tcdf 9
>> > _7.15204e15
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>>
>
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to