Last chance! 50% off unlimited learning
Sale ends in
This function estimates the parameters (lmoms
. The relations between distribution parameters and L-moments are seen under lmomkmu
.
The basic approach for parameter optimization is to extract initial guesses for the parameters from the table KMU_lmompara_bykappa
in the .lmomcohash
environment. The parameters having a minimum Euclidean error as controlled by three arguments are used for initial guesses in a Nelder-Mead simplex multidimensional optimization using the R function optim
and default arguments.
Limited testing indicates that of the “error term controlling options” that the default values as shown in the Usage section seem to provide superior performance in terms of recovering the a priori known parameters in experiments. It seems that only Euclidean optimization using L-skew and L-kurtosis is preferable, but experiments show the general algorithm to be slow.
parkmu(lmom, checklmom=TRUE, checkbounds=TRUE,
alsofitT3=FALSE, alsofitT3T4=FALSE, alsofitT3T4T5=FALSE,
justfitT3T4=TRUE, boundary.tolerance=0.001,
verbose=FALSE, trackoptim=TRUE, ...)
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
Should the L-skew and L-kurtosis boundaries of the distribution be checked.
Logical when true will add the error term
Logical when true will add the error term
Logical when true will add the error term
Logical when true will only consider the sum of squares errors for L-skew and L-kurtosis as mathematically shown for alsofitT3T4
.
A fudge number to help guide how close to the boundaries an arbitrary list of
A logical to control a level of diagnostic output.
A logical to control specific messaging through each iteration of the objective function.
Other arguments to pass.
An R list
is returned.
The type of distribution: kmu
.
The parameters of the distribution.
The source of the parameters: “parkmu”.
Yacoub, M.D., 2007, The kappa-mu distribution and the eta-mu distribution: IEEE Antennas and Propagation Magazine, v. 49, no. 1, pp. 68--81
# NOT RUN {
par1 <- vec2par(c(0.7, 0.2), type="kmu")
lmr1 <- lmomkmu(par1, nmom=4)
par2.1 <- parkmu(lmr1, alsofitT3=TRUE, verbose=TRUE, trackoptim=TRUE)
par2.1$para
par2.2 <- parkmu(lmr1, alsofitT3T4=TRUE, verbose=TRUE, trackoptim=TRUE)
par2.2$para
par2.3 <- parkmu(lmr1, alsofitT3=FALSE, verbose=TRUE, trackoptim=TRUE)
par2.3$para
par2.4 <- parkmu(lmr1, justfitT3T4=TRUE, verbose=TRUE, trackoptim=TRUE)
par2.4$para
x <- seq(0,3,by=.01)
plot(x, pdfkmu(x, par1), type="l", lwd=6, col=8, ylim=c(0,5))
lines(x, pdfkmu(x, par2.1), col=2, lwd=2, lty=2)
lines(x, pdfkmu(x, par2.2), col=4)
lines(x, pdfkmu(x, par2.3), col=3, lty=3, lwd=2)
lines(x, pdfkmu(x, par2.4), col=5, lty=2, lwd=2)
# }
# NOT RUN {
par1 <- vec2par(c(1, 0.65), type="kmu")
lmr1 <- lmomkmu(par1, nmom=4)
par2.1 <- parkmu(lmr1, alsofitT3=TRUE, verbose=TRUE, trackoptim=TRUE)
par2.1$para # eta=1.0 mu=0.65
par2.2 <- parkmu(lmr1, alsofitT3T4=TRUE, verbose=TRUE, trackoptim=TRUE)
par2.2$para # eta=1.0 mu=0.65
par2.3 <- parkmu(lmr1, alsofitT3=FALSE, verbose=TRUE, trackoptim=TRUE)
par2.3$para # eta=8.5779 mu=0.2060
par2.4 <- parkmu(lmr1, justfitT3T4=TRUE, verbose=TRUE, trackoptim=TRUE)
par2.4$para # eta=1.0 mu=0.65
x <- seq(0,3,by=.01)
plot(x, pdfkmu(x, par1), type="l", lwd=6, col=8, ylim=c(0,1))
lines(x, pdfkmu(x, par2.1), col=2, lwd=2, lty=2)
lines(x, pdfkmu(x, par2.2), col=4)
lines(x, pdfkmu(x, par2.3), col=3, lty=3, lwd=2)
lines(x, pdfkmu(x, par2.4), col=5, lty=2, lwd=2)
lines(x, dlmomco(x, lmom2par(lmr1, type="gam")), lwd=2, col=2)
lines(x, dlmomco(x, lmom2par(lmr1, type="ray")), lwd=2, col=2, lty=2)
lines(x, dlmomco(x, lmom2par(lmr1, type="rice")), lwd=2, col=4, lty=2)
# }
Run the code above in your browser using DataLab