Tổng các biến ngẫu nhiên Gamma


35

Tôi đã đọc rằng tổng các biến ngẫu nhiên Gamma có cùng tham số tỷ lệ là một biến ngẫu nhiên Gamma khác. Tôi cũng đã thấy bài báo của Moschopoulos mô tả một phương pháp tổng hợp một tập hợp các biến ngẫu nhiên Gamma chung. Tôi đã thử thực hiện phương pháp của Moschopoulos nhưng vẫn chưa thành công.

Tổng của một tập hợp các biến ngẫu nhiên Gamma chung trông như thế nào? Để làm cho câu hỏi này cụ thể, nó trông như thế nào:

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

Nếu các thông số trên không đặc biệt tiết lộ, vui lòng đề xuất những người khác.


4
Một giải pháp rõ ràng cho tổng của hai bản phân phối Gamma bất kỳ đã được đăng tại stats.stackexchange.com/a/252192 .
whuber

Một ví dụ đặc biệt về điều này, trong đó tất cả các bản phân phối Gamma có tham số hình dạng 1 (nghĩa là chúng theo cấp số nhân) được gọi là phân phối giảm âm (gia đình) . Đối với trường hợp chỉ có hai phân phối theo cấp số nhân, cũng có một công thức rõ ràng được đưa ra tại stats.stackexchange.com/questions/412849 .
whuber

Câu trả lời:


37

Thứ nhất, kết hợp bất kỳ một khoản có cùng hệ số quy mô : a cộng với một Γ ( m , β ) hình thức variate một Γ ( n + m , β ) variate.Γ(n,β)Γ(m,β)Γ(n+m,β)

Tiếp theo, quan sát rằng các chức năng đặc trưng (cf) của ( 1 - i β t ) - n , từ đâu cf của một tổng của các phân phối là sản phẩmΓ(n,β)(1iβt)n

j1(1iβjt)nj.

Khi đều là tích phân, sản phẩm này mở rộng dưới dạng một phần thành một tổ hợp tuyến tính của ( 1 - i β j t ) - ν trong đó ν là các số nguyên nằm giữa 1n j . Trong ví dụ với β 1 = 1 , n 1 = 8 (từ tổng của Γ ( 3 , 1 )Γ ( 5 , 1nj (1iβjt)νν1njβ1=1,n1=8Γ(3,1) ) và β 2 = 2 , n 2 = 4 chúng ta tìm thấyΓ(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.

Nghịch đảo của việc lấy cf là Biến đổi Fourier ngược, là tuyến tính : điều đó có nghĩa là chúng ta có thể áp dụng thuật ngữ này theo thuật ngữ. Mỗi thuật ngữ có thể được nhận dạng là bội số của phân phối Gamma và do đó dễ dàng được đảo ngược để mang lại PDF . Trong ví dụ chúng ta có được

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

cho PDF của tổng.

Đây là một hỗn hợp hữu hạn của các phân phối Gamma có các yếu tố tỷ lệ bằng với các yếu tố trong tổng và các yếu tố hình dạng nhỏ hơn hoặc bằng các yếu tố trong tổng. Trừ trường hợp đặc biệt (trong đó một số hủy có thể xảy ra), số lượng các điều khoản được đưa ra bởi tổng tham số hình dạng (giả sử tất cả các n j là khác nhau).n1+n2+nj


Là một thử nghiệm, đây là một biểu đồ của kết quả thu được bằng cách thêm độc lập rút khỏi Γ ( 8 , 1 )Γ ( 4 , 2 ) phân phối. Trên đó được xếp chồng đồ thị của 10 4 lần hàm trước. Sự phù hợp là rất tốt.104Γ(8,1)Γ(4,2)104

Figure


Moschopoulos thực hiện ý tưởng này một bước nữa bằng cách mở rộng cf của tổng thành một chuỗi các hàm đặc trưng Gamma vô hạn bất cứ khi nào một hoặc nhiều không tách rời, và sau đó chấm dứt chuỗi vô hạn tại điểm mà nó gần đúng một cách hợp lý .ni


2
Tiểu luận: Thông thường, một hỗn hợp hữu hạn có nghĩa là một pdf có dạng nơi một i > 0Σ i một i = 1 , có nghĩa là, một tôi là xác suất và pdf có thể được hiểu là tổng (trọng số của xác suất) tổng của các pdf có điều kiện với các điều kiện khác nhau xảy ra với xác suất a i
f(x)=i=1naifi(x)
ai>0iai=1aiai. Tuy nhiên, trong tổng số trên, một số hệ số là âm và do đó, việc giải thích tiêu chuẩn của hỗn hợp không được áp dụng.
Dilip Sarwate

@Dilip Đó là một điểm tốt. Điều làm cho trường hợp này thú vị là mặc dù một số hệ số có thể âm, tuy nhiên sự kết hợp này vẫn là một phân phối hợp lệ (bởi chính cấu trúc của nó).
whuber

Cách tiếp cận này có thể được mở rộng để tính thêm các biến phụ thuộc không? Cụ thể, tôi muốn thêm 6 bản phân phối với mỗi bản có một số tương quan với các bản phân phối khác.
masher

11

Tôi sẽ chỉ ra một giải pháp khả thi khác, đó là áp dụng khá rộng rãi và với phần mềm R ngày nay, khá dễ thực hiện. Đó là xấp xỉ mật độ yên ngựa, nên được biết đến rộng hơn!

Đối với thuật ngữ về phân phối gamma, tôi sẽ theo https://en.wikipedia.org/wiki/Gamma_distribution với tham số hình dạng / tỷ lệ, là tham số hình dạng và θ là tỷ lệ. Đối với phép tính xấp xỉ yên ngựa, tôi sẽ theo Ronald W Butler: "Xấp xỉ bằng điểm yên với các ứng dụng" (Cambridge UP). Xấp xỉ xấp xỉ yên được giải thích ở đây: Làm thế nào gần đúng yên ngựa hoạt động? Ở đây tôi sẽ chỉ ra cách nó được sử dụng trong ứng dụng này.kθ

X

M(s)=EesX
s
K(s)=logM(s)
EX=K(0),Var(X)=K(0). The saddlepoint equation is
K(s^)=x
which implicitely defines s as a function of x (which must be in the range of X). We write this implicitely defined function as s^(x). Note that the saddlepoint equation always has exactly one solution, because the cumulant function is convex.

Then the saddlepoint approximation to the density f of X is given by

f^(x)=12πK(s^)exp(K(s^)s^x)
This approximate density function is not guaranteed to integrate to 1, so is the unnormalized saddlepoint approximation. We could integrate it numerically and the renormalize to get a better approximation. But this approximation is guaranteed to be non-negative.

Now let X1,X2,,Xn be independent gamma random variables, where Xi has the distribution with parameters (ki,θi). Then the cumulant generating function is

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: enter image description here

I will leave the normalized saddlepoint approximation as an exercise.


1
This is interesting, but I cannot make your R code work to compare the approximation to the exact answer. Any attempt to invoke fhat generates errors, apparently in the use of uniroot.
whuber

3
What is your R version? The codes uses a new argument to uniroot, extendInt, which was introduces in R version 3.1 If your R is older, you might try to remove that, (and extend the interval given to uniroot). But that will make the code less robust!
kjetil b halvorsen

10

The Welch–Satterthwaite equation could be used to give an approximate answer in the form of a gamma distribution. This has the nice property of letting us treat gamma distributions as being (approximately) closed under addition. This is the approximation in the commonly used Welch's t-test.

(The gamma distribution is can be viewed as a scaled chi-square distribution, and allowing non-integer shape parameter.)

I've adapted the approximation to the k,θ parametrization of the gamma distriubtion:

ksum=(iθiki)2iθi2ki

θsum=θikiksum

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

So we get approximately Gamma(10.666... ,1.5)

We see the shape parameter k has been more or less totalled, but slightly less because the input scale parameters θi differ. θ is such that the sum has the correct mean value.


6

An exact solution to the convolution (i.e., sum) of n gamma distributions is given as Eq. (1) in the linked pdf by DiSalvo. As this is a bit long, it will take some time to copy it over here. For only two gamma distributions, their exact sum in closed form is specified by Eq. (2) of DiSalvo and without weights by Eq. (5) of Wesolowski et al., which also appears on the CV site as an answer to that question. That is,

GDC(a,b,α,β;τ)={baβαΓ(a+α)ebττa+α11F1[α,a+α,(bβ)τ],τ>00,τ0,
where the notation in the questions above; Gamma(a,b)Γ(a,1/b), here. That is, b and β are rate constants here and not time scalars.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.