lmoment#
- scipy.stats.lmoment(sample, order=None, *, axis=0, sorted=False, standardize=True, nan_policy='propagate', keepdims=False)[source]#
計算來自連續分佈樣本的 L-動差
機率分佈的 L-動差是摘要統計量,其用途與傳統動差類似,但它們是根據順序統計量的期望值定義的。樣本 L-動差的定義與母體 L-動差類似,它們可以用作母體 L-動差的估計量。與傳統動差相比,它們對極端觀測值 (extreme observations) 的敏感度較低。
- 參數:
- samplearray_like (類陣列)
想要計算 L-動差的實數值樣本。
- orderarray_like (類陣列), optional (可選)
想要計算 L-動差的階數 (正整數)。必須是純量或非空的一維陣列。預設值為 [1, 2, 3, 4]。
- axisint 或 None, 預設值: 0
如果是整數,則為計算統計量的輸入軸。輸入的每個軸切片(例如,行)的統計量將出現在輸出的相應元素中。如果為
None
,則會在計算統計量之前將輸入展平。- sortedbool (布林值), 預設值=False (假)
sample 是否已沿著 axis 以遞增順序排序。如果為 False (預設值),則會對 sample 進行排序。
- standardizebool (布林值), 預設值=True (真)
是否傳回 3 階及更高階的 L-動差比率。L-動差比率類似於標準化傳統動差:它們是非標準化 L-動差除以 2 階 L-動差。
- nan_policy{‘propagate’ (傳播), ‘omit’ (省略), ‘raise’ (引發)}
定義如何處理輸入的 NaN。
propagate
(傳播):如果 NaN 出現在計算統計量的軸切片(例如,行)中,則輸出的相應條目將為 NaN。omit
(省略):執行計算時將省略 NaN。如果計算統計量的軸切片中剩餘的資料不足,則輸出的相應條目將為 NaN。raise
(引發):如果存在 NaN,則會引發ValueError
。
- keepdimsbool (布林值), 預設值: False (假)
如果設定為 True (真),則縮減的軸將保留在結果中,作為大小為一的維度。使用此選項,結果將針對輸入陣列正確廣播。
- 傳回值:
- lmomentsndarray (N 維陣列)
order 階的樣本 L-動差。
另請參閱
注意事項
從 SciPy 1.9 開始,
np.matrix
輸入(不建議用於新程式碼)在執行計算之前會轉換為np.ndarray
。在這種情況下,輸出將是純量或具有適當形狀的np.ndarray
,而不是二維np.matrix
。同樣地,雖然遮罩陣列的遮罩元素會被忽略,但輸出將是純量或np.ndarray
,而不是mask=False
的遮罩陣列。參考文獻
[1]D. Bilkova. “L-Moments and TL-Moments as an Alternative Tool of Statistical Data Analysis”. Journal of Applied Mathematics and Physics. 2014. DOI:10.4236/jamp.2014.210104
[2]J. R. M. Hosking. “L-Moments: Analysis and Estimation of Distributions Using Linear Combinations of Order Statistics”. Journal of the Royal Statistical Society. 1990. DOI:10.1111/j.2517-6161.1990.tb01775.x
[3]“L-moment”. Wikipedia (維基百科). https://en.wikipedia.org/wiki/L-moment.
範例
>>> import numpy as np >>> from scipy import stats >>> rng = np.random.default_rng() >>> sample = rng.exponential(size=100000) >>> stats.lmoment(sample) array([1.00124272, 0.50111437, 0.3340092 , 0.16755338])
請注意,標準指數分佈的前四個標準化母體 L-動差為 1、1/2、1/3 和 1/6;樣本 L-動差提供合理的估計值。