# riceff: Rice Distribution Family Function In VGAM: Vector Generalized Linear and Additive Models

## Description

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

## Usage

 ```1 2``` ```riceff(lsigma = "loglink", lvee = "loglink", 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.

T. W. Yee

## References

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

`drice`, `rayleigh`, `besselI`, `simulate.vlm`.
 ```1 2 3 4 5 6 7 8 9``` ```## 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)) coef(fit, matrix = TRUE) Coef(fit) summary(fit) ## End(Not run) ```