Learn R Programming

VGAM (version 0.9-6)

Rice: The Rice Distribution

Description

Density, distribution function, quantile function and random generation for the Rician distribution.

Usage

drice(x, sigma, vee, log = FALSE)
price(q, sigma, vee, lower.tail = TRUE, ...)
qrice(p, sigma, vee, ...)
rrice(n, sigma, vee)

Arguments

x, q
vector of quantiles.
p
vector of probabilities.
n
number of observations. Same as in runif.
vee, sigma
See riceff.
...
Other arguments such as lower.tail.
lower.tail
Logical. If TRUE then the LHS area, else the RHS area.
log
Logical. If log = TRUE then the logarithm of the density is returned.

Value

  • drice gives the density, price gives the distribution function, qrice gives the quantile function, and rrice generates random deviates.

Details

See riceff, the VGAM family function for estimating the two parameters, for the formula of the probability density function and other details.

Formulas for price() and qrice() are based on the Marcum-Q function.

See Also

riceff.

Examples

Run this code
x <- seq(0.01, 7, len = 201)
plot(x, drice(x, vee = 0, sigma = 1), type = "n", las = 1,, ylab = "",
     main = "Density of Rice distribution for various values of v")
sigma <- 1; vee <- c(0, 0.5, 1, 2, 4)
for (ii in 1:length(vee))
  lines(x, drice(x, vee = vee[ii], sigma), col = ii)
legend(x = 5, y = 0.6, legend = as.character(vee),
       col = 1:length(vee), lty = 1)

x <- seq(0, 4, by = 0.01); vee <- 1; sigma <- 1
probs <- seq(0.05, 0.95, by = 0.05)
plot(x, drice(x, vee = vee, sigma = sigma), type = "l", col = "blue",
     main = "Blue is density, orange is cumulative distribution function",
     ylim = c(0, 1), sub = "Purple are 5, 10, ..., 95 percentiles",
     las = 1, ylab = "", cex.main = 0.9)
abline(h = 0:1, col = "black", lty = 2)
Q <- qrice(probs, sigma, vee = vee)
lines(Q, drice(qrice(probs, sigma, vee = vee),
               sigma, vee = vee), col = "purple", lty = 3, type = "h")
lines(x, price(x, sigma, vee = vee), type = "l", col = "orange")
lines(Q, drice(Q, sigma, vee = vee), col = "purple", lty = 3, type = "h")
lines(Q, price(Q, sigma, vee = vee), col = "purple", lty = 3, type = "h")
abline(h = probs, col = "purple", lty = 3)
max(abs(price(Q, sigma, vee = vee) - probs))  # Should be 0

Run the code above in your browser using DataLab