Learn R Programming

lmomco (version 0.80)

parnor: Estimate the Parameters of the Normal Distribution

Description

This function estimates the parameters of the Normal distribution given the L-moments of the data in an L-moment object such as that returned by lmom.ub. The relation between distribution parameters and L-moments is seen under lmomnor. There are interesting parallels between $\lambda_2$ (L-scale) and $\sigma$ (standard deviation). The $\sigma$ estimated from this function will not necessarily equal the output of the sd() function of R. See the extended example for further illustration.

Usage

parnor(lmom)

Arguments

lmom
A L-moment object created by lmom.ub or pwm2lmom.

Value

  • An R list is returned.
  • typeThe type of distribution: nor.
  • paraThe parameters of the distribution.

References

Hosking, J.R.M., 1990, L-moments---Analysis and estimation of distributions using linear combinations of order statistics: Journal of the Royal Statistical Society, Series B, vol. 52, p. 105--124.

Hosking, J.R.M., 1996, FORTRAN routines for use with the method of L-moments: Version 3, IBM Research Report RC20525, T.J. Watson Research Center, Yorktown Heights, New York.

Hosking, J.R.M. and Wallis, J.R., 1997, Regional frequency analysis---An approach based on L-moments: Cambridge University Press.

See Also

lmom.ub, lmomnor, cdfnor, quanor

Examples

Run this code
lmr <- lmom.ub(rnorm(20))
parnor(lmr)

# A more extended example to explore the differences between an
# L-moment derived estimate of the standard deviation and R's sd()
true.std <- 15000 # select a large standard deviation
std         <- vector(mode = "numeric") # vector of sd()
std.by.lmom <- vector(mode = "numeric") # vector of L-scale values
sam <- 7   # number of samples to simulate
sim <- 100 # perform simulation sim times
for(i in seq(1,sim)) {
  Q <- rnorm(sam,sd=15000) # draw random normal deviates
  std[i] <- sd(Q) # compute standard deviation
  lmr <- lmoms(Q) # compute the L-moments
  std.by.lmom[i] <- lmr$lambdas[2] # save the L-scale value
}
# convert L-scale values to equivalent standard deviations
std.by.lmom      <- sqrt(pi)*std.by.lmom

# compute the two biases and then output
# see how the standard deviation estimated through L-scale
# has a smaller bias than the usual (product moment) standard
# deviation. The unbiasness of L-moments is demonstrated.
std.bias         <- true.std - mean(std)
std.by.lmom.bias <- true.std - mean(std.by.lmom)
cat(c(std.bias,std.by.lmom.bias,""))

Run the code above in your browser using DataLab