I'm trying to implement a goodness-of-fit test for a bivariate distribution on the torus. In the univariate case, i use the distribution function to transform the data so it presents a uniform distribution, and from there i can use Rayleigh's test to obtain a significance level in correspondence with a $\chi^2_2$ distribution. My efforts were initially to apply a similar solution for the $(\theta_1,\theta_2)$ case, but it seems not a trivial problem. Literature did not provide a definite answer so far, so my question is.

How do you perform a goodness-of-fit test for bivariate angular distributions on the torus?

Is there a general methodology or should i specify the family of the distribution?



The most general approach for the univariate case is based on bootstrapping:

  1. Find the cumulative distribution function for the model $f(\theta \vert \boldsymbol\psi)$ under scrutiny, say $F(\theta \vert \boldsymbol\psi)$, where $\theta$ is an angle or direction, and $\boldsymbol\psi$ are some parameters of the model, which are usually estimated. For many circular models, computing $F(\theta \vert \boldsymbol\psi)$ involves numerical integration.
  2. For your sample $\boldsymbol\theta = \theta_1, \dots, \theta_n$, compute the values $2 \pi F(\theta_1), \dots, 2 \pi F(\theta_n)$.
  3. Choose a test statistic for circular uniformity, for example Kuiper's, Watson's, Rayleigh, or Rao Spacing test. Calculate the value for this test statistic for the set of values $2 \pi F(\theta_1), \dots, 2 \pi F(\theta_n)$.
  4. Generate a bootstrap sample of test statistics for uniform circular data sets with the same sample size as the original data.
  5. Obtain the proportion of values in the bootstrap sample which exceed the test statistic in for the set $2 \pi F(\theta_1), \dots, 2 \pi F(\theta_n)$, which will be the p-value.

For von Mises, Jones-Pewsey, and inverse Batschelet distributions, this is implemented in the workspace belonging to 'Circular Statistics in R', by Pewsey, Neuhauser & Ruxton (2013), and can be obtained by


This is general in the sense that the bootstrapping can be applied for each circular data model for which we can find a CDF.

However, the previous applies only to the univariate case. The bivariate case would technically require a test statistic for bivariate isotropy (circular uniformity). However, if $\Theta_1$ and $\Theta_2$ are independent, it would seem for some univariate test statistic $t$, we could calculate $t_1$ and $t_2$ for $\Theta_1$ and $\Theta_2$ respectively, and use $t_b = t_1 + t_2$ as the test statistic in the bootstrapping procedure. Precise properties of such a method have not been discussed in the literature.

For dependent samples $\Theta_1$ and $\Theta_2$, I am not aware of any test statistics in the literature.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.