rwnorm2 {BAMBI}  R Documentation 
The bivariate Wrapped Normal distribution
Description
The bivariate Wrapped Normal distribution
Usage
rwnorm2(n, kappa1 = 1, kappa2 = 1, kappa3 = 0, mu1 = 0, mu2 = 0, ...)
dwnorm2(
x,
kappa1 = 1,
kappa2 = 1,
kappa3 = 0,
mu1 = 0,
mu2 = 0,
int.displ,
log = FALSE
)
Arguments
n 
number of observations. Ignored if at least one of the other parameters have length k > 1, in which case, all the parameters are recycled to length k to produce k random variates. 
kappa1 , kappa2 , kappa3 
vectors of concentration parameters; 
mu1 , mu2 
vectors of mean parameters. 
... 
additional arguments passed to rmvnorm from package 
x 
bivariate vector or a twocolumn matrix with each row being a bivariate vector of angles (in radians) where the densities are to be evaluated. 
int.displ 
integer displacement. If 
log 
logical. Should the log density be returned instead? 
Details
The bivariate wrapped normal density at the point x = (x_1, x_2)
is given by,
f(x) = \sqrt((\kappa_1 \kappa_2  (\kappa_3)^2)) / (2\pi) \sum \exp(1/2 * (\kappa_1 (T_1)^2 + \kappa_2 (T_2)^2 + 2 \kappa_3 (T_1) (T_2)) )
where
T_1 = T_1(x, \mu, \omega) = (x_1  \mu_1(2\pi\omega_1))
T_2 = T_2(x, \mu, \omega) = (x_2  \mu_1(2\pi\omega_2))
the sum extends over all pairs of integers \omega = (\omega_1, \omega_2)
,
and is approximated by a sum over (\omega_1, \omega_2)
in \{M, M+1, ..., M1, M \}^2
if int.displ =
M
.
Note that above density is essentially the "wrapped" version of a bivariate normal density with mean
\mu = (\mu_1, \mu_2)
and dispersion matrix \Sigma = \Delta^{1}
, where
\kappa_1   \kappa_3 

\Delta =    
\kappa_3   \kappa_2 .

Value
dwnorm2
gives the density and rwnorm2
generates random deviates.
Examples
kappa1 < c(1, 2, 3)
kappa2 < c(1, 6, 5)
kappa3 < c(0, 1, 2)
mu1 < c(1, 2, 5)
mu2 < c(0, 1, 3)
x < diag(2, 2)
n < 10
# when x is a bivariate vector and parameters are all scalars,
# dwnorm2 returns single density
dwnorm2(x[1, ], kappa1[1], kappa2[1], kappa3[1], mu1[1], mu2[1])
# when x is a two column matrix and parameters are all scalars,
# dmvsin returns a vector of densities calculated at the rows of
# x with the same parameters
dwnorm2(x, kappa1[1], kappa2[1], kappa3[1], mu1[1], mu2[1])
# if x is a bivariate vector and at least one of the parameters is
# a vector, all parameters are recycled to the same length, and
# dwnorm2 returns a vector of with ith element being the density
# evaluated at x with parameter values kappa1[i], kappa2[i],
# kappa3[i], mu1[i] and mu2[i]
dwnorm2(x[1, ], kappa1, kappa2, kappa3, mu1, mu2)
# if x is a two column matrix and at least one of the parameters is
# a vector, rows of x and the parameters are recycled to the same
# length, and dwnorm2 returns a vector of with ith element being the
# density evaluated at ith row of x with parameter values kappa1[i],
# kappa2[i], # kappa3[i], mu1[i] and mu2[i]
dwnorm2(x, kappa1, kappa2, kappa3, mu1, mu2)
# when parameters are all scalars, number of observations generated
# by rwnorm2 is n
rwnorm2(n, kappa1[1], kappa2[1], kappa3[1], mu1[1], mu2[1])
# when at least one of the parameters is a vector, all parameters are
# recycled to the same length, n is ignored, and the number of
# observations generated by rwnorm2 is the same as the length of the
# recycled vectors
rwnorm2(n, kappa1, kappa2, kappa3, mu1, mu2)