View source: R/family.univariate.R
nakagami | 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, zero = "shape")
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 |
zero |
See |
The Nakagami distribution, which is useful for modelling wireless systems such as radio links, can be written
f(y) = 2 (shape/scale)^{shape} y^{2 \times shape-1}
\exp(-shape \times y^2/scale) / \Gamma(shape)
for y > 0
, shape > 0
, scale > 0
.
The mean of Y
is
\sqrt{scale/shape} \times \Gamma(shape+0.5) /
\Gamma(shape)
and these are returned as the fitted values.
By default, the linear/additive predictors are
\eta_1=\log(scale)
and
\eta_2=\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.
rnaka
,
gamma2
,
rayleigh
.
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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.