Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext
γ分佈(以及Erlang)分佈(Gamma Distribution)

#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 分佈沒有分開來實現。

[Note] 注意

為了避免與γ函數的潛在混淆,這個γ分佈沒有提供下面的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

非成員訪問函數(Non-member Accessors)

支持所有的分佈都通用的 常見的非成員訪問函數累積分佈函數(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_pgamma_q 以及它們的反函數gamma_p_invgamma_q_inv來實現:參看這些函數瞭解精度信息。

實現

在下面的表中:k 是形狀參數(shape parameter),θ 是尺度參數( scale parameter),x 是隨機變量,p 是概率且 q = 1-p

函數

實現註解

pdf

使用關係: 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)

方差(variance)

2

眾數(mode)

(k-1)θ 對於 k>1 否則是一個定義域錯誤

偏斜(skewness)

2 / sqrt(k)

峰態(kurtosis)

3 + 6 / k

峰態超越(kurtosis excess)

6 / k


PrevUpHomeNext