R: Estimate Quantiles of a Zero-Modified Lognormal (Delta)...
eqzmlnorm
R Documentation
Estimate Quantiles of a Zero-Modified Lognormal (Delta) Distribution
Description
Estimate quantiles of a
zero-modified lognormal distribution or a
zero-modified lognormal distribution (alternative parameterization).
Usage
eqzmlnorm(x, p = 0.5, method = "mvue", digits = 0)
eqzmlnormAlt(x, p = 0.5, method = "mvue", digits = 0)
Arguments
x
a numeric vector of positive observations, or an object resulting from a call to
an estimating function that assumes a zero-modified lognormal distribution.
For eqzmlnorm, if x is an object, it must be the result of calling
ezmlnorm, not ezmlnormAlt.
For eqzmlnormAlt, if x is an object, it must be the
result of calling ezmlnormAlt, not ezmlnorm.
If x is a numeric vector,
missing (NA), undefined (NaN), and infinite (Inf, -Inf)
values are allowed but will be removed.
p
numeric vector of probabilities for which quantiles will be estimated.
All values of p must be between 0 and 1. When ci=TRUE, p
must be a scalar. The default value is p=0.5.
method
character string specifying the method of estimation. The only possible value is
"mvue" (minimum variance unbiased; the default). See the DETAILS section of
the help file for ezmlnorm for more information.
digits
an integer indicating the number of decimal places to round to when printing out
the value of 100*p. The default value is digits=0.
Details
The functions eqzmlnorm and eqzmlnormAlt return estimated quantiles
as well as estimates of the distribution parameters.
Quantiles are estimated by:
estimating the distribution parameters by calling ezmlnorm or
ezmlnormAlt, and then
calling the function qzmlnorm or
qzmlnormAlt and using the estimated
distribution parameters.
Value
If x is a numeric vector, eqzmlnorm and eqzmlnormAlt return a
list of class "estimate" containing the estimated quantile(s) and other
information. See estimate.object for details.
If x is the result of calling an estimation function, eqzmlnorm and
eqzmlnormAlt return a list whose class is the same as x. The list
contains the same components as x, as well as components called
quantiles and quantile.method.
Note
The zero-modified lognormal (delta) distribution is sometimes used to
model chemical concentrations for which some observations are reported as
“Below Detection Limit” (the nondetects are assumed equal to 0).
See, for example, Gilliom and Helsel (1986), Owen and DeRouen (1980), and
Gibbons et al. (2009, Chapter 12). USEPA (2009, Chapter 15) recommends this
strategy only in specific situations, and Helsel (2012, Chapter 1) strongly
discourages this approach to dealing with non-detects.
A variation of the zero-modified lognormal (delta) distribution is the
zero-modified normal distribution, in which a
normal distribution is mixed with a positive probability mass at 0.
One way to try to assess whether a zero-modified lognormal (delta),
zero-modified normal, censored normal, or censored lognormal is the best
model for the data is to construct both censored and detects-only probability
plots (see qqPlotCensored).
Aitchison, J. (1955). On the Distribution of a Positive Random Variable Having
a Discrete Probability Mass at the Origin. Journal of the American
Statistical Association50, 901–908.
Aitchison, J., and J.A.C. Brown (1957). The Lognormal Distribution
(with special reference to its uses in economics). Cambridge University Press,
London. pp.94-99.
Crow, E.L., and K. Shimizu. (1988). Lognormal Distributions:
Theory and Applications. Marcel Dekker, New York, pp.47–51.
Gibbons, RD., D.K. Bhaumik, and S. Aryal. (2009). Statistical Methods
for Groundwater Monitoring. Second Edition. John Wiley and Sons, Hoboken, NJ.
Gilliom, R.J., and D.R. Helsel. (1986). Estimation of Distributional Parameters
for Censored Trace Level Water Quality Data: 1. Estimation Techniques.
Water Resources Research22, 135–146.
Helsel, D.R. (2012). Statistics for Censored Environmental Data Using
Minitab and R. Second Edition. John Wiley and Sons, Hoboken, NJ, Chapter 1.
Johnson, N. L., S. Kotz, and A.W. Kemp. (1992). Univariate Discrete Distributions.
Second Edition. John Wiley and Sons, New York, p.312.
Owen, W., and T. DeRouen. (1980). Estimation of the Mean for Lognormal Data
Containing Zeros and Left-Censored Values, with Applications to the Measurement
of Worker Exposure to Air Contaminants. Biometrics36, 707–719.
USEPA (1992c). Statistical Analysis of Ground-Water Monitoring Data at
RCRA Facilities: Addendum to Interim Final Guidance. Office of Solid Waste,
Permits and State Programs Division, US Environmental Protection Agency,
Washington, D.C.
USEPA. (2009). Statistical Analysis of Groundwater Monitoring Data at RCRA Facilities, Unified Guidance.
EPA 530/R-09-007, March 2009. Office of Resource Conservation and Recovery Program Implementation and Information Division.
U.S. Environmental Protection Agency, Washington, D.C.
# Generate 100 observations from a zero-modified lognormal (delta)
# distribution with mean=2, cv=1, and p.zero=0.5, then estimate the
# parameters and also the 80'th and 90'th percentiles.
# (Note: the call to set.seed simply allows you to reproduce this example.)
set.seed(250)
dat <- rzmlnormAlt(100, mean = 2, cv = 1, p.zero = 0.5)
eqzmlnormAlt(dat, p = c(0.8, 0.9))
#Results of Distribution Parameter Estimation
#--------------------------------------------
#
#Assumed Distribution: Zero-Modified Lognormal (Delta)
#
#Estimated Parameter(s): mean = 1.9604561
# cv = 0.9169411
# p.zero = 0.4500000
# mean.zmlnorm = 1.0782508
# cv.zmlnorm = 1.5307175
#
#Estimation Method: mvue
#
#Estimated Quantile(s): 80'th %ile = 1.897451
# 90'th %ile = 2.937976
#
#Quantile Estimation Method: Quantile(s) Based on
# mvue Estimators
#
#Data: dat
#
#Sample Size: 100
#----------
# Compare the estimated quatiles with the true quantiles
qzmlnormAlt(mean = 2, cv = 1, p.zero = 0.5, p = c(0.8, 0.9))
#[1] 1.746299 2.849858
#----------
# Clean up
rm(dat)
Results
R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
> library(EnvStats)
Attaching package: 'EnvStats'
The following objects are masked from 'package:stats':
predict, predict.lm
The following object is masked from 'package:base':
print.default
> png(filename="/home/ddbj/snapshot/RGM3/R_CC/result/EnvStats/eqzmlnorm.Rd_%03d_medium.png", width=480, height=480)
> ### Name: eqzmlnorm
> ### Title: Estimate Quantiles of a Zero-Modified Lognormal (Delta)
> ### Distribution
> ### Aliases: eqzmlnorm eqzmlnormAlt
> ### Keywords: distribution htest
>
> ### ** Examples
>
> # Generate 100 observations from a zero-modified lognormal (delta)
> # distribution with mean=2, cv=1, and p.zero=0.5, then estimate the
> # parameters and also the 80'th and 90'th percentiles.
> # (Note: the call to set.seed simply allows you to reproduce this example.)
>
> set.seed(250)
> dat <- rzmlnormAlt(100, mean = 2, cv = 1, p.zero = 0.5)
> eqzmlnormAlt(dat, p = c(0.8, 0.9))
Results of Distribution Parameter Estimation
--------------------------------------------
Assumed Distribution: Zero-Modified Lognormal (Delta)
Estimated Parameter(s): mean = 1.9604561
cv = 0.9169411
p.zero = 0.4500000
mean.zmlnorm = 1.0782508
cv.zmlnorm = 1.5307175
Estimation Method: mvue
Estimated Quantile(s): 80'th %ile = 1.897451
90'th %ile = 2.937976
Quantile Estimation Method: Quantile(s) Based on
mvue Estimators
Data: dat
Sample Size: 100
>
> #Results of Distribution Parameter Estimation
> #--------------------------------------------
> #
> #Assumed Distribution: Zero-Modified Lognormal (Delta)
> #
> #Estimated Parameter(s): mean = 1.9604561
> # cv = 0.9169411
> # p.zero = 0.4500000
> # mean.zmlnorm = 1.0782508
> # cv.zmlnorm = 1.5307175
> #
> #Estimation Method: mvue
> #
> #Estimated Quantile(s): 80'th %ile = 1.897451
> # 90'th %ile = 2.937976
> #
> #Quantile Estimation Method: Quantile(s) Based on
> # mvue Estimators
> #
> #Data: dat
> #
> #Sample Size: 100
>
> #----------
>
> # Compare the estimated quatiles with the true quantiles
>
> qzmlnormAlt(mean = 2, cv = 1, p.zero = 0.5, p = c(0.8, 0.9))
[1] 1.746299 2.849858
> #[1] 1.746299 2.849858
>
> #----------
>
> # Clean up
> rm(dat)
>
>
>
>
>
> dev.off()
null device
1
>