Learn R Programming

shotGroups (version 0.7.1)

Hoyt: The Hoyt Distribution

Description

Density, distribution function, quantile function, and random deviate generation for the Hoyt distribution. The radius around the true mean in a bivariate normal random variable, re-written in polar coordinates (radius and angle), follows a Hoyt distribution. Equivalently, the modulus of a complex normal random variable does.

Usage

dHoyt(x, qpar, omega) pHoyt(q, qpar, omega, lower.tail = TRUE) qHoyt(p, qpar, omega, lower.tail = TRUE, loUp = NULL) rHoyt(n, qpar, omega, method = c('eigen', 'chol', 'cdf'), loUp = NULL)

Arguments

x, q
vector of quantiles.
p
vector of probabilities.
n
number of observations. If length(n) > 1, the length is taken to be the number required.
qpar
vector of Hoyt shape parameters q. See details.
omega
vector of Hoyt scale parameters omega. See details.
method
string indicating which method to use for generating random deviates. See details.
loUp
search interval for numerical root finding. Either a vector with the lower and upper interval boundary, a list of such vectors, or an (n x 2)-matrix. See details.
lower.tail
logical. If TRUE (default), probabilities are $P[X \le x]$ otherwise, $P[X > x]$.

Value

dHoyt gives the density, pHoyt gives the cumulative distribution function, qHoyt gives the quantile function, rHoyt generates random deviates.The length of the result is determined by n for rHoyt, and is the maximum of the lengths of the numerical parameters for the other functions.In dHoyt, pHoyt and qHoyt, the numerical parameters are recycled to the length of the result. Only the first element of the logical parameters is used. In rHoyt, only the first element of qpar and omega is used.

Details

The parameters qpar and omega may be determined with getHoytParam.

dHoyt involves the modified Bessel function of the first kind and order 0 (Chew & Boye, 1962; Hoyt, 1947). pHoyt is implemented as the symmetric difference between two Marcum Q-functions (Paris, 2009). The Marcum Q-function is the cdf of a non-central chi^2 variable (Nuttall, 1975).

qHoyt is implemented through numerical root finding of pHoyt. If no search interval for uniroot is provided, the quantiles of an approximating central chi^2 distribution are used to determine the search intervals.

rHoyt with method='eigen' or with method='chol' simulates 2D normal deviates based on the covariance matrix corresponding to parameters qpar and omega, and then determines the radius. rHoyt with method='cdf' is much slower as it performs numerical root finding of pHoyt given simulated quantiles from a uniform random variable in (0,1). If no search interval for uniroot is provided, the quantiles of an approximating central chi^2 distribution are used to determine the search intervals.

See Rice for the distribution of radial error around an offset center for uncorrelated bivariate normal variables with equal variances. See Rayleigh for the distribution of radial error around the true center of uncorrelated bivariate normal variables with equal variances. See mvnEll for the distribution of radial error around an offset center for correlated normal variables with unequal variances.

References

Chew, V. & Boyce, R. (1962). Distribution of radial error in bivariate elliptical normal distributions. Technometrics, 4(1), 138-140.

Hoyt, R. S. (1947). Probability functions for the modulus and angle of the normal complex variate. Bell System Technical Journal, 26(2), 318-359.

Nuttall, AH. (1975). Some integrals involving the Q-M function. IEEE Transactions on Information Theory, 21 (1), 95-96

Paris, JF. 2009. Nakagami-q (Hoyt) distribution function with applications. Electronics Letters, 45(4). 210-211. Erratum: doi:10.1049/el.2009.0828

http://reference.wolfram.com/language/ref/HoytDistribution.html

See Also

getHoytParam, Rayleigh, Rice, mvnEll, Bessel, Chisquare, uniroot

Examples

Run this code
dHoyt(1, qpar=c(0.1, 0.5, 0.9), omega=10)
pHoyt(c(0.1, 0.5, 0.9), qpar=0.5, omega=10)
qHoyt(0.5, qpar=0.5, omega=c(5, 10, 15))
rHoyt(5, qpar=0.5, omega=10)

Run the code above in your browser using DataLab