Learn R Programming

VGAM (version 1.1-9)

rayleigh: Rayleigh Regression Family Function

Description

Estimating the parameter of the Rayleigh distribution by maximum likelihood estimation. Right-censoring is allowed.

Usage

rayleigh(lscale = "loglink", nrfs = 1/3 + 0.01,
            oim.mean = TRUE, zero = NULL, parallel = FALSE,
            type.fitted = c("mean", "percentiles", "Qlink"),
            percentiles = 50)
cens.rayleigh(lscale = "loglink", oim = TRUE)

Value

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

rrvglm

and vgam.

Arguments

lscale

Parameter link function applied to the scale parameter \(b\). See Links for more choices. A log link is the default because \(b\) is positive.

nrfs

Numeric, of length one, with value in \([0,1]\). Weighting factor between Newton-Raphson and Fisher scoring. The value 0 means pure Newton-Raphson, while 1 means pure Fisher scoring. The default value uses a mixture of the two algorithms, and retaining positive-definite working weights.

oim.mean

Logical, used only for intercept-only models. TRUE means the mean of the OIM elements are used as working weights. If TRUE then this argument has top priority for working out the working weights. FALSE means use another algorithm.

oim

Logical. For censored data only, TRUE means the Newton-Raphson algorithm, and FALSE means Fisher scoring.

zero, parallel

Details at CommonVGAMffArguments.

type.fitted, percentiles

See CommonVGAMffArguments for information. Using "Qlink" is for quantile-links in VGAMextra.

Warning

The theory behind the argument oim is not fully complete.

Author

T. W. Yee

Details

The Rayleigh distribution, which is used in physics, has a probability density function that can be written $$f(y) = y \exp(-0.5 (y/b)^2)/b^2$$ for \(y > 0\) and \(b > 0\). The mean of \(Y\) is \(b \sqrt{\pi / 2}\) (returned as the fitted values) and its variance is \(b^2 (4-\pi)/2\).

The VGAM family function cens.rayleigh handles right-censored data (the true value is greater than the observed value). To indicate which type of censoring, input extra = list(rightcensored = vec2) where vec2 is a logical vector the same length as the response. If the component of this list is missing then the logical values are taken to be FALSE. The fitted object has this component stored in the extra slot.

The VGAM family function rayleigh handles multiple responses.

References

Forbes, C., Evans, M., Hastings, N. and Peacock, B. (2011). Statistical Distributions, Hoboken, NJ, USA: John Wiley and Sons, Fourth edition.

See Also

Rayleigh, genrayleigh, riceff, maxwell, weibullR, poisson.points, simulate.vlm.

Examples

Run this code
nn <- 1000; Scale <- exp(2)
rdata <- data.frame(ystar = rrayleigh(nn, scale = Scale))
fit <- vglm(ystar ~ 1, rayleigh, data = rdata, trace = TRUE)
head(fitted(fit))
with(rdata, mean(ystar))
coef(fit, matrix = TRUE)
Coef(fit)

# Censored data
rdata <- transform(rdata, U = runif(nn, 5, 15))
rdata <- transform(rdata, y = pmin(U, ystar))
if (FALSE)  par(mfrow = c(1, 2))
hist(with(rdata, ystar)); hist(with(rdata, y)) 
extra <- with(rdata, list(rightcensored = ystar > U))
fit <- vglm(y ~ 1, cens.rayleigh, data = rdata, trace = TRUE,
            extra = extra, crit = "coef")
table(fit@extra$rightcen)
coef(fit, matrix = TRUE)
head(fitted(fit))

Run the code above in your browser using DataLab