Given a vector of numeric values of real values represented in log form,
logMeanExpLogs
computes the logarithm of the mean of the
(exponentiated) values. logCumMeanExpLogs
computes the logarithm of
the cumulative mean.
logMeanExpLogs(v)
logMeanExpLogs
returns a single value,
logCumMeanExpLogs
returns a vector of values of the same length as
v, and logSummaryStats
returns a list of the
log mean, log variance, and cumulative log means.
A vector of (log) values
Richard D. Morey (richarddmorey@gmail.com)
Given a vector of values of log values v, one could compute
log(mean(exp(v)))
in R. However, exponentiating and summing will cause
a loss of precision, and possibly an overflow. These functions use the
identity
For details of the approximation of
# Sample 100 values
y = log(rexp(100,1))
# These will give the same value,
# since e^y is "small"
logMeanExpLogs(y)
log(mean(exp(y)))
# We can make e^x overflow by multiplying
# e^y by e^1000
largeVals = y + 1000
# This will return 1000 + log(mean(exp(y)))
logMeanExpLogs(largeVals)
# This will overflow
log(mean(exp(largeVals)))
Run the code above in your browser using DataLab