On 21/12/2007 2:52 PM, [EMAIL PROTECTED] wrote:
> Dear All,
> 
>  
> 
> I have a numerical problem:
> 
> R, as other statistical software, can tell the difference between very small 
> numbers and 0, while apparently cannot distinguish a number close to 1 and 1. 
> In the example below, is it possible to instruct R to recognize that q is 
> different from 1?

No, the limitations are inherent in the floating point representation 
that R uses.

>> p=.00000000000000000000000000000001
> 
>> p==0
> 
> [1] FALSE
> 
>> q=.99999999999999999999999999999
> 
>> q==1
> 
> [1] TRUE
> 
> Interestingly, 
> 
>> (1-p)==1
> 
> [1] TRUE
> 
> The main problem I have is that I need to evaluate the inverse of the normal 
> Cumulative Distribution Function near 1 (but not exactly 1) and the PC cannot 
> recognize it.

In this particular case, it's easy:  make use of the symmetry of the 
distribution.  If you want the 1-epsilon quantile of a normal with mean 
mu, find the epsilon quantile, and reflect it through mu:

mu <- 3
-qnorm(1e-30, mean=-mu)

More generally, you can make use of the log.p argument to the quantile 
functions, and the fact that log(1-epsilon) is close to -epsilon:

qnorm(-1e-30, mean=mu, log.p=TRUE)

Duncan Murdoch

> 
> Thank you very much for your help!
> 
> Carlo
> 
> 
> Please access the attached hyperlink for an important electronic 
> communications disclaimer: 
> http://www.lse.ac.uk/collections/secretariat/legal/disclaimer.htm
> 
> ______________________________________________
> R-help@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to