Learn R Programming

lmomco (version 0.88)

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,checklmom=TRUE)

Arguments

lmom
A L-moment object created by lmom.ub or pwm2lmom.
checklmom
Should the lmom be checked for validity using the are.lmom.valid function. Normally this should be left as the default and it is very unlikely that the L-moments will not be viable (particularly in the $\tau_4$ and $\tau_3$ inequ

Value

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

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