scipy.stats.
gzscore#
- scipy.stats.gzscore(a, *, axis=0, ddof=0, nan_policy='propagate')[原始碼]#
計算幾何標準分數。
計算樣本中每個嚴格正值的幾何 z 分數,相對於幾何平均數和標準差。數學上,幾何 z 分數可以評估為
gzscore = log(a/gmu) / log(gsigma)
其中
gmu
(resp.gsigma
) 是幾何平均數 (resp. 標準差)。- 參數:
- aarray_like
樣本資料。
- axisint 或 None,可選
要沿其運算的軸。預設值為 0。如果為 None,則對整個陣列 a 進行計算。
- ddofint,可選
標準差計算中的自由度校正。預設值為 0。
- nan_policy{‘propagate’, ‘raise’, ‘omit’},可選
定義輸入包含 nan 時的處理方式。 ‘propagate’ 返回 nan,‘raise’ 拋出錯誤,‘omit’ 執行計算時忽略 nan 值。預設值為 ‘propagate’。 請注意,當值為 ‘omit’ 時,輸入中的 nan 也會傳播到輸出,但它們不會影響為非 nan 值計算的幾何 z 分數。
- 返回:
- gzscorearray_like
幾何 z 分數,通過輸入陣列 a 的幾何平均數和幾何標準差標準化。
註解
此函數保留 ndarray 子類別,並且也適用於矩陣和遮罩陣列(它使用
asanyarray
而不是asarray
作為參數)。在 1.8 版本中新增。
參考文獻
[1]“Geometric standard score”, Wikipedia, https://en.wikipedia.org/wiki/Geometric_standard_deviation#Geometric_standard_score。
範例
從對數常態分佈中繪製樣本
>>> import numpy as np >>> from scipy.stats import zscore, gzscore >>> import matplotlib.pyplot as plt
>>> rng = np.random.default_rng() >>> mu, sigma = 3., 1. # mean and standard deviation >>> x = rng.lognormal(mu, sigma, size=500)
顯示樣本的直方圖
>>> fig, ax = plt.subplots() >>> ax.hist(x, 50) >>> plt.show()
顯示通過經典 z 分數標準化的樣本直方圖。分佈已重新調整,但其形狀未改變。
>>> fig, ax = plt.subplots() >>> ax.hist(zscore(x), 50) >>> plt.show()
證明幾何 z 分數的分佈已重新調整且近似常態
>>> fig, ax = plt.subplots() >>> ax.hist(gzscore(x), 50) >>> plt.show()