scipy.stats.Normal.

眾數#

Normal.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. 眾數不是唯一的(例如,均勻分佈);

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

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

在這種情況下,mode 將會

  1. 回傳單一值,

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

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

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