![]() |
Home | Libraries | People | FAQ | More |
#include <boost/math/distributions/gamma.hpp>
namespace boost{ namespace math{ template <class RealType = double, class Policy = policies::policy<> > class gamma_distribution { public: typedef RealType value_type; typedef Policy policy_type; gamma_distribution(RealType shape, RealType scale = 1) RealType shape()const; RealType scale()const; }; }} // namespaces
γ分佈( gamma distribution )是一個連續分佈。當尺度參數是一個整數的時候,γ分佈(gamma distribution)被稱為Erlang 分佈(Erlang Distribution)。它與泊松分佈( Poisson Distribution)和χ方形分佈(Chi Squared Distributions)聯繫緊密。
當尺度參數是一個整數的時候,γ分佈( gamma distribution )是一個Erlang 分佈。因為這可以通過尺度參數的值為一個大於0的整數來確保,Erlang 分佈沒有分開來實現。
![]() |
注意 |
|---|---|
|
為了避免與γ函數的潛在混淆,這個γ分佈沒有提供下面的typedef:
typedef gamma_distibution<double> gamma;
反之,如果你想要使用一個double精度的γ分佈,你可以使用: boost::gamma_distribution<>
|
對於形狀參數(shape parameter) k 和尺度參數(scale parameter) θ,由概率密度函數(probability density function)來定義 :
有時會使用一個可選的方程:給定參數α= k 且 β= 1 / θ,那麼分佈可以由函數PDF定義為:
在這種形式下,尺度參數(scale parameter)的逆元(inverse)被稱為:速度參數(rate parameter)。
兩種形式都在通常的應用之中:這個庫始終使用第一種形式。因此,為了使用速率參數(rate parameter)來構造一個γ分佈(Gamma Distribution) ,你應該將速率參數(rate parameter)的倒數(reciprocal)作為尺度參數( scale parameter)。
下面的圖像顯示了當參數變化時,γ分佈的PDF函數的變化:
Erlang Distribution 與γ分佈是相同的,但是形狀參數(shape parameter)是一個整數。它通常使用速率(rate) 而不是尺度(scale) 作為第二個參數(回憶一下,速率(rate)是尺度(scale)的倒數(reciprocal))。
在內部,用於實現γ分佈(Gamma Distribution)的這些函數已經針對於小整數參數進行了優化,因此,總體來說,使用一個γ分佈(Gamma Distribution)而不使用一個專門的Erlang 分佈(Erlang Distribution)不會在性能上帶來損失。
gamma_distribution(RealType shape, RealType scale = 1);
使用形狀參數(shape paramenter)shape 和尺度參數(scale paramenter) scale來構造一個γ分佈(Gamma Distribution)。
要求:形狀參數( shape parameter ) 和尺度參數( scale parameters )大於0,否則調用定義域錯誤。
RealType shape()const;
返回分佈的形狀參數(shape parameter)shape。
RealType scale()const;
返回分佈的尺度參數(scale parameter)scale。
支持所有的分佈都通用的 常見的非成員訪問函數 : 累積分佈函數(Cumulative Distribution Function),概率密度函數(Probability Density Function),分位點(Quantile), 故障率函數(Hazard Function), 累積危險函數(Cumulative Hazard Function), 均值(mean), 中位數(median), 眾數(mode), 方差(variance), 標準差(standard deviation), 偏斜(skewness), 峰態(kurtosis), 峰態超越(kurtosis_excess), 值域(range) 以及 支持(support)。
隨機變量的定義域為: [0,+∞].。
對數正態分佈( lognormal distribution)通過不完全γ函數 gamma_p 和gamma_q 以及它們的反函數gamma_p_inv 和gamma_q_inv來實現:參看這些函數瞭解精度信息。
在下面的表中:k 是形狀參數(shape parameter),θ 是尺度參數( scale parameter),x 是隨機變量,p 是概率且 q = 1-p。
|
函數 |
實現註解 |
|---|---|
|
|
使用關係: pdf = gamma_p_derivative(k, x / θ) / θ |
|
cdf |
使用關係:p = gamma_p(k, x / θ) |
|
cdf 補集(complement) |
使用關係:q = gamma_q(k, x / θ) |
|
分位點(quantile) |
使用關係:x = θ* gamma_p_inv(k, p) |
|
分位點的補集(quantile from the complement) |
使用關係: x = θ* gamma_q_inv(k, p) |
|
均值(mean) |
kθ |
|
方差(variance) |
kθ2 |
|
眾數(mode) |
(k-1)θ 對於 k>1 否則是一個定義域錯誤 |
|
偏斜(skewness) |
2 / sqrt(k) |
|
峰態(kurtosis) |
3 + 6 / k |
|
峰態超越(kurtosis excess) |
6 / k |