## Not run:
# # It is well known that standard deviation (sigma) of the
# # sample mean is equal to sigma/sample_size. Let is look at the
# # quantile distribution of the median (f=0.5)
# mean <- 0; sigma <- 100
# parent <- vec2par(c(mean,sigma), type='nor')
# CI <- qua2ci.simple(0.5, parent, n=10, nsim=20)
# # Theoretrical sample mean sigma = 100/10 = 10
# # L-moment theory: L-scale * sqrt(pi) = sigma
# # Thus, it follows that the quantity
# CI$elmoms$lambdas[2]/sqrt(pi)
# # approaches 10 as nsim --> Inf.## End(Not run)
# Another example.
D <- c(123, 34, 4, 654, 37, 78, 93, 95, 120) # fake sample
lmr <- lmoms(D) # compute the L-moments of the data
WEI <- parwei(lmr) # estimate Weibull distribution parameters
CI <- qua2ci.simple(0.75,WEI,20, nsim=20, level=0.95)
# CI contains the estimate 95-percent confidence interval for the
# 75th-percentile of the parent Weibull distribution for 20 sample size 20.
## Not run:
# pdf("Substantial_qua2ci_example.pdf")
# level <- 0.90; cilo <- (1-level)/2; cihi <- 1 - cilo
# para <- lmom2par(vec2lmom(c(180,50,0.75)), type="gev")
# A <- qua2ci.simple(0.98, para, 30, edist="gno", level=level, nsim=3000)
# Apara <- A$epara; Aenv <- A$empdist
# Bpara <- lmom2par(A$elmoms, type="aep4")
#
# lo <- log10(A$lwr); hi <- log10(A$upr)
# xs <- 10^(seq(lo-0.2, hi+0.2, by=0.005))
# lo <- A$lwr; hi <- A$upr; xm <- A$true; sbar <- mean(Aenv$simquas)
# dd <- density(Aenv$simquas, adjust=0.5)
# pk <- max(dd$y, dlmomco(xs, Apara), dlmomco(xs, Bpara))
# dx <- dd$x[dd$x >= Aenv$empir.dist.lower & dd$x <= Aenv$empir.dist.upper]
# dy <- dd$y[dd$x >= Aenv$empir.dist.lower & dd$x <= Aenv$empir.dist.upper]
# dx <- c(dx[1], dx, dx[length(dx)]); dy <- c(0, dy, 0)
#
# plot(c(0), c(0), type="n", xlim=range(xs), ylim=c(0,pk),
# xlab="X VALUE", ylab="PROBABILITY DENSITY")
# polygon(dx, dy, col=8)
# lines(xs, dlmomco(xs, Apara)); lines(xs, dlmomco(xs, Bpara), col=2, lwd=2)
# lines(dd, lty=2, lwd=2, col=8)
# lines(xs, dlmomco(xs, para), col=6); lines(c(xm,xm), c(0,pk), lty=4, lwd=3)
# lines(c(lo,lo,NA,hi,hi), c(0,pk,NA,0,pk), lty=2)
#
# xlo <- qlmomco(cilo, Apara); xhi <- qlmomco(cihi, Apara)
# points(c(xlo, xhi), c(dlmomco(xlo, Apara), dlmomco(xhi, Apara)), pch=16)
# xlo <- qlmomco(cilo, Bpara); xhi <- qlmomco(cihi, Bpara)
# points(c(xlo, xhi), c(dlmomco(xlo, Bpara), dlmomco(xhi, Bpara)), pch=16, col=2)
# lines(rep(Aenv$empir.dist.lwr, 2), c(0,pk), lty=3, lwd=2, col=3)
# lines(rep(Aenv$empir.dist.upr, 2), c(0,pk), lty=3, lwd=2, col=3)
# lines(rep(Aenv$bern.smooth.lwr,2), c(0,pk), lty=3, lwd=2, col=4)
# lines(rep(Aenv$bern.smooth.upr,2), c(0,pk), lty=3, lwd=2, col=4)
# cat(c( "F(true) = ", round(plmomco(xm, Apara), digits=2),
# "; F(mean(sim), edist) = ", round(plmomco(sbar, Apara), digits=2), "\n"), sep="")
# dev.off()## End(Not run)
## Not run:
# ty <- "nor" # try running with "glo" (to get the L-skew "fit", see below)
# para <- lmom2par(vec2lmom(c(-180,70,-.5)), type=ty)
# f <- 0.99; n <- 41; ns <- 1000; Qtrue <- qlmomco(f, para)
# Qsim1 <- replicate(ns, qlmomco(f, lmom2par(lmoms(rlmomco(n, para)), type=ty)))
# Qsim2 <- qua2ci.simple(f, para, n, nsim=ns, edist="gno")
# Qbar1 <- mean(Qsim1); Qbar2 <- mean(Qsim2$empdist$simquas)
# epara <- Qsim2$epara; FT <- plmomco(Qtrue, epara)
# F1 <- plmomco(Qbar1, epara); F2 <- plmomco(Qbar2, epara)
# cat(c( "F(true) = ", round(FT, digits=2),
# "; F(via sim.) = ", round(F1, digits=2),
# "; F(via edist) = ", round(F2, digits=2), "\n"), sep="")
# # The given L-moments are highly skewed, but a Normal distribution is fit so
# # L-skew is ignored. The game is deep tail (f=0.99) estimation. The true value of the
# # quantile has a percentile on the error distribution 0.48 that is almost exactly 0.5
# # (median = mean = symmetrical error distribution). A test run shows nice behavior:
# # F(true) = 0.48; F(via sim.) = 0.49; F(via edist) = 0.5
# # But another run with ty <- "glo" (see how 0.36 << [0.52, 0.54]) has
# # F(true) = 0.36; F(via sim.) = 0.54; F(via edist) = 0.52
# # So as the asymmetry becomes extreme, the error distribution becomes asymmetrical too.## End(Not run)
Run the code above in your browser using DataLab