Learn R Programming

lmomco (version 1.7.3)

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 the theoLmoms.max.ostat, which uses the expect.max.ostat. The connection between $\tau_2$ and $\nu/\alpha$ and a special function (Laguerre polynomial) of $\nu^2/\alpha^2$ and additional algebraic terms is tabulated in the data frame located in .lmomcohash$RiceTable. The file SysDataBuilder.R provides additional technical details.

Usage

lmomrice(para, ...)

Arguments

para
The parameters of the distribution.
...
Additional arguments passed to the theoLmoms.max.ostat.

Value

  • An R list is returned.
  • lambdasVector of the L-moments. First element is $\lambda_1$, second element is $\lambda_2$, and so on.
  • ratiosVector of the L-moment ratios. Second element is $\tau$, third element is $\tau_3$ and so on.
  • trimLevel of symmetrical trimming used in the computation, which will equal NULL until trimming support is made.
  • leftrimLevel of left-tail trimming used in the computation, which will equal NULL until trimming support is made.
  • rightrimLevel of right-tail trimming used in the computation, which will equal NULL until trimming support is made.
  • sourceAn 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).

See Also

parrice, quarice, cdfrice, theoLmoms.max.ostat

Examples

Run this code
rice <- vec2par(c(65,34), type="rice")
lmomrice(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")


# 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)
Residuals:
       Min         1Q     Median         3Q        Max
-4.585e-05 -1.936e-05  6.640e-07  1.905e-05  1.221e-04

Coefficients:
              Estimate Std. Error   t value Pr(>|t|)
(Intercept)  1.226e-01  7.997e-07 153348.44   <2e-16
T3          -1.782e-01  6.447e-04   -276.45   <2e-16
I(T3^2)     -3.005e+01  1.174e-01   -255.95   <2e-16
I(T3^3)      1.512e+03  8.536e+00    177.18   <2e-16
I(T3^4)     -4.017e+04  3.089e+02   -130.03   <2e-16
I(T3^5)      6.365e+05  6.097e+03    104.38   <2e-16
I(T3^6)     -5.885e+06  6.672e+04    -88.21   <2e-16
I(T3^7)      2.925e+07  3.799e+05     76.98   <2e-16
I(T3^8)     -6.020e+07  8.778e+05    -68.58   <2e-16
---
Residual standard error: 2.009e-05 on 2685 degrees
of freedom. Multiple R-squared: 1,
Adjusted R-squared: 1 F-statistic: 5.37e+07 on 8
and 2685 DF, p-value: < 2.2e-16

Run the code above in your browser using DataLab