nakagami {VGAM} | R Documentation |
Estimation of the two parameters of the Nakagami distribution by maximum likelihood estimation.
nakagami(lscale = "loglink", lshape = "loglink", iscale = 1, ishape = NULL, nowarning = FALSE)
nowarning |
Logical. Suppress a warning? |
lscale, lshape |
Parameter link functions applied to the
scale and shape parameters.
Log links ensure they are positive.
See |
iscale, ishape |
Optional initial values for the shape and scale parameters.
For |
The Nakagami distribution, which is useful for modelling wireless systems such as radio links, can be written
2 * (shape/scale)^shape * y^(2*shape-1) * exp(-shape*y^2/scale) / gamma(shape)
for y > 0, shape > 0, scale > 0. The mean of Y is sqrt(scale/shape) * gamma(shape+0.5) / gamma(shape) and these are returned as the fitted values. By default, the linear/additive predictors are eta1=log(scale) and eta2=log(shape). Fisher scoring is implemented.
An object of class "vglmff"
(see vglmff-class
).
The object is used by modelling functions such as vglm
,
and vgam
.
The Nakagami distribution is also known as the Nakagami-m distribution, where m=shape here. Special cases: m=0.5 is a one-sided Gaussian distribution and m=1 is a Rayleigh distribution. The second moment is E(Y^2)=m.
If Y has a Nakagami distribution with parameters shape and scale then Y^2 has a gamma distribution with shape parameter shape and scale parameter scale/shape.
T. W. Yee
Nakagami, M. (1960). The m-distribution: a general formula of intensity distribution of rapid fading, pp.3–36 in: Statistical Methods in Radio Wave Propagation. W. C. Hoffman, Ed., New York: Pergamon.
nn <- 1000; shape <- exp(0); Scale <- exp(1) ndata <- data.frame(y1 = sqrt(rgamma(nn, shape = shape, scale = Scale/shape))) nfit <- vglm(y1 ~ 1, nakagami, data = ndata, trace = TRUE, crit = "coef") ndata <- transform(ndata, y2 = rnaka(nn, scale = Scale, shape = shape)) nfit <- vglm(y2 ~ 1, nakagami(iscale = 3), data = ndata, trace = TRUE) head(fitted(nfit)) with(ndata, mean(y2)) coef(nfit, matrix = TRUE) (Cfit <- Coef(nfit)) ## Not run: sy <- with(ndata, sort(y2)) hist(with(ndata, y2), prob = TRUE, main = "", xlab = "y", ylim = c(0, 0.6), col = "lightblue") lines(dnaka(sy, scale = Cfit["scale"], shape = Cfit["shape"]) ~ sy, data = ndata, col = "orange") ## End(Not run)