Skip to content

Calculate the natural log of cdf between 2 intervals

2 messages · justin jarvis, Petr Savicky

#
On Thu, Feb 02, 2012 at 01:18:42PM -0800, justin jarvis wrote:
Hello:

Try the following.

  x <-  -20
  y <-  -19.9
  xplog <- pnorm(x, log.p=TRUE)
  yplog <- pnorm(y,log.p=TRUE)
  logdiff <- yplog + log1p( - exp(xplog - yplog))
  logdiff

  [1] -202.0626

In an exact arithmetic, we have

  exp(logdiff) =
  exp(yplog + log1p( - exp(xplog - yplog))) =
  exp(yplog + log(1 - exp(xplog - yplog))) =
  exp(yplog) * (1 - exp(xplog - yplog)) =
  exp(yplog) - exp(xplog)

So, we have

  exp(logdiff) = exp(yplog) - exp(xplog)
  logdiff = log(exp(yplog) - exp(xplog))

as required.

Hope this helps.

Petr Savicky.