circcorrcoef#

astropy.stats.circcorrcoef(alpha: NDArray | Quantity, beta: NDArray | Quantity, axis: int | None = None, weights_alpha: NDArray | None = None, weights_beta: NDArray | None = None) NDArray | Quantity[source]#

Computes the circular correlation coefficient between two array of circular data.

Parameters:
alphandarray or Quantity

Array of circular (directional) data, which is assumed to be in radians whenever data is numpy.ndarray.

betandarray or Quantity

Array of circular (directional) data, which is assumed to be in radians whenever data is numpy.ndarray.

axisint, optional

Axis along which circular correlation coefficients are computed. The default is the compute the circular correlation coefficient of the flattened array.

weights_alphanumpy.ndarray, optional

In case of grouped data, the i-th element of weights_alpha represents a weighting factor for each group such that sum(weights_alpha, axis) equals the number of observations. See [1], remark 1.4, page 22, for detailed explanation.

weights_betanumpy.ndarray, optional

See description of weights_alpha.

Returns:
rhondarray or Quantity [:ref: ‘dimensionless’]

Circular correlation coefficient.

References

[1]

S. R. Jammalamadaka, A. SenGupta. “Topics in Circular Statistics”. Series on Multivariate Analysis, Vol. 5, 2001.

[2]

C. Agostinelli, U. Lund. “Circular Statistics from ‘Topics in Circular Statistics (2001)’”. 2015. <https://cran.r-project.org/web/packages/CircStats/CircStats.pdf>

Examples

>>> import numpy as np
>>> from astropy.stats import circcorrcoef
>>> from astropy import units as u
>>> alpha = np.array([356, 97, 211, 232, 343, 292, 157, 302, 335, 302,
...                   324, 85, 324, 340, 157, 238, 254, 146, 232, 122,
...                   329])*u.deg
>>> beta = np.array([119, 162, 221, 259, 270, 29, 97, 292, 40, 313, 94,
...                  45, 47, 108, 221, 270, 119, 248, 270, 45, 23])*u.deg
>>> circcorrcoef(alpha, beta) 
<Quantity 0.2704648826748831>