nakagami {VGAM} | R Documentation |
Estimation of the two parameters of the Nakagami distribution by maximum likelihood estimation.
nakagami(lshape = "loge", lscale = "loge", eshape = list(), escale = list(), ishape = NULL, iscale = 1)
lshape, lscale, eshape, escale |
Parameter link functions and extra arguments
applied to the
shape and scale parameters.
Log links ensure they are positive.
See |
ishape, iscale |
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(shape) and eta2=log(scale). 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))) fit = vglm(y1 ~ 1, nakagami, ndata, trace = TRUE, crit = "c") ndata = transform(ndata, y2 = rnaka(nn, shape = shape, scale = Scale)) fit = vglm(y2 ~ 1, nakagami(iscale = 3), ndata, trace = TRUE) head(fitted(fit)) with(ndata, mean(y2)) coef(fit, matrix = TRUE) (Cfit = Coef(fit)) ## Not run: with(ndata, hist(sy <- sort(y2), prob = TRUE, main = "", xlab = "y", ylim = c(0, 0.6))) lines(dnaka(sy, shape = Cfit[1], scale = Cfit[2]) ~ sy, ndata, col = "orange") ## End(Not run)