R: Rice Distribution Family Function

riceff {VGAM} | R Documentation

## Rice Distribution Family Function

### Description

Estimates the two parameters of a Rice distribution by maximum likelihood estimation.

### Usage

    riceff(lsigma = "loge", lvee = "loge", isigma = NULL,
           ivee = NULL, nsimEIM = 100, zero = NULL, nowarning = FALSE)

### Arguments

`nowarning` | Logical. Suppress a warning? Ignored for VGAM 0.9-7 and higher.
`lvee, lsigma` | Link functions for the v and sigma parameters. See `Links` for more choices and for general information.
`ivee, isigma` | Optional initial values for the parameters. If convergence failure occurs (this VGAM family function seems to require good initial values) try using these arguments. See `CommonVGAMffArguments` for more information.
`nsimEIM, zero` | See `CommonVGAMffArguments` for information.

### Details

The Rician distribution has density function

f(y;v,sigma) = (y/sigma^2) * exp(-(y^2+v^2) / (2*sigma^2)) * I_0(y*v/sigma^2)

where y > 0, v > 0, σ > 0 and I_0 is the modified Bessel function of the first kind with order zero. When v = 0 the Rice distribution reduces to a Rayleigh distribution. The mean is sigma*sqrt(pi/2) * exp(z/2)*((1-z) * I_0(-z/2)-z*I_1(-z/2)) (returned as the fitted values) where z=-v^2/(2*sigma^2). Simulated Fisher scoring is implemented.

### Value

An object of class `"vglmff"` (see `vglmff-class`). The object is used by modelling functions such as `vglm` and `vgam`.

### Note

Convergence problems may occur for data where v=0; if so, use `rayleigh` or possibly use an `identity` link.

When v is large (greater than 3, say) then the mean is approximately v and the standard deviation is approximately sigma.

### Author(s)

T. W. Yee

### References

Rice, S. O. (1945) Mathematical Analysis of Random Noise. Bell System Technical Journal, 24, 46–156.

### See Also

`drice`, `rayleigh`, `besselI`, `simulate.vlm`.

### Examples

    ## Not run:  sigma <- exp(1); vee <- exp(2)
    rdata <- data.frame(y = rrice(n <- 1000, sigma, vee = vee))
    fit <- vglm(y ~ 1, riceff, data = rdata, trace = TRUE, crit = "coef")
    c(with(rdata, mean(y)), fitted(fit)[1])
    coef(fit, matrix = TRUE)
    Coef(fit)
    summary(fit)

    ## End(Not run)

[Package VGAM version 1.0-3 Index]