[R] pnorm, relative accuracy in the tails

Achim Zeileis zeileis at ci.tuwien.ac.at
Wed Feb 13 16:51:37 CET 2002


Ole Christensen wrote:
> 
> Dear R people
> 
> The function below should be decreasing, convex, and tend to zero when x
> tends to infinity.
> 
> curve((1-pnorm(x))/dnorm(x),from=0, to=9)
> 
> >From the plot we see that for x between 8.0 and 8.3 the function is
> fluctuating.

You get a numerically more stable result by using logs:

R> curve(exp(pnorm(x, lower.tail=FALSE, log.p=TRUE)-dnorm(x,
log=TRUE)),from=0, to=9)

> As far as I understand, this is due to the function pnorm() not being
> sufficiently accurate in the tails.
> I am using pnorm() in a way that has probably not been intended.
> So I guess this should not be considered a bug (??)
> 
> The function can also be written as 1/lambda(x) where lambda(x) is the
> hazard rate for the normal distribution. Is there a way to calculate
> lambda(x) without using pnorm() ?
> 
> Any help would be appreciated.
> 
> Cheers
> 
> Ole Christensen
> 
> --
> Ole F. Christensen
> Department of Mathematics and Statistics
> Fylde College, Lancaster University
> Lancaster, LA1 4YF, England
> -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
> r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
> Send "info", "help", or "[un]subscribe"
> (in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
> _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list