Re: [R] exact values for p-values - more information.

From: Spencer Graves <spencer.graves_at_pdf.com>
Date: Tue 12 Jul 2005 - 03:39:37 EST

          I just checked:

 > pf(39540, 1, 7025, lower.tail=FALSE, log.p=TRUE) [1] -Inf

          This is not correct. With 7025 denominator degrees of freedom, we might use the chi-square approximation to the F distribution:         

 > pchisq(39540, 1, lower.tail=FALSE, log.p=TRUE) [1] -19775.52

          In sum, my best approximation to pf(39540, 1, 7025, lower.tail=FALSE, log.p=TRUE), given only a minute to work on this, is exp(pchisq(39540, 1, lower.tail=FALSE, log.p=TRUE)) = exp(-19775.52).

          I'm confident that many violations of assumptions would likely be more important than the differences between "p-value: < 2.2e-16" and these other two answers. However, I have also used numbers like exp(-19775.52) to guestimate relative degrees of plausibility for different alternatives. That doesn't mean they are right, only the best I can get with the available resources.

          spencer graves

Achim Zeileis wrote:

> On Mon, 11 Jul 2005, S.O. Nyangoma wrote:
>
>

>> Hi there,
>> If I do an lm, I get p-vlues as
>>
>> p-value: < 2.2e-16
>>
>>This is obtained from F =39540 with df1 = 1, df2 = 7025.
>>
>> Suppose am interested in exact value such as
>>
>> p-value = 1.6e-16 (note = and not <)
>>
>> How do I go about it?

>
>
> You can always extract the `exact' p-value from the "summary.lm" object or
> you can compute it by hand via
> pf(39540, df1 = 1, df2 = 7025, lower.tail = FALSE)
> For all practical purposes, the above means that the p-value is 0.
> I guess you are on a 32-bit machine, then it also means that the p-value
> is smaller than the Machine epsilon
> .Machine$double.eps
>
> So if you want to report the p-value somewhere, I think R's output should
> be more than precise enough. If you want to compute some other values that
> depend on such a p-value, then it is probably wiser to compute on a log
> scale, i.e. instead
> pf(70, df1 = 1, df2 = 7025, lower.tail = FALSE)
> use
> pf(70, df1 = 1, df2 = 7025, lower.tail = FALSE, log.p = TRUE)
>
> However, don't expect to be able to evaluate it at such extreme values
> such as 39540.
> Z
>
> ______________________________________________
> R-help@stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
-- 
Spencer Graves, PhD
Senior Development Engineer
PDF Solutions, Inc.
333 West San Carlos Street Suite 700
San Jose, CA 95110, USA

spencer.graves@pdf.com
www.pdf.com <http://www.pdf.com>
Tel:  408-938-4420
Fax: 408-280-7915

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Received on Tue Jul 12 03:49:11 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:33:30 EST