gstd#
- scipy.stats.gstd(a, axis=0, ddof=1)[原始碼]#
計算陣列的幾何標準差。
幾何標準差描述一組數字的分散程度,其中幾何平均數是首選。它是一個乘法因子,因此是一個無因次量。
它定義為觀測值自然對數的標準差的指數。
- 參數:
- aarray_like
包含有限、嚴格正實數的陣列。
Deprecated since version 1.14.0: 自 SciPy 1.14.0 版本起,已棄用對遮罩陣列輸入的支援,並將在 1.16.0 版本中移除。
- axisint、tuple 或 None,選用
要沿其運算的軸。預設值為 0。如果為 None,則在整個陣列 a 上計算。
- ddofint,選用
幾何標準差計算中的自由度校正。預設值為 1。
- 返回:
- gstdndarray 或 float
幾何標準差的陣列。如果 axis 為 None 或 a 是一維陣列,則返回 float。
註解
在數學上,樣本幾何標準差 \(s_G\) 可以根據觀測值的自然對數 \(y_i = \log(x_i)\) 定義
\[s_G = \exp(s), \quad s = \sqrt{\frac{1}{n - d} \sum_{i=1}^n (y_i - \bar y)^2}\]其中 \(n\) 是觀測值的數量,\(d\) 是自由度的調整 ddof,而 \(\bar y\) 表示觀測值自然對數的平均值。請注意,預設的
ddof=1
與類似函數(例如numpy.std
和numpy.var
)使用的預設值不同。當觀測值為無限大時,幾何標準差為 NaN(未定義)。非正觀測值也會在輸出中產生 NaN,因為自然對數(與複數對數相反)僅針對正實數定義且有限。幾何標準差有時會與標準差的指數
exp(std(a))
混淆。相反地,幾何標準差是exp(std(log(a)))
。參考文獻
[1]“幾何標準差”,維基百科,https://en.wikipedia.org/wiki/Geometric_standard_deviation。
[2]Kirkwood, T. B., “幾何平均數和離散度量度”,生物統計學,第 35 卷,第 908-909 頁,1979 年
範例
找出對數常態分佈樣本的幾何標準差。請注意,分佈的標準差為 1;在對數尺度上,這大約等於
exp(1)
。>>> import numpy as np >>> from scipy.stats import gstd >>> rng = np.random.default_rng() >>> sample = rng.lognormal(mean=0, sigma=1, size=1000) >>> gstd(sample) 2.810010162475324
計算多維陣列和給定軸的幾何標準差。
>>> a = np.arange(1, 25).reshape(2, 3, 4) >>> gstd(a, axis=None) 2.2944076136018947 >>> gstd(a, axis=2) array([[1.82424757, 1.22436866, 1.13183117], [1.09348306, 1.07244798, 1.05914985]]) >>> gstd(a, axis=(1,2)) array([2.12939215, 1.22120169])