Learn R Programming

pomp (version 5.11)

logmeanexp: The log-mean-exp trick

Description

logmeanexp computes $$\log\frac{1}{n}\sum_{i=1}^n\!e^{x_i},$$ avoiding over- and under-flow in doing so. It can optionally return an estimate of the standard error in this quantity.

Usage

logmeanexp(x, se = FALSE, ess = FALSE)

Value

log(mean(exp(x))) computed so as to avoid over- or underflow. If se = TRUE, the approximate standard error is returned as well. If ess = TRUE, the effective sample size is returned also.

Arguments

x

numeric

se

logical; give approximate standard error?

ess

logical; give effective sample size?

Author

Aaron A. King

Details

When se = TRUE, logmeanexp uses a jackknife estimate of the variance in \(log(x)\).

When ess = TRUE, logmeanexp returns an estimate of the effective sample size.

Examples

Run this code
 # takes too long for R CMD check
  ## an estimate of the log likelihood:
  ricker() |>
    pfilter(Np=1000) |>
    logLik() |>
    replicate(n=5) -> ll
  logmeanexp(ll)
  ## with standard error:
  logmeanexp(ll,se=TRUE)
  ## with effective sample size
  logmeanexp(ll,ess=TRUE)

Run the code above in your browser using DataLab