Suma genérica de variables aleatorias gamma

35

He leído que la suma de variables aleatorias Gamma con el mismo parámetro de escala es otra variable aleatoria Gamma. También he visto el artículo de Moschopoulos que describe un método para la suma de un conjunto general de variables aleatorias Gamma. He intentado implementar el método de Moschopoulos pero aún no he tenido éxito.

¿Cómo se ve la suma de un conjunto general de variables aleatorias Gamma? Para concretar esta pregunta, ¿qué aspecto tiene?

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

Si los parámetros anteriores no son particularmente reveladores, sugiera otros.

OSE
fuente
44
Se ha publicado una solución explícita para la suma de dos distribuciones Gamma en stats.stackexchange.com/a/252192 .
whuber
Un ejemplo especial de esto, donde todas las distribuciones Gamma tienen el parámetro de forma 1 (es decir, son exponenciales) se llama distribución hipoexponencial (familia) . Para el caso de solo dos distribuciones exponenciales, también hay una fórmula explícita en stats.stackexchange.com/questions/412849 .
Whuber

Respuestas:

37

Primero, combine las sumas que tengan el mismo factor de escala : una Γ(n,β) más una variable Γ(m,β) forman una Γ(n+m,β) .

Luego, observe que la función característica (cf) de Γ(n,β) es (1iβt)n , de donde el cf de una suma de estas distribuciones es el producto

j1(1iβjt)nj.

Cuando son todos integrales, este producto se expande como una fracción parcial en una combinación lineal de ( 1 - i β j t ) - ν donde ν son enteros entre 1 y n j . En el ejemplo con β 1 = 1 , n 1 = 8 (de la suma de Γ ( 3 , 1 ) y Γ ( 5 , 1nj (1iβjt)νν1njβ1=1,n1=8Γ(3,1) ) y β 2 = 2 , n 2 = 4 encontramosΓ(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.

La inversa de tomar el cf es la Transformada inversa de Fourier, que es lineal : eso significa que podemos aplicarla término por término. Cada término es reconocible como un múltiplo de cf de una distribución Gamma y, por lo tanto, se invierte fácilmente para obtener el PDF . En el ejemplo obtenemos

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

para el PDF de la suma.

Esta es una mezcla finita de distribuciones Gamma que tienen factores de escala iguales a los de la suma y factores de forma menores o iguales a los de la suma. Excepto en casos especiales (donde puede ocurrir alguna cancelación), el número de términos viene dado por el parámetro de forma total (asumiendo que todos los n j son diferentes).n1+n2+nj


104Γ(8,1)Γ(4,2)104

Figura


ni

whuber
fuente
2
f(x)=i=1naifi(x)
ai>0iai=1aiai. Sin embargo, en la suma anterior, algunos de los coeficientes son negativos y, por lo tanto, la interpretación estándar de la mezcla no se aplica.
Dilip Sarwate
@Dilip Ese es un buen punto. Lo que hace que este caso sea interesante es que, aunque algunos de los coeficientes pueden ser negativos, esta combinación sigue siendo una distribución válida (por su propia construcción).
whuber
¿Se puede extender este enfoque para tener en cuenta la adición de variables dependientes? En particular, quiero sumar 6 distribuciones con cada una teniendo alguna correlación con las otras.
machacador
11

Mostraré otra posible solución, que es bastante aplicable, y con el software R de hoy, bastante fácil de implementar. Esa es la aproximación de la densidad del punto de silla, que debería ser más conocida.

kθ

X

M(s)=EesX
s
K(s)=logM(s)
EX=K(0),Var(X)=K(0). La ecuación de punto de silla es que define implícitamente como una función de (que debe estar en el rango de ). Escribimos esta función implícitamente definida como . Tenga en cuenta que la ecuación saddlepoint siempre tiene exactamente una solución, porque la función acumulativa es convexa.
K(s^)=x
sxXs^(x)

Entonces, la aproximación del punto de silla de montar a la densidad de viene dada por No se garantiza que esta función de densidad aproximada se integre a 1, por lo que es la aproximación del punto de silla no normalizada. Podríamos integrarlo numéricamente y renormalizar para obtener una mejor aproximación. Pero se garantiza que esta aproximación no sea negativa.fX

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

X i ( k i , θ i ) K ( s ) = - n i = 1 k i ln ( 1 - θ i s )X1,X2,,XnXi(ki,θi)

K(s)=i=1nkiln(1θis)
s<1/max(θ1,θ2,,θn) K(s)= n i=1kiθ 2 i
K(s)=i=1nkiθi1θis
n=3k=(1,2,3)θ=(1,2,3)
K(s)=i=1nkiθi2(1θis)2.
Rn=3k=(1,2,3)θ=(1,2,3) . Tenga en cuenta que el siguiente Rcódigo usa un nuevo argumento en la función uniroot introducida en R 3.1, por lo que no se ejecutará en R's anteriores.
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")

resultando en la siguiente trama: ingrese la descripción de la imagen aquí

Dejaré la aproximación normalizada del punto de silla como ejercicio.

kjetil b halvorsen
fuente
1
Esto es interesante, pero no puedo hacer que su Rcódigo funcione para comparar la aproximación con la respuesta exacta. Cualquier intento de invocación fhatgenera errores, aparentemente en el uso de uniroot.
whuber
3
¿Cuál es tu versión R? Los códigos usan un nuevo argumento para uniroot, extendInt, que se introdujo en R versión 3.1 Si su R es anterior, puede intentar eliminar eso (y extender el intervalo dado para uniroot). ¡Pero eso hará que el código sea menos robusto!
kjetil b halvorsen
10

La ecuación de Welch-Satterthwaite podría usarse para dar una respuesta aproximada en forma de distribución gamma. Esto tiene la buena propiedad de permitirnos tratar las distribuciones gamma como cerradas (aproximadamente) bajo adición. Esta es la aproximación en la prueba t de Welch comúnmente utilizada.

(La distribución gamma se puede ver como una distribución de chi-cuadrado a escala, y permite un parámetro de forma no entero).

He adaptado la aproximación a la parametrización de la distribución gamma:k,θ

ksum=(iθiki)2iθi2ki

θsum=θikiksum

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

Entonces obtenemos aproximadamente Gamma (10.666 ..., 1.5)

Vemos que el parámetro de forma se ha totalizado más o menos, pero un poco menos porque los parámetros de escala de entrada difieren. es tal que la suma tiene el valor medio correcto.kθiθ

Paul Harrison
fuente
6

Una solución exacta a la convolución (es decir, la suma) de distribuciones gamma se da como la ecuación. (1) en el pdf vinculado por DiSalvo . Como esto es un poco largo, tomará algún tiempo copiarlo aquí. Para solo dos distribuciones gamma, su suma exacta en forma cerrada se especifica mediante la ecuación. (2) de DiSalvo y sin pesas por la ecuación. (5) de Wesolowski et al. , que también aparece en el sitio de CV como respuesta a esa pregunta. Es decir,nGamma(a,b)Γ(a,1/b)bβ

GDC(a,b,α,β;τ)={baβαΓ(a+α)ebττa+α11F1[α,a+α,(bβ)τ],τ>00,τ0,
donde la notación en las preguntas anteriores; , aquí. Es decir, y son constantes de velocidad aquí y no escalares de tiempo.Gamma(a,b)Γ(a,1/b)bβ
Carl
fuente