parnor {lmomco}R Documentation

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 λ_2 (L-scale) and σ (standard deviation). The σ 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 inequality). However, for some circumstances or large simulation exercises then one might want to bypass this check.

Value

An R list is returned.

type The type of distribution: nor.
para The parameters of the distribution.
source The source of the parameters: “parnor”.

Author(s)

W.H. Asquith

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

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,"\n"))


[Package lmomco version 0.96.3 Index]