Learn R Programming

lmomco (version 2.3.1)

lmomrice: L-moments of the Rice Distribution

Description

This function estimates the L-moments of the Rice distribution given the parameters (\(\nu\) and \(\alpha\)) from parrice. The L-moments in terms of the parameters are complex. They are computed here by the system of maximum order statistic expectations from theoLmoms.max.ostat, which uses expect.max.ostat. The connection between \(\tau_2\) and \(\nu/\alpha\) and a special function (the Laguerre polynomial, LaguerreHalf) of \(\nu^2/\alpha^2\) and additional algebraic terms is tabulated in the R data.frame located within .lmomcohash$RiceTable. The file SysDataBuilder.R provides additional details.

Usage

lmomrice(para, ...)

Arguments

para

The parameters of the distribution.

...

Additional arguments passed to theoLmoms.max.ostat.

Value

An R list is returned.

lambdas

Vector of the L-moments. First element is \(\lambda_1\), second element is \(\lambda_2\), and so on.

ratios

Vector of the L-moment ratios. Second element is \(\tau\), third element is \(\tau_3\) and so on.

trim

Level of symmetrical trimming used in the computation, which is 0.

leftrim

Level of left-tail trimming used in the computation, which is NULL.

rightrim

Level of right-tail trimming used in the computation, which is NULL.

source

An attribute identifying the computational source of the L-moments: “lmomrice”, but the exact contents of the remainder of the string might vary as limiting distributions of Normal and Rayleigh can be involved for \(\nu/\alpha > 52\) (super high SNR, Normal) or \(24 < \nu/\alpha \le 52\) (high SNR, Normal) or \(\nu/\alpha < 0.08\) (very low SNR, Rayleigh).

References

Asquith, W.H., 2011, Distributional analysis with L-moment statistics using the R environment for statistical computing: Createspace Independent Publishing Platform, ISBN 978--146350841--8.

See Also

parrice, cdfrice, cdfrice, quarice

Examples

Run this code
# NOT RUN {
lmomrice(vec2par(c(65,34), type="rice"))

# Use the additional arguments to show how to avoid unnecessary overhead
# when using the Rice, which only has two parameters.
  rice <- vec2par(c(15,14), type="rice")
  system.time(lmomrice(rice, nmom=2)); system.time(lmomrice(rice, nmom=6))

  lcvs <- vector(mode="numeric"); i <- 0
  SNR  <- c(seq(7,0.25, by=-0.25), 0.1)
  for(snr in SNR) {
    i <- i + 1
    rice    <- vec2par(c(10,10/snr), type="rice")
    lcvs[i] <- lmomrice(rice, nmom=2)$ratios[2]
  }
  plot(lcvs, SNR,
       xlab="COEFFICIENT OF L-VARIATION",
       ylab="LOCAL SIGNAL TO NOISE RATIO (NU/ALPHA)")
  lines(.lmomcohash$RiceTable$LCV,
        .lmomcohash$RiceTable$SNR)
  abline(1,0, lty=2)
  mtext("Rice Distribution")
  text(0.15,0.5, "More noise than signal")
  text(0.15,1.5, "More signal than noise")
# }
# NOT RUN {
# A polynomial expression for the relation between L-skew and 
# L-kurtosis for the Rice distribution can be readily constructed.
T3 <- .lmomcohash$RiceTable$TAU3
T4 <- .lmomcohash$RiceTable$TAU4
LM <- lm(T4~T3+I(T3^2)+I(T3^3)+I(T3^4)+
               I(T3^5)+I(T3^6)+I(T3^7)+I(T3^8))
summary(LM) # note shown
# }

Run the code above in your browser using DataLab