[R] A very small p-value
    Peter Dalgaard 
    pd@|gd @end|ng |rom gm@||@com
       
    Tue Oct 28 11:13:01 CET 2025
    
    
  
I suspect this is more like a relic from times when people would do (say) 1 - pchisq(x,f) instead of pchisq(x, f, lower=FALSE) and intended to avoid the embarrassment of printing 0 for things that weren’t actually impossible.
People have been known to have unexpected uses for the tiny probabilities (one case came from theoretical physics - I think it got recorded as a fortune() entry) but rarely as low as 10^-16 in actual significance testing. Things like whole genome scans may suggest some hefty Bonferroni multipliers, but the numer of tests are not (yet?) in the trillions (US).
- pd
> On 26 Oct 2025, at 23.34, Ben Bolker <bbolker using gmail.com> wrote:
> 
>  One possible source of confusion is that the `print.Coefmat` function uses .Machine$double.eps as its threshold for printing "< [minimum value]" rather than the precise computed p-value (presumably on the grounds that a number smaller than this is likely to be unrealistic as an accurate statement of the unlikeliness of an outcome in the real world).
> 
> On 10/26/25 10:41, Richard O'Keefe wrote:
>> No, 0 and 5-19 are not "equalled".  THey are quite distinct.
>> As for pt() returning something smaller than double.eps, why wouldn't it?
>> If I calculate 10^-30, I get 1e-30, which is much smaller than  double.eps,
>> but is still correct.  It would be a serious error to return 0 for 10^-30.
>> Welcome to the wonderful world of floating-point arithmetic.
>> This really has nothing to do with R.
>> On Sun, 26 Oct 2025 at 09:38, Christophe Dutang <dutangc using gmail.com> wrote:
>>> 
>>> Thanks for your answers.
>>> 
>>> I was not aware of the R function expm1().
>>> 
>>> I’m completely aware that 1 == 1 - 5e-19. But I was wondering why pt() returns something smaller than double.eps.
>>> 
>>> For students who will use this exercise, it is disturbing to find 0 or 5e-19 : yet it will be a good exercise to find that these quantities are equalled.
>>> 
>>> Regards, Christophe
>>> 
>>>> Le 25 oct. 2025 à 12:14, Ivan Krylov <ikrylov using disroot.org> a écrit :
>>>> 
>>>> В Sat, 25 Oct 2025 11:45:42 +0200
>>>> Christophe Dutang <dutangc using gmail.com> пишет:
>>>> 
>>>>> Indeed, the p-value is lower than the epsilon machine
>>>>> 
>>>>>> pt(t_score, df = n-2, lower=FALSE) < .Machine$double.eps
>>>>> [1] TRUE
>>>> 
>>>> Which means that for lower=TRUE, there will not be enough digits in R's
>>>> numeric() type to represent the 5*10^-19 subtracted from 1 and
>>>> approximately 16 zeroes.
>>>> 
>>>> Instead, you can verify your answer by asking for the logarithm of the
>>>> number that is too close to 1, thus retaining more significant digits:
>>>> 
>>>> print(
>>>> -expm1(pt(t_score, df = n-2, lower=TRUE, log.p = TRUE)),
>>>> digits=16
>>>> )
>>>> # [1] 2.539746620181249e-19
>>>> print(pt(t_score, df = n-2, lower=FALSE), digits=16)
>>>> # [1] 2.539746620181248e-19
>>>> 
>>>> expm1(.) computes exp(.)-1 while retaining precision for numbers that
>>>> are too close to 0, for which exp() would otherwise return 1.
>>>> 
>>>> See the links in
>>>> https://cran.r-project.org/doc/FAQ/R-FAQ.html#Why-doesn_0027t-R-think-these-numbers-are-equal_003f
>>>> for a more detailed explanation.
>>>> 
>>>> --
>>>> Best regards,
>>>> Ivan
>>>> (flipping the "days since referring to R FAQ 7.31" sign back to 0)
>>> 
>>> ______________________________________________
>>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>> PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
>>> and provide commented, minimal, self-contained, reproducible code.
>> ______________________________________________
>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
> 
> -- 
> Dr. Benjamin Bolker
> Professor, Mathematics & Statistics and Biology, McMaster University
> Associate chair (graduate), Mathematics & Statistics
> Director, School of Computational Science and Engineering
> * E-mail is sent at my convenience; I don't expect replies outside of working hours.
> 
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
    
    
More information about the R-help
mailing list