本文簡要介紹 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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。