riceff: Rice Distribution Family Function

Description Usage Arguments Details Value Note Author(s) References See Also Examples

View source: R/family.aunivariate.R

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.

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

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)[1])
coef(fit, matrix = TRUE)
Coef(fit)
summary(fit)

## End(Not run)

VGAM documentation built on Jan. 16, 2021, 5:21 p.m.