circ_varcor_model {BAMBI} | R Documentation |
Analytic circular variances and correlations for bivariate angular models
Description
Analytic circular variances and correlations for bivariate angular models
Usage
circ_varcor_model(
model = "vmsin",
kappa1 = 1,
kappa2 = 1,
kappa3 = 0,
mu1 = 0,
mu2 = 0,
nsim = 10000,
...
)
Arguments
model |
bivariate angular model. Must be one of |
kappa1 , kappa2 , kappa3 |
concentration and covariance parameters.
Recycled to the same size. kappa3^2 must be < kappa1*kappa2 in the wnorm2 model
(see rwnorm2 for a detailed parameterization of |
mu1 , mu2 |
mean parameters. Ignored as they do not play any role in the analytical formulas. |
nsim |
Monte Carlo sample size. Ignored if all of |
... |
additional model specific argment |
Details
The function computes the analytic circular variances and correlations (both Jammalamadaka-Sarma (JS) and Fisher-Lee (FL) forms) for von Mises sine, von Mises cosine and bivariate wrapped normal distributions.
For wnorm2
, expressions for the circular variances,
JS and FL correlation coefficients can be found in Mardia and Jupp (2009),
Jammalamadaka and Sarma (1988) and Fisher and Lee (1983) respectively.
For vmsin
and vmcos
these expressions are provided in Chakraborty and Wong (2018).
Because the analytic expressions in vmsin
and vmcos
models involve infinite sums
of product of Bessel functions,
if any of kappa1
, kappa2
and abs(kappa3)
is larger
than or equal to 150, IID Monte Carlo with sample size nsim
is used
to approximate rho_js
for numerical stability. From rho_js
,
rho_fl
is computed using Corollary 2.2 in
Chakraborty and Wong (2018), which makes cost-complexity for
the rho_fl
evaluation to be of order O(nsim
) for vmsin
and vmcos
models. (In general, rho_fl
evaluation
is of order O(nsim
^2)).
In addition, for the vmcos
model, when -150 < kappa3 < -1
or 50 < max(kappa1, kappa2, abs(kappa3)) <= 150
, the analytic formulas
in Chakraborty and Wong (2018) are used; however, the reciprocal of the normalizing
constant and its partial derivatives are all calculated numerically via (quasi) Monte carlo method for
numerical stability. These (quasi) random numbers can be provided through the
argument qrnd
, which must be a two column matrix, with each element being
a (quasi) random number between 0 and 1. Alternatively, if n_qrnd
is
provided (and qrnd
is missing), a two dimensional sobol sequence of size n_qrnd
is
generated via the function sobol from the R package qrng
. If none of qrnd
or n_qrnd
is available, a two dimensional sobol sequence of size 1e4 is used.
Value
Returns a list with elements var1
, var2
(circular variances for the
first and second coordinates), rho_fl
and rho_js
(circular correlations).
See details.
References
Fisher, N. I. and Lee, A. (1983). A correlation coefficient for circular data. Biometrika, 70(2):327-332.
Jammalamadaka, S. R. and Sarma, Y. (1988). A correlation coefficient for angular variables. Statistical theory and data analysis II, pages 349-364.
Mardia, K. and Jupp, P. (2009). Directional Statistics. Wiley Series in Probability and Statistics. Wiley.
Chakraborty, S. and Wong, S, W.K. (2018). On the circular correlation coefficients for bivariate von Mises distributions on a torus. arXiv e-print.
Examples
circ_varcor_model("vmsin", kappa1= 1, kappa2 = 2, kappa3 = 3)
# Monte Carlo approximation
set.seed(1)
dat <- rvmsin(1000, 1, 2, 3)
# sample circular variance
circ_var <- function(x)
1 - mean(cos(x - atan2(mean(sin(x)), mean(cos(x))) ))
circ_var(dat[, 1])
circ_var(dat[, 2])
circ_cor(dat, "fl")
circ_cor(dat, "js")