跳到主要內容跳到頁尾

Gamma 與 Beta 分布函式:GAMMA.DIST、BETA.DIST 與反函數怎麼用

7 分鐘閱讀Lv.3 中級摘要與日期

等第 3 張訂單要等多久?廣告轉換率到底落在哪個範圍?整理 GAMMA、GAMMA.DIST、GAMMA.INV、BETA.DIST、BETA.INV 與 GAMMADIST、GAMMAINV、BETADIST、BETAINV 等舊名共 9 個函式,附手算與對得上的數值。

發布 更新

文章目錄

外送平台的訂單平均每 2 分鐘進來一張,我想湊滿 3 張再開一鍋,那「最多等幾分鐘」大概是多少?另一個問題是,廣告頁進來 40 個人、6 個下單,轉換率 15%,但這個 15% 到底準不準?前者是 GAMMA.DIST 的主場,後者是 BETA.DIST 的主場,今天一次整理這兩組分布函式,加上 GAMMA 這個跟階乘有關的小函式。

坦白說,這兩組我在日常報表裡用得不算多,BETA.INV 因為能把轉換率講成一個範圍,會比 GAMMA.DIST 常拿出來用。常態分布在 常態分布函式 那篇講過,這篇的寫法沿用同一套,不重複。

怎麼選

想回答的問題用這個白話
等第 k 件事發生,要等多久GAMMA.DIST、GAMMA.INV等待時間、累積用量
一個 0 到 1 的比例大概落在哪BETA.DIST、BETA.INV轉換率、良率、達成率
數值落在自訂的最小到最大之間BETA.DIST 加下限與上限工期、估價區間
階乘的延伸版(可以算 4.5 的階乘)GAMMA單純算一個數

GAMMADIST、GAMMAINV、BETADIST、BETAINV 是舊名,各有一節。

Gamma 函式本身

GAMMA

傳回 Gamma 函式的值,可以想成「連小數都能算的階乘」:整數 n 的結果是 (n − 1)!。

語法:

先手算:GAMMA(5) 就是 4! = 4 × 3 × 2 × 1 = 24。

Google 試算表公式
fx

整數的 Gamma 等於前一個整數的階乘

=GAMMA(5)

你應該會得到 24。換成小數, 是 1.7725,剛好是 √π; 是 11.6317,手算是 3.5 × 2.5 × 1.5 × 0.5 × 1.7725 = 11.6317。

數學上的 Gamma 函數可延伸到部分負數,但 Sheets 的 GAMMA 對 0 和負數(包含 GAMMA(-1.5) 這種負的非整數)都回 #NUM!。Excel 不一樣:Excel 的 GAMMA 接受負的非整數(官方範例 GAMMA(-3.75) 約 0.268),只有 0 與負整數才回 #NUM!,跨軟體搬公式時要留意。GAMMA(101) 與 FACT(100) 仍是有限值;GAMMA(171)、FACT(170) 約為 7.25742E+306,是最後一個不溢位的整數,GAMMA(172)、FACT(171) 就會溢位。需要處理很大的乘積時,可考慮用 GAMMALN 的對數值,別先把它轉回會溢位的數字。

Gamma 分布

Gamma 分布有兩個參數:形狀 alpha 和尺度 beta。可以這樣想,每件事平均隔 beta 這麼久發生一次,alpha 就是「要等第幾件事」。所以平均等待時間是 alpha × beta,我們這邊 alpha = 3、beta = 2,平均等 6 分鐘。

有一個很容易搞錯的地方:Sheets 的 beta 是「尺度」(平均間隔),不是「速率」(每分鐘幾張)。如果你手上的數字是每分鐘 0.5 張,beta 要填 1 ÷ 0.5 = 2。

GAMMA.DIST

給一個等待時間,算 Gamma 分布在這個點的累積機率或密度。

語法:

  • x:等待時間,不能是負數。
  • alpha、beta:形狀與尺度,都要大於 0。
  • 累積:TRUE 是「x 以內發生的機率」,FALSE 是機率密度。
Google 試算表公式
fx

8 分鐘內湊滿 3 張訂單的機率

=GAMMA.DIST(8, 3, 2, TRUE)

結果是 0.7619。手算驗證:alpha 是整數時,累積機率等於 1 − e^(−x/β) × (1 + x/β + (x/β)²/2),x/β = 4,所以是 1 − e^(−4) × (1 + 4 + 8) = 1 − 0.0183 × 13 = 0.7619。

超過 10 分鐘還沒湊滿的機率,用 1 減掉:

Google 試算表公式
fx

等超過 10 分鐘的機率

=1 - GAMMA.DIST(10, 3, 2, TRUE)

結果是 0.1247,大約八次有一次會等這麼久。

最後一個參數改成 FALSE 是密度, 是 0.1120,只用來畫曲線,不是機率。

alpha 填 1 的時候,Gamma 分布就是指數分布, 是 0.7769,跟 1 − e^(−1.5) 一樣。指數分布的函式放在 對數常態、指數與 Weibull 那篇。

GAMMA.INV

GAMMA.DIST 的反向:給累積機率,找出對應的 x。

語法:

Google 試算表公式
fx

九成的情況下,湊滿 3 張要等多久

=GAMMA.INV(0.9, 3, 2)

結果是 10.6446 分鐘。備料的時候,我會抓「10 分鐘多一點」當作九成把握的上限。

中位數(一半的情況在這之內)是 ,得到 5.3481,比平均的 6 小,因為 Gamma 分布右邊有條長尾巴,偶爾等得特別久會把平均拉高。

機率要在 0 到 1 之間,超出範圍會回 #NUM!。

GAMMADIST

GAMMA.DIST 的舊名,參數完全一樣。

語法:

Google 試算表公式
fx

舊名寫法

=GAMMADIST(8, 3, 2, TRUE)

結果同樣是 0.7619。

GAMMAINV

GAMMA.INV 的舊名。

語法:

Google 試算表公式
fx

舊名寫法

=GAMMAINV(0.9, 3, 2)

結果同樣是 10.6446。

Beta 分布

Beta 分布專門描述 0 到 1 之間的比例。兩個參數 alpha、beta 可以直接當成「成功次數 + 1」和「失敗次數 + 1」。廣告頁 40 個人進來,6 個下單、34 個沒下單,就是 alpha = 6 + 1 = 7、beta = 34 + 1 = 35。

這個「各加 1」代表一開始對轉換率完全沒有先入為主的看法(所有比例都一樣有可能),是我下的假設,不是函式規定的。平均 7 ÷ (7 + 35) = 0.1667,比直接算的 15% 稍微高一點,因為多加的那兩個 1 把結果往中間拉。

BETA.DIST

算 Beta 分布的累積機率或密度,可以選填下限與上限。

語法:

  • x:要查的點,預設在 0 到 1 之間。
  • 累積:TRUE 是 x 以下的累積機率,FALSE 是密度。
  • 下限、上限:選填,預設 0 和 1。

Excel 的 BETA.DIST 要求「累積」必填;Sheets 省略時等於 TRUE,但為了兩邊都能用,建議一律寫上。

Google 試算表公式
fx

真實轉換率在 20% 以下的機率

=BETA.DIST(0.2, 7, 35, TRUE)

結果是 0.7390,也就是在這 40 個人的資料下,真實轉換率不超過 20% 的把握大約是 74%。反過來看高於 25% 的機率:

Google 試算表公式
fx

真實轉換率超過 25% 的機率

=1 - BETA.DIST(0.25, 7, 35, TRUE)

結果是 0.0830,大約 8%。老闆問「會不會其實有 25%」的時候,這個數字比一句「樣本太少」有用。

FALSE 是密度, 是 7.1404。密度可以大於 1,因為它是曲線的高度,不是機率,不要誤會成 714%。

選填的上下限可以把 Beta 分布搬到任意區間。專案工期最快 10 天、最慢 20 天,我想它偏快完成,用 alpha = 2、beta = 3(這組數字是假設的形狀,真實專案要自己調):

Google 試算表公式
fx

14 天以內完工的機率

=BETA.DIST(14, 2, 3, TRUE, 10, 20)

結果是 0.5248。平均是 10 + 10 × 2 ÷ 5 = 14 天,所以 14 天以內完工的機率略過一半。x 超出下限到上限的範圍會回 #NUM!。

BETA.INV

BETA.DIST 的反向:給累積機率,找出對應的比例。拿來做「範圍」最方便,頭尾各留 2.5%,中間 95%:

語法:

Google 試算表公式
fx

95% 範圍的下界

=BETA.INV(0.025, 7, 35)
Google 試算表公式
fx

95% 範圍的上界

=BETA.INV(0.975, 7, 35)

下界 0.0715、上界 0.2917,所以這 40 個人的資料只能說「轉換率大概在 7% 到 29% 之間」,範圍很寬。中位數 是 0.1614。

資料多了會怎樣?假設同一個廣告頁累積到 400 個人、60 個下單(一樣是 15%),alpha = 61、beta = 341, 是 0.1184, 是 0.1884。範圍縮到 12% 到 19%,同樣的 15%,人數多了才比較放心。

帶上下限的寫法:九成把握的完工天數是

Google 試算表公式
fx

九成把握的完工天數

=BETA.INV(0.9, 2, 3, 10, 20)

結果是 16.7954 天,抓 17 天交期就有九成把握。

BETADIST

BETA.DIST 的舊名,只能算累積機率,沒有「累積」那個參數。

語法:

Google 試算表公式
fx

舊名寫法,轉換率 20% 以下

=BETADIST(0.2, 7, 35)

結果是 0.7390,等於 BETA.DIST(0.2, 7, 35, TRUE)。要密度的話只能改用新版。帶上下限一樣: 是 0.5248。

BETAINV

BETA.INV 的舊名,參數一樣。

語法:

Google 試算表公式
fx

舊名寫法,95% 範圍的上界

=BETAINV(0.975, 7, 35)

結果是 0.2917。帶上下限的 同樣是 16.7954。

對照一下

兩組分布的參數名稱長得很像,選之前先看手上是什麼資料:

手上的資料分布公式結果
平均每 2 分鐘一張,等第 3 張GammaGAMMA.INV(0.9, 3, 2)10.6446
40 人 6 人下單,95% 範圍上界BetaBETA.INV(0.975, 7, 35)0.2917

新舊名並存的情況,我寫新檔案都用有點的版本(GAMMA.DIST、BETA.INV),舊名遇到別人留下來的檔案再認得就好。

下次看到轉換率的時候,試著不要只寫一個 15%,把 BETA.INV 算出來的範圍一起放進去吧。

分享:
#Gamma 分布#Beta 分布#轉換率#機率分布
喜特先生 Mr. Sheet

喜特先生 Mr. Sheet

數據分析師/商業分析師

八年工作經驗,跨不同業界解決數據需求。做過的案例都整理在作品集。

接下來可以

相關文章

查看所有文章

留言討論

共 0 則留言

訂閱電子報,新文章上線就通知你

免費,隨時可取消。

送出即表示同意服務條款與隱私權政策。