ガンマ確率変数の一般的な合計


35

同じスケールパラメーターを持つガンマ確率変数の合計が別のガンマ確率変数であることを読みました。また、Moschopoulosによる、ガンマランダム変数の一般的なセットを合計する方法を説明する論文を見ました。Moschopoulosのメソッドを実装しようとしましたが、まだ成功していません。

ガンマランダム変数の一般的なセットの合計はどのように見えますか?この質問を具体的にするために、それは次のように見えます:

ガンマ31+ガンマ42+ガンマ51

上記のパラメータが特に明らかになっていない場合は、他のものを提案してください。


4
任意の2つのガンマ分布の合計に対する明示的な解決策がstats.stackexchange.com/a/252192に投稿されています。
whuber

この特別な例では、すべてのガンマ分布の形状パラメーターが1(つまり、指数関数的)であるため、指数分布(ファミリー)と呼ばれます。指数分布が2つだけの場合は、stats.stackexchange.com / questions / 412849で明示的な式も提供されます
whuber

回答:


37

最初に、同じスケール係数を持つ任意の合計を組み合わせますΓnβプラスΓmβ変量はΓn+mβ変量を形成します。

次に、特性関数の(CF)ことを観察Γnβである1βtn、これらの分布の和のCFは、生成物であるそこ

j11βjtnj

場合全てであり、積分、この製品は部分分数として展開線形組み合わせ1 - I β J T - νここで、νは、間の整数であり、1N jは。例のβ 1 = 1 N 1 = 8の和から(Γ 3 1 Γ 5 1nj 1βjtνν1njβ1=1n1=8Γ31)および β 2 = 2 N 2 = 4、我々は見つけますΓ51β2=2n2=4

1(1it)81(12it)4=1(x+i)88i(x+i)740(x+i)6+160i(x+i)5+560(x+i)41792i(x+i)35376(x+i)2+15360ix+i+256(2x+i)4+2048i(2x+i)39216(2x+i)230720i2x+i

cfの取得の逆は逆フーリエ変換です。これは線形です。つまり、用語ごとに適用できます。各用語は、ガンマ分布のcfの倍数として認識できるため、簡単に反転してPDFを生成できます。例では、取得します

ett75040+190ett6+13ett5+203ett4+83et2t3+2803ett3128et2t2+896ett2+2304et2t+5376ett15360et2+15360et

合計のPDF用。

これは、合計内のスケールファクターに等しいスケールファクターと合計内のスケールファクター以下のスケールファクターを持つガンマ分布の有限混合です。特別な場合(ここで、いくつかのキャンセルが発生する可能性がある)を除いて、用語の数は、全形状パラメータによって与えられる(すべての仮定のn jは異なります)。n1+n2+nj


テストとして、ここでのヒストグラムであるの独立を添加することによって得られた結果から描画Γ 8 1 Γ 4 2 分布。その上に、前の関数の10 4倍のグラフが重ねられます。フィット感はとても良いです。104Γ81Γ42104

図


Moschopoulos は、n iの 1つ以上が非整数であるときはいつでも合計のcfをガンマ特性関数の無限級数に拡張することによりこの考えをさらに進め、その後、合理的に十分に近似される点で無限級数を終了します。n


2
軽度のコメント:通常、有限混合とは、という形式のpdfを意味します。ここでa i > 0およびi a i = 1、つまりa iは確率であり、pdfは確率a iで発生するさまざまな条件が与えられた条件付き pdf の(合計確率の法則)加重和として解釈できます。
fバツ==1nafバツ
a>0a=1aa。ただし、上記の合計では、係数の一部が負であるため、混合の標準的な解釈は適用されません。
ディリップサルワテ

@Dilipそれは良い点です。このケースを興味深いものにしているのは、いくつかの係数が負である可能性があるにもかかわらず、この組み合わせはまだ有効な分布であるということです(その構造自体によって)。
whuber

このアプローチは、従属変数の追加を考慮して拡張できますか?特に、6つの分布を合計して、それぞれが他の分布と何らかの相関関係を持つようにします。
マッシャー

11

I will show another possible solution, that is quite widely applicable, and with todays R software, quite easy to implement. That is the saddlepoint density approximation, which ought to be wider known!

For terminology about the gamma distribution, I will follow https://en.wikipedia.org/wiki/Gamma_distribution with the shape/scale parametrization, k is shape parameter and θ is scale. For the saddlepoint approximation I will follow Ronald W Butler: "Saddlepoint approximations with applications" (Cambridge UP). The saddlepoint approximation is explained here: How does saddlepoint approximation work? here I will show how it is used in this application.

ましょ既存のmomentgenerating機能を持つ確率変数 M S = EのE S Xのために存在しなければならないゼロが含まれているいくつかの開区間で。次いでによってキュムラント生成関数定義 K 複数可= ログM 複数可 ことが知られているE X = K '0 ヴァーX = K "0 X

M(s)=EesX
s
K(s)=logM(s)
EX=K(0),Var(X)=K(0)。saddlepoint式は、暗黙的に定義Sの関数としてX(の範囲内であることが必要X)。私たちは、この暗黙的に定義された関数を記述 SX 。キュムラント関数は凸であるため、サドルポイント方程式には常に1つの解しかありません。
K(s^)=x
sxXs^(x)

次いで、密度にsaddlepoint近似Xは、で与えられる FX = 1fX

f^(x)=12πK(s^)exp(K(s^)s^x)

X1,X2,,XnXi(ki,θi)

K(s)=i=1nkiln(1θis)
defined for s<1/max(θ1,θ2,,θn). The first derivative is
K(s)=i=1nkiθi1θis
and the second derivative is
K(s)=i=1nkiθi2(1θis)2.
In the following I will give some R code calculating this, and will use the parameter values n=3, k=(1,2,3), θ=(1,2,3). Note that the following R code uses a new argument in the uniroot function introduced in R 3.1, so will not run in older R's.
shape <- 1:3 #ki
scale <- 1:3 # thetai
# For this case,  we get expectation=14,  variance=36
make_cumgenfun  <-  function(shape, scale) {
      # we return list(shape, scale, K, K', K'')
      n  <-  length(shape)
      m <-   length(scale)
      stopifnot( n == m, shape > 0, scale > 0 )
      return( list( shape=shape,  scale=scale, 
                    Vectorize(function(s) {-sum(shape * log(1-scale * s) ) }),
                    Vectorize(function(s) {sum((shape*scale)/(1-s*scale))}) ,
                    Vectorize(function(s) { sum(shape*scale*scale/(1-s*scale)) }))    )
}

solve_speq  <-  function(x, cumgenfun) {
          # Returns saddle point!
          shape <- cumgenfun[[1]]
          scale <- cumgenfun[[2]]
          Kd  <-   cumgenfun[[4]]
          uniroot(function(s) Kd(s)-x,lower=-100,
                  upper = 0.3333, 
                  extendInt = "upX")$root
}

make_fhat <-  function(shape,  scale) {
    cgf1  <-  make_cumgenfun(shape, scale)
    K  <-  cgf1[[3]]
    Kd <-  cgf1[[4]]
    Kdd <- cgf1[[5]]
    # Function finding fhat for one specific x:
    fhat0  <- function(x) {
        # Solve saddlepoint equation:
        s  <-  solve_speq(x, cgf1)
        # Calculating saddlepoint density value:
        (1/sqrt(2*pi*Kdd(s)))*exp(K(s)-s*x)
    }
    # Returning a vectorized version:
    return(Vectorize(fhat0))
} #end make_fhat

 fhat  <-  make_fhat(shape, scale)
plot(fhat, from=0.01,  to=40, col="red", main="unnormalized saddlepoint approximation\nto sum of three gamma variables")

resulting in the following plot: ここに画像の説明を入力してください

I will leave the normalized saddlepoint approximation as an exercise.


1
これは興味深いですがR、近似を正確な答えと比較するためにコードを機能させることはできません。呼び出しを試みるとfhat、明らかにを使用してエラーが発生しますuniroot
whuber

3
Rバージョンは何ですか?コードは、unirootの新しい引数extendIntを使用します。これは、Rバージョン3.1で導入されたものです。Rが古い場合は、それを削除(およびunirootに指定された間隔を延長)することができます。しかし、それはコードの堅牢性を低下させます!
kjetil b halvorsen

10

ウェルチ-サタスウェイトの式を与えるために使用することができる近似ガンマ分布の形で回答を。これには、ガンマ分布を加算時に(ほぼ)閉じているものとして扱うことができるという優れた特性があります。これは、一般的に使用されるウェルチのt検定の近似です。

(ガンマ分布は、スケーリングされたカイ二乗分布と見なすことができ、非整数の形状パラメーターを許可します。)

近似値を kθ ガンマ分布のパラメータ化:

ksあなたはm=θk2θ2k

θsあなたはm=θkksあなたはm

させて k=345θ=121

したがって、およそGamma(10.666 ...、1.5)が得られます

形状パラメーターが表示されます k 多かれ少なかれ合計されていますが、入力スケールパラメーター θ 異なる。 θ 合計が正しい平均値を持つようなものです。


6

の畳み込み(つまり、合計)の正確な解nガンマ分布は式として与えられます。連結されたPDF(1)DiSalvo。これは少し長いので、ここにコピーするには時間がかかります。ガンマ分布が2つしかない場合、閉じた形での正確な合計は、式 (2)DiSalvoの、式による重みなし。(5)Wesolowski et al。CVサイトにも表示されますもその質問への回答としてます。あれは、

GDCabαβ;τ={baβαΓa+αebττa+α11F1[αa+αbβτ]τ>00τ0
上記の質問の表記法; GammaabΓa1/b、 ここに。あれは、b そして β ここではレート定数であり、時間スカラーではありません。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.