scipy.stats.Uniform.
眾數#
- Uniform.mode(*, method=None)[原始碼]#
眾數 (最可能的值)
非正式地說,眾數是隨機變數最有可能取的值。也就是說,眾數是支撐集 \(\chi\) 中使機率密度函數 \(f(x)\) 最大化的元素
\[\text{mode} = \arg\max_{x \in \chi} f(x)\]- 參數:
- method{None, ‘formula’, ‘optimization’}
用於評估眾數的策略。預設情況下 (
None
>),基礎架構會在以下選項之間選擇,並依優先順序排列。'formula'
:使用公式計算中位數'optimization'
:以數值方式最大化 PDF
並非所有 method 選項都適用於所有分佈。如果選擇的 method 不可用,將會引發
NotImplementedError
。
- 回傳:
- outarray
眾數
注意
對於某些分佈
眾數不是唯一的 (例如:均勻分佈);
PDF 有一個或多個奇異點,且奇異點是否應被視為在定義域內並稱為眾數是值得商榷的 (例如:形狀參數小於 1 的伽瑪分佈);及/或
機率密度函數可能有一個或多個不是全域最大值的局部最大值 (例如:混合分佈)。
在這種情況下,
mode
將會回傳單一值、
將奇異點視為眾數發生處、及/或
回傳局部最大值,其可能為也可能不為全域最大值。
如果沒有為所選分佈特別實作眾數的公式,SciPy 將嘗試以數值方式計算眾數,這可能不符合使用者偏好的眾數定義。在這種情況下,建議使用者子類化分佈並覆寫
mode
。參考文獻
[1]眾數 (統計學),維基百科,https://en.wikipedia.org/wiki/Mode_(statistics)
範例
使用所需的參數實例化分佈
>>> from scipy import stats >>> X = stats.Normal(mu=1., sigma=2.)
評估眾數
>>> X.mode() 1.0
如果眾數不是唯一確定的,
mode
仍然會回傳單一值。>>> X = stats.Uniform(a=0., b=1.) >>> X.mode() 0.5
如果此選擇不符合您的需求,請子類化分佈並覆寫
mode
>>> class BetterUniform(stats.Uniform): ... def mode(self): ... return self.b >>> X = BetterUniform(a=0., b=1.) >>> X.mode() 1.0