本文简要介绍 python 语言中 scipy.stats.directional_stats
的用法。
用法:
scipy.stats.directional_stats(samples, *, axis=0, normalize=True)#
计算方向数据的样本统计量。
计算向量样本的方向平均值(也称为平均方向向量)和平均合成长度。
方向平均值是矢量数据“preferred direction”的度量。它类似于样本均值,但它适用于数据长度不相关的情况(例如单位向量)。
平均合成长度是一个介于 0 和 1 之间的值,用于量化定向数据的色散:平均合成长度越小,色散越大。 [1] 和 [2] 中给出了涉及平均合成长度的方向方差的几个定义。
- samples: array_like
输入数组。必须至少是二维的,并且输入的最后一个轴必须与向量空间的维数相对应。当输入恰好是二维时,这意味着数据的每一行都是向量观察。
- axis: 整数,默认值:0
计算方向平均值的轴。
- normalize: boolean, default: True:
如果为 True,则对输入进行归一化以确保每个观测值都是单位向量。如果观测值已经是单位向量,请考虑将其设置为 False 以避免不必要的计算。
- res: DirectionalStats
包含属性的对象:
- mean_direction ndarray
方向平均值。
- mean_resultant_length ndarray
平均合成长度[1]。
参数 ::
返回 ::
注意:
这使用了[1]中的方向平均值的定义。假设观测值是单位向量,计算如下。
mean = samples.mean(axis=0) mean_resultant_length = np.linalg.norm(mean) mean_direction = mean / mean_resultant_length
该定义适用于方向数据(即与每个观测值的大小无关的矢量数据),但不适用于轴向数据(即与每个观测值的大小和符号无关的矢量数据)。
涉及平均合成长度的方向方差的几种定义
R
已提出建议,包括1 - R
[1],1 - R**2
[2], 和2 * (1 - R)
[2]。该函数不是选择一个,而是返回R
作为属性mean_resultant_length这样用户就可以计算他们首选的色散度量。参考:
[1] (1,2,3,4)玛迪亚、朱普。 (2000)。方向统计(第 163 页)。威利。
例子:
>>> import numpy as np >>> from scipy.stats import directional_stats >>> data = np.array([[3, 4], # first observation, 2D vector space ... [6, -8]]) # second observation >>> dirstats = directional_stats(data) >>> dirstats.mean_direction array([1., 0.])
相反,向量的常规样本均值会受到每个观测值大小的影响。此外,结果不会是单位向量。
>>> data.mean(axis=0) array([4.5, -2.])
一个示例性用例
directional_stats
就是找到一个有意义的球体上一组观测值的中心,例如地理位置。>>> data = np.array([[0.8660254, 0.5, 0.], ... [0.8660254, -0.5, 0.]]) >>> dirstats = directional_stats(data) >>> dirstats.mean_direction array([1., 0., 0.])
另一方面,常规样本平均值产生的结果并不位于球体的表面上。
>>> data.mean(axis=0) array([0.8660254, 0., 0.])
该函数还返回平均结果长度,可用于计算方向方差。例如,使用[2]中的定义
Var(z) = 1 - R
,其中R
是平均结果长度,我们可以将上例中向量的方向方差计算为:>>> 1 - dirstats.mean_resultant_length 0.13397459716167093
相关用法
- Python SciPy stats.dirichlet_multinomial用法及代码示例
- Python SciPy stats.dirichlet用法及代码示例
- Python SciPy stats.differential_entropy用法及代码示例
- Python SciPy stats.dweibull用法及代码示例
- Python SciPy stats.dunnett用法及代码示例
- Python SciPy stats.dgamma用法及代码示例
- Python SciPy stats.describe用法及代码示例
- Python SciPy stats.dlaplace用法及代码示例
- Python SciPy stats.anderson用法及代码示例
- Python SciPy stats.iqr用法及代码示例
- Python SciPy stats.genpareto用法及代码示例
- Python SciPy stats.skewnorm用法及代码示例
- Python SciPy stats.cosine用法及代码示例
- Python SciPy stats.norminvgauss用法及代码示例
- Python SciPy stats.invwishart用法及代码示例
- Python SciPy stats.bartlett用法及代码示例
- Python SciPy stats.levy_stable用法及代码示例
- Python SciPy stats.page_trend_test用法及代码示例
- Python SciPy stats.itemfreq用法及代码示例
- Python SciPy stats.exponpow用法及代码示例
- Python SciPy stats.gumbel_l用法及代码示例
- Python SciPy stats.chisquare用法及代码示例
- Python SciPy stats.semicircular用法及代码示例
- Python SciPy stats.gzscore用法及代码示例
- Python SciPy stats.gompertz用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.stats.directional_stats。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。