scipy.stats.

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。

另請參閱

gmean

幾何平均數

numpy.std

標準差

gzscore

幾何標準分數

註解

在數學上,樣本幾何標準差 \(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.stdnumpy.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])