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

眾數

另請參閱

mean
median
pdf

注意事項

對於某些分佈

  1. 眾數不是唯一的(例如,均勻分佈);

  2. PDF 有一個或多個奇異點,並且奇異點是否被認為在域中並稱為眾數是值得商榷的(例如,形狀參數小於 1 的伽瑪分佈);和/或

  3. 機率密度函數可能有一個或多個不是全域最大值的局部最大值(例如,混合分佈)。

在這種情況下,mode 將會

  1. 回傳單一值,

  2. 考慮在奇異點發生眾數,和/或

  3. 回傳局部最大值,該值可能是也可能不是全域最大值。

如果沒有為選擇的分佈專門實作眾數公式,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