View source: R/all_wnorm2_fns.R
rwnorm2 | R Documentation |
The bivariate Wrapped Normal distribution
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 )
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 two-column 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? |
The bivariate wrapped normal density at the point x = (x_1, x_2) is given by,
f(x) = √((κ_1 κ_2 - (κ_3)^2)) / (2π) ∑ \exp(-1/2 * (κ_1 (T_1)^2 + κ_2 (T_2)^2 + 2 κ_3 (T_1) (T_2)) )
where
T_1 = T_1(x, μ, ω) = (x_1 - μ_1(2πω_1))
T_2 = T_2(x, μ, ω) = (x_2 - μ_1(2πω_2))
the sum extends over all pairs of integers ω = (ω_1, ω_2),
and is approximated by a sum over (ω_1, ω_2) in \{-M, -M+1, ..., M-1, M \}^2 if int.displ =
M.
Note that above density is essentially the "wrapped" version of a bivariate normal density with mean
μ = (μ_1, μ_2)
and dispersion matrix Σ = Δ^{-1}, where
κ_1 | κ_3 | ||
Δ = | |||
κ_3 | κ_2. |
dwnorm2
gives the density and rwnorm2
generates random deviates.
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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.