Somma generica di variabili casuali Gamma


35

Ho letto che la somma delle variabili casuali Gamma con lo stesso parametro di scala è un'altra variabile casuale Gamma. Ho anche visto l'articolo di Moschopoulos che descrive un metodo per la sommatoria di un insieme generale di variabili casuali Gamma. Ho provato ad attuare il metodo di Moschopoulos ma non ho ancora avuto successo.

Che aspetto ha la somma di un insieme generale di variabili casuali Gamma? Per rendere concreta questa domanda, che aspetto ha:

Gamma(3,1)+Gamma(4,2)+Gamma(5,1)

Se i parametri di cui sopra non sono particolarmente rivelatori, si prega di suggerire altri.


4
Una soluzione esplicita per la somma di due distribuzioni Gamma è stata pubblicata su stats.stackexchange.com/a/252192 .
whuber

Un esempio speciale di ciò, in cui tutte le distribuzioni Gamma hanno il parametro di forma 1 (ovvero sono esponenziali) è chiamato distribuzione ipoesponenziale (famiglia) . Nel caso di sole due distribuzioni esponenziali c'è anche una formula esplicita fornita su stats.stackexchange.com/questions/412849 .
whuber

Risposte:


37

Innanzitutto, combina qualsiasi somma avente lo stesso fattore di scala : a più a variate a .Γ(n,β)Γ(m,β)Γ(n+m,β)

Quindi, osserva che la funzione caratteristica (cf) di è , da cui il cf di una somma di queste distribuzioni è il prodottoΓ(n,β)(1iβt)n

j1(1iβjt)nj.

Quando sono tutti integrali, questo prodotto si espande come una frazione parziale in una combinazione lineare di dove sono numeri interi compresi tra e . Nell'esempio con (dalla somma di e ) e troviamo ( 1 - i β j t ) - ν ν 1 n j β 1 = 1 , n 1 = 8 Γ ( 3 , 1 ) Γ ( 5 , 1 ) β 2 = 2 , n 2 = 4nj (1iβjt)νν1njβ1=1,n1=8Γ(3,1)Γ(5,1)β2=2,n2=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.

L'inverso del prendere il cf è la Trasformata di Fourier inversa, che è lineare : ciò significa che possiamo applicarla termine per termine. Ogni termine è riconoscibile come multiplo del cf di una distribuzione Gamma e quindi viene prontamente invertito per produrre il PDF . Nell'esempio che otteniamo

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

per il PDF della somma.

Questa è una miscela finita di distribuzioni gamma con fattori di scala uguali a quelli all'interno della somma e fattori di forma inferiori o uguali a quelli all'interno della somma. Tranne in casi speciali (in cui potrebbe verificarsi una certa cancellazione), il numero di termini è dato dal parametro di forma totale (supponendo che tutti gli siano diversi).n jn1+n2+nj


Come test, ecco un istogramma di risultati ottenuti aggiungendo disegni indipendenti dalle distribuzioni e . Su di esso è sovrapposto il grafico di volte la funzione precedente. La vestibilità è molto buona.104Γ(8,1)Γ(4,2)104

figura


Moschopoulos porta questa idea un ulteriore passo espandendo il cf della somma in una serie infinita di funzioni caratteristiche Gamma ogni volta che uno o più di è non integrale, e quindi termina la serie infinita in un punto in cui è ragionevolmente ben approssimata.ni


2
Commento secondario : in genere, una miscela finita indica un pdf della forma dove e , ovvero sono le probabilità e il pdf possono essere interpretati come la somma ponderata (legge della probabilità totale) dei pdf condizionali date le varie condizioni che si verificano con le probabilità . Tuttavia, nella somma sopra, alcuni dei coefficienti sono negativi e quindi non si applica l'interpretazione standard della miscela.
f(x)=i=1naifi(x)
ai>0iai=1aiai
Dilip Sarwate,

@Dilip Questo è un buon punto. Ciò che rende interessante questo caso è che sebbene alcuni dei coefficienti possano essere negativi, tuttavia questa combinazione è ancora una distribuzione valida (per sua stessa costruzione).
whuber

Questo approccio può essere esteso per tenere conto dell'aggiunta di variabili dipendenti? In particolare, voglio sommare 6 distribuzioni con ognuna con qualche correlazione con le altre.
schiacciamento

11

Mostrerò un'altra possibile soluzione, che è abbastanza ampiamente applicabile, e con il software R di oggi, abbastanza facile da implementare. Questa è l'approssimazione della densità del punto di sella, che dovrebbe essere più conosciuta!

Per la terminologia relativa alla distribuzione gamma, seguirò https://en.wikipedia.org/wiki/Gamma_distribution con la parametrizzazione di forma / scala, è il parametro di forma e è la scala. Per l'approssimazione a sella seguirò Ronald W Butler: "Approssimazioni a sella con applicazioni" (Cambridge UP). L'approssimazione del punto di sella è spiegata qui: come funziona l'approssimazione del punto di sella? qui mostrerò come viene utilizzato in questa applicazione.kθ

Sia una variabile casuale con funzione di generazione del momento esistente che deve esistere per in un intervallo aperto che contiene zero. Quindi definire la funzione di generazione cumulativa per È noto che . L'equazione del punto di sella è che definisce implicitamente come una funzione di (che deve essere compresa nell'intervallo di ). Scriviamo questa funzione implicitamente definita come . Si noti che l'equazione del punto di sella ha sempre esattamente una soluzione, poiché la funzione cumulativa è convessa. M ( s ) = E e s X s K ( s ) = log M ( s ) E X = K ( 0 ) , Var ( X ) = K X

M(s)=EesX
s
K(s)=logM(s)
EX=K(0),Var(X)=K(0)
K(s^)=x
sxXs^(x)

Quindi l'approssimazione del punto di sella alla densità di è data da Questa funzione di densità approssimativa non è garantita per integrarsi a 1, così come l'approssimazione del punto di sella non normalizzata. Potremmo integrarlo numericamente e rinormalizzarlo per ottenere una migliore approssimazione. Ma questa approssimazione è garantita non negativa.fX

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

Ora lascia che siano variabili gamma casuali indipendenti, dove ha la distribuzione con parametri . Quindi la funzione di generazione cumulativa è definita per . La prima derivata è e la seconda derivata è Di seguito fornirò un codice per calcolare questo, e userò i valori dei parametri , ,X1,X2,,XnXi(ki,θi)

K(s)=i=1nkiln(1θis)
s<1/max(θ1,θ2,,θn)
K(s)=i=1nkiθi1θis
K(s)=i=1nkiθi2(1θis)2.
Rn=3k=(1,2,3)θ=(1,2,3). Si noti che il Rcodice seguente utilizza un nuovo argomento nella funzione uniroot introdotta in R 3.1, quindi non verrà eseguito in R precedenti.
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")

risultante nel seguente diagramma: inserisci qui la descrizione dell'immagine

Lascerò l'approssimazione a sella normalizzata come esercizio.


1
Questo è interessante, ma non riesco a far funzionare il tuo Rcodice per confrontare l'approssimazione con la risposta esatta. Qualsiasi tentativo di invocazione fhatgenera errori, apparentemente nell'uso di uniroot.
whuber

3
Qual è la tua versione R? I codici usano un nuovo argomento per annullare il root, extInIn, che è stato introdotto in R versione 3.1 Se la tua R è più vecchia, potresti provare a rimuoverla (ed estendere l'intervallo dato a uniroot). Ma questo renderà il codice meno robusto!
kjetil b halvorsen,

10

L' equazione di Welch-Satterthwaite potrebbe essere usata per dare una risposta approssimativa sotto forma di una distribuzione gamma. Questo ha la bella proprietà di permetterci di trattare le distribuzioni gamma come (approssimativamente) chiuse in aggiunta. Questa è l'approssimazione nel test t di Welch comunemente usato.

(La distribuzione gamma può essere vista come una distribuzione chi-quadrato ridimensionata e consentendo un parametro di forma non intero.)

Ho adattato l'approssimazione alla parametrizzazione della distribuzione gamma:k,θ

ksum=(iθiki)2iθi2ki

θsum=θikiksum

Sia ,k=(3,4,5)θ=(1,2,1)

Quindi otteniamo circa Gamma (10.666 ..., 1.5)

Vediamo che il parametro di forma è stato più o meno sommato, ma leggermente inferiore perché i parametri della scala di input differiscono. è tale che la somma ha il valore medio corretto.kθiθ


6

Una soluzione esatta alla convoluzione (cioè somma) di distribuzioni gamma è data come Eq. (1) nel pdf collegato di DiSalvo . Dato che è un po 'lungo, ci vorrà del tempo per copiarlo qui. Solo per due distribuzioni gamma, la loro somma esatta in forma chiusa è specificata dall'Eq. (2) di DiSalvo e senza pesi di Eq. (5) di Wesolowski et al. , che appare anche sul sito CV come risposta a tale domanda. Questo è,n

GDC(a,b,α,β;τ)={baβαΓ(a+α)ebττa+α11F1[α,a+α,(bβ)τ],τ>00,τ0,
dove la notazione nelle domande precedenti; , qui. Ossia, e sono costanti di velocità qui e non scalari temporali.Gamma(a,b)Γ(a,1/b)bβ
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.