riceff: Rice Distribution Family Function

View source: R/family.aunivariate.R

riceffR Documentation

Rice Distribution Family Function

Description

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

Usage

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) = \frac{y}{\sigma^2} \, \exp(-(y^2+v^2) / (2\sigma^2)) \, I_0(y v / \sigma^2)

where y > 0, v > 0, \sigma > 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 = "c")
c(with(rdata, mean(y)), fitted(fit)[1])
coef(fit, matrix = TRUE)
Coef(fit)
summary(fit)

## End(Not run)

VGAM documentation built on Sept. 18, 2024, 9:09 a.m.