Learn R Programming

distr6 (version 1.1.0)

Lognormal: Log-Normal Distribution Class

Description

Mathematical and statistical functions for the Log-Normal distribution, which is commonly used to model many natural phenomena as a result of growth driven by small percentage changes.

Value

Returns an R6 object inheriting from class SDistribution.

Constructor

Lognormal$new(meanlog = 0, varlog = 1, sdlog = NULL, preclog = NULL, mean = 1, var = NULL, sd = NULL, prec = NULL, decorators = NULL, verbose = FALSE)

Constructor Arguments

Argument Type Details
meanlog numeric mean of the distribution on the log scale.
varlog numeric variance of the distribution on the log scale.
sdlog numeric standard deviation of the distribution on the log scale.
preclog numeric precision of the distribution on the log scale.
mean numeric mean of the distribution on the natural scale.
var numeric variance of the distribution on the natural scale.
sd numeric standard deviation of the distribution on the natural scale.
prec numeric precision of the distribution on the natural scale.

decorators Decorator decorators to add functionality. See details.

Constructor Details

The Log-Normal distribution is parameterised with either meanlog and varlog, sdlog or preclog, or mean and var, sd or prec. These are related via $$var = (exp(var) - 1)) * exp(2 * meanlog + varlog)$$ $$sdlog = varlog^2$$ $$sd = var^2$$ Analogously for prec and preclog. If prec is given then all other parameters other than mean are ignored. If sd is given then all other parameters (except prec) are ignored. If var is given then all log parameters are ignored. If preclog is given then varlog and sdlog are ignored. Finally if sdlog is given then varlog is ignored.

Public Variables

Variable Return
name Name of distribution.
short_name Id of distribution.
description Brief description of distribution.

Public Methods

Accessor Methods Link
decorators() decorators
traits() traits
valueSupport() valueSupport
variateForm() variateForm
type() type
properties() properties
support() support
symmetry() symmetry
sup() sup
inf() inf
dmax() dmax
dmin() dmin
skewnessType() skewnessType
kurtosisType() kurtosisType

Statistical Methods

Link
pdf(x1, ..., log = FALSE, simplify = TRUE) pdf
cdf(x1, ..., lower.tail = TRUE, log.p = FALSE, simplify = TRUE) cdf
quantile(p, ..., lower.tail = TRUE, log.p = FALSE, simplify = TRUE) quantile.Distribution
rand(n, simplify = TRUE) rand
mean() mean.Distribution
variance() variance
stdev() stdev
prec() prec
cor() cor
skewness() skewness
kurtosis(excess = TRUE) kurtosis
entropy(base = 2) entropy
mgf(t) mgf
cf(t) cf
pgf(z) pgf
median() median.Distribution
iqr() iqr

Parameter Methods

Link
parameters(id) parameters
getParameterValue(id, error = "warn") getParameterValue
setParameterValue(..., lst = NULL, error = "warn") setParameterValue

Validation Methods

Link
liesInSupport(x, all = TRUE, bound = FALSE) liesInSupport
liesInType(x, all = TRUE, bound = FALSE) liesInType

Representation Methods

Link
strprint(n = 2) strprint
print(n = 2) print
summary(full = T) summary.Distribution
plot() Coming Soon.
qqplot() Coming Soon.

Details

The Log-Normal distribution parameterised with logmean, \(\mu\), and logvar, \(\sigma\), is defined by the pdf, $$exp(-(log(x)-\mu)^2/2\sigma^2)/(x\sigma\sqrt(2\pi))$$ for \(\mu \epsilon R\) and \(\sigma > 0\).

The distribution is supported on the Positive Reals.

cf is omitted as no closed form analytic expression could be found, decorate with CoreStatistics for numerical results.

Also known as the Log-Gaussian distribution.

References

McLaughlin, M. P. (2001). A compendium of common probability distributions (pp. 2014-01). Michael P. McLaughlin.

See Also

listDistributions for all available distributions. Normal for the Normal distribution. CoreStatistics for numerical results.

Examples

Run this code
# NOT RUN {
# Many parameterisations are possible
Lognormal$new(var = 2, mean = 1)
Lognormal$new(meanlog = 2, preclog = 5)
# Note parameters must be on same scale (log or natural)
Lognormal$new(meanlog = 4, sd = 2)

x <- Lognormal$new(verbose = TRUE) # meanlog = 0, sdlog = 1 default

# Update parameters
# When any parameter is updated, all others are too!
x$setParameterValue(meanlog = 3)
x$parameters()

# But you can only set parameters on the same scale, the below has no effect
x$setParameterValue(sd = 3)
# But this does
x$setParameterValue(sdlog = 3)

# d/p/q/r
x$pdf(5)
x$cdf(5)
x$quantile(0.42)
x$rand(4)

# Statistics
x$mean()
x$variance()

summary(x)

# }

Run the code above in your browser using DataLab