
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 lmoms
. The relation between distribution parameters and L-moments is seen under lmomnor
.
There are interesting parallels between sd
function of R, and in fact such equality is not expected. This disconnect between the parameters of the Normal distribution and the moments (sample) of the same name can be most confusing to young trainees in statistics. The Pearson Type III is similar. See the extended example for further illustration.
parnor(lmom, checklmom=TRUE, ...)
An R
list
is returned.
The type of distribution: nor
.
The parameters of the distribution.
The source of the parameters: “parnor”.
An L-moment object created by lmoms
or vec2lmom
.
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
Other arguments to pass.
W.H. Asquith
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, v. 52, pp. 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.
lmomnor
,
cdfnor
, pdfnor
, quanor
lmr <- lmoms(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 variates
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"))
Run the code above in your browser using DataLab