這個工具的功能
本產生器會依照你指定的形狀參數 a 與尺度參數 b,產生一串符合 Gamma 分布的偽隨機數。Gamma 分布是一種連續且恆正的機率分布,廣泛應用於可靠度工程、排隊理論、貝氏統計(作為共軛先驗分布)、降雨量與保險建模,以及任何牽涉等候時間或正偏態正值的情境。它是一項通用的數學工具,並不限於任何特定國家。
使用方法
輸入形狀參數 a(必須大於 0)、尺度參數 b(必須大於 0),以及你想要產生的數值個數(1 到 1000)。接著選擇要顯示的有效位數。按下計算後,系統會回傳一份排序過的抽樣清單,並同時列出樣本平均數與變異數,旁邊也附上理論平均數與變異數,方便你核對結果是否合理。
計算公式
當 \(x > 0\) 時,機率密度函數為 $$f(x; a, b) = \frac{1}{\Gamma(a)\cdot b} \cdot \left(\frac{x}{b}\right)^{a-1} \cdot e^{-x/b}$$ 其中 \(\Gamma(a)\) 為 gamma 函數。在這種以尺度參數表示的形式下,平均數為 \(a\cdot b\),變異數為 \(a\cdot b^2\)。請注意,\(b\) 是尺度(scale)而非速率(rate);若你使用的另一套程式庫採用速率 \(\lambda = 1/b\),請改設 \(b = 1/\lambda\)。抽樣方面,當 \(a \ge 1\) 時採用 Marsaglia-Tsang 擠壓法(squeeze method),當 \(a < 1\) 時則加上均勻分布次方的提升處理。每個單位尺度的抽樣值都會再乘上 \(b\),以套用尺度。
實際範例
當 \(a = 3\)、\(b = 1\)、count = 10 時,每個數值都是 \(\text{Gamma}(3,1)\) 的抽樣。理論平均數為 \(a\cdot b = 3\),理論變異數為 \(a\cdot b^2 = 3\)(標準差約為 \(1.732\))。一組合理的抽樣結果,其平均數應落在 3 附近,離散程度約在 1.7 上下。若改為 \(a = 2\)、\(b = 5\),則平均數為 10、變異數為 50;而所有數值仍維持嚴格為正。
常見問題
為什麼每次的數字都不一樣?因為輸出是隨機的,除非使用固定的亂數種子(seed),否則每次執行得到的數值都會不同。不過樣本平均數與變異數應該都會接近理論值。
如果 a = 1 會怎樣?\(\text{Gamma}(1, b)\) 就是平均數為 \(b\) 的指數分布(Exponential distribution)。當 \(a\) 為整數時,則為 Erlang 分布。
b 是速率還是尺度?它是尺度。平均數等於 \(a\cdot b\),因此 \(b\) 越大,分布就會往較大的數值延伸。