scipy.stats.Mixture.
mode#
- Mixture.mode(*, method=None)[source]#
眾數 (最可能的值)
非正式地說,眾數是隨機變數具有最高機率(密度)假設的值。也就是說,眾數是支援 \(\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]Mode (statistics), Wikipedia, 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