ผลรวมทั่วไปของตัวแปรสุ่มแกมมา


35

ฉันได้อ่านแล้วว่าผลรวมของตัวแปรสุ่มแกมมาที่มีพารามิเตอร์ระดับเดียวกันเป็นตัวแปรสุ่มแกมมาอีกตัว ฉันยังได้เห็นกระดาษโดยMoschopoulosอธิบายวิธีการรวมของชุดสุ่มของตัวแปรสุ่มแกมมา ฉันได้ลองใช้วิธีการของ Moschopoulosแต่ยังไม่ประสบความสำเร็จ

การสรุปชุดตัวแปรสุ่มแบบทั่วไปของแกมมามีลักษณะอย่างไร ในการทำให้คำถามนี้เป็นรูปธรรมสิ่งที่ดูเหมือนจะเป็น:

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

หากพารามิเตอร์ด้านบนไม่แสดงเป็นพิเศษโปรดแนะนำผู้อื่น


4
วิธีการแก้ปัญหาที่ชัดเจนสำหรับผลรวมของการใด ๆสองแจกแจงแกมมาได้รับการโพสต์ที่stats.stackexchange.com/a/252192
whuber

ตัวอย่างที่พิเศษนี้ที่ทุกแจกแจงแกมมามีรูปร่าง 1 พารามิเตอร์ (นั่นคือพวกเขาจะชี้แจง) ที่เรียกว่าการกระจาย hypoexponential (ครอบครัว) สำหรับกรณีของเพียงสองแจกแจงชี้แจงนอกจากนี้ยังมีสูตรอย่างชัดเจนให้ที่stats.stackexchange.com/questions/412849
whuber

คำตอบ:


37

ก่อนอื่นรวมผลรวมใด ๆ ที่มีสเกลแฟกเตอร์เดียวกัน : aบวก aรูปแบบที่หลากหลายผันแปรΓ(n,β)Γ(m,β)Γ(n+m,β)

ถัดไปให้สังเกตว่าฟังก์ชันคุณลักษณะ (cf) ของคือดังนั้น cf ของผลรวมของการแจกแจงเหล่านี้คือผลิตภัณฑ์Γ(n,β)(1iβt)n

j1(1iβjt)nj.

เมื่อมีทั้งหมดหนึ่ง, ผลิตภัณฑ์นี้ขยายเป็นส่วนบางส่วนเป็นเส้นตรงกันของที่เป็นจำนวนเต็มระหว่างและn_jในตัวอย่างที่มี (จากผลรวมของและ ) และเราพบ ( 1 - ฉันβ เจที) - เข้าพบเข้าพบ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.

สิ่งที่ตรงกันข้ามกับการรับ cf คือการแปลงฟูริเยร์ผกผันซึ่งเป็นเส้นตรง : นั่นหมายความว่าเราอาจใช้เทอมตามคำศัพท์ แต่ละคำเป็นที่จดจำได้เป็นหลาย CF ของการแจกแจงแกมมาและเพื่อให้เป็นที่พร้อมกลับให้ผลผลิตไฟล์ PDF ในตัวอย่างที่เราได้รับ

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

สำหรับ PDF ของผลรวม

นี่เป็นส่วนผสมที่แน่นอนของการแจกแจงแกมมาที่มีสเกลแฟคเตอร์เท่ากับค่าที่อยู่ในผลรวมและปัจจัยรูปร่างน้อยกว่าหรือเท่ากับค่ารวมภายในผลรวม ยกเว้นในกรณีพิเศษ (ซึ่งอาจมีการยกเลิกบางอย่าง) จำนวนคำที่กำหนดโดยพารามิเตอร์รูปร่างรวม (สมมติว่าทั้งหมดแตกต่างกัน)n jn1+n2+nj


ในการทดสอบนี่คือฮิสโตแกรมของผลลัพธ์ได้จากการเพิ่มการจับฉลากอิสระจากและการแจกแจง เมื่อมันถูกซ้อนทับกราฟของครั้งฟังก์ชั่นก่อนหน้า พอดีเป็นสิ่งที่ดีมาก Γ ( 8 , 1 ) Γ ( 4 , 2 ) 10 4104Γ(8,1)Γ(4,2)104

รูป


Moschopoulos นำความคิดนี้ไปอีกขั้นหนึ่งโดยการขยาย cf ของผลรวมเป็นฟังก์ชันอนันต์อนุกรมของฟังก์ชันแกมมาเมื่อใดก็ตามที่หนึ่งตัวหรือมากกว่านั้นไม่อินทิกรัลni


2
ความคิดเห็นเล็กน้อย: โดยทั่วไปการ จำกัด แน่นอนหมายถึง pdf ของรูปแบบโดยที่และนั่นคือคือ ความน่าจะเป็นและรูปแบบไฟล์ PDF สามารถตีความเป็น (กฎของความน่าจะรวม) น้ำหนักรวมของเงื่อนไขไฟล์ PDF ที่กำหนดเงื่อนไขต่าง ๆ ที่เกิดขึ้นกับความน่าจะเป็นÄ_iอย่างไรก็ตามในผลรวมข้างต้นสัมประสิทธิ์บางตัวเป็นค่าลบดังนั้นจึงไม่สามารถใช้การตีความมาตรฐานของส่วนผสมได้ ฉัน > 0 Σ ฉันฉัน = 1 ฉันฉัน
f(x)=i=1naifi(x)
ai>0iai=1aiai
Dilip Sarwate

@Dilip นั่นเป็นจุดที่ดี สิ่งที่ทำให้กรณีนี้น่าสนใจคือแม้ว่าค่าสัมประสิทธิ์บางอย่างอาจเป็นค่าลบ แต่ชุดค่าผสมนี้ยังคงมีการแจกแจงที่ถูกต้อง
whuber

วิธีการนี้สามารถขยายไปยังบัญชีเพื่อเพิ่มตัวแปรตามหรือไม่ โดยเฉพาะอย่างยิ่งฉันต้องการเพิ่มการแจกแจง 6 รายการโดยแต่ละรายการมีความสัมพันธ์กับผู้อื่น
masher

11

ฉันจะแสดงวิธีแก้ปัญหาอื่นที่เป็นไปได้ซึ่งค่อนข้างใช้งานได้อย่างกว้างขวางและด้วยซอฟต์แวร์ R ในปัจจุบันค่อนข้างง่าย นั่นคือการประมาณความหนาแน่นของอานม้าซึ่งเป็นที่รู้กันดีว่ากว้างกว่า!

สำหรับคำศัพท์เกี่ยวกับการแจกแจงแกมม่าฉันจะติดตามhttps://en.wikipedia.org/wiki/Gamma_distribution ด้วยการกำหนดรูปร่าง / มาตราส่วนพาราเมตริกคือเป็นพารามิเตอร์รูปร่างและคือสเกล สำหรับการประมาณ saddlepoint ฉันจะติดตาม Ronald W Butler: "การประมาณ Saddlepoint กับแอปพลิเคชัน" (Cambridge UP) การประมาณ saddlepoint อธิบายไว้ที่นี่: การประมาณ saddlepoint ทำงานอย่างไร ที่นี่ฉันจะแสดงวิธีการใช้งานในแอปพลิเคชันนี้θkθ

ให้เป็นตัวแปรสุ่มที่มีฟังก์ชันสร้างโมเมนต์ที่มีอยู่ ซึ่งต้องมีอยู่สำหรับในช่วงเวลาเปิดที่มีศูนย์ จากนั้นกำหนดฟังก์ชั่นการสร้าง cumulant โดย เป็นที่รู้จักกันว่า'(0) สมการ saddlepoint คือซึ่งปริยายกำหนดเป็นฟังก์ชันของ (ซึ่งต้องอยู่ในช่วง ) เราเขียนนี้ฟังก์ชั่นที่กำหนดไว้ implicitely เป็น (x) โปรดทราบว่าสมการ saddlepoint จะมีทางออกเดียวเสมอเพราะฟังก์ชั่น cumulant เป็นแบบนูน M ( s ) = E e s X s K ( s ) = บันทึกX

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

จากนั้นประมาณ saddlepoint ความหนาแน่นของจะได้รับจาก ฟังก์ชันความหนาแน่นโดยประมาณนี้ไม่รับประกันว่าจะรวมเข้ากับ 1 ดังนั้นการประมาณ saddlepoint ที่ผิดปกติ เราสามารถรวมเข้าด้วยกันเป็นตัวเลขและการทำให้เป็นปกติเพื่อให้ได้การประมาณที่ดีขึ้น แต่การประมาณนี้รับประกันว่าจะไม่เป็นลบX ( x ) = 1fX

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

ตอนนี้ขอเป็นแกมมาตัวแปรสุ่มอิสระที่มีการจัดจำหน่ายที่มีพารามิเตอร์theta_i) จากนั้นฟังก์ชั่นการสร้าง cumulant คือ กำหนดไว้สำหรับtheta_n) อนุพันธ์อันดับแรกคือ และอนุพันธ์อันดับที่สองคือ ในต่อไปนี้ฉันจะให้โค้ดที่ใช้ในการคำนวณสิ่งนี้และจะใช้ค่าพารามิเตอร์ , ,X i ( k iX1,X2,,XnXiK ( s ) = - n i = 1 k i ln ( 1 - θ i(ki,θi)s < 1 /สูงสุด( θ 1 , θ 2 , , θ n ) K ( s

K(s)=i=1nkiln(1θis)
s<1/max(θ1,θ2,,θn) K
K(s)=i=1nkiθi1θis
n=3k=(1,2,
K(s)=i=1nkiθi2(1θis)2.
Rn=3θ = ( 1 , 2 , 3 )k=(1,2,3)θ=(1,2,3). โปรดทราบว่าRรหัสต่อไปนี้ใช้อาร์กิวเมนต์ใหม่ในฟังก์ชั่น uniroot ที่นำมาใช้ใน R 3.1 ดังนั้นจะไม่ทำงานใน R ที่เก่ากว่า
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")

ส่งผลให้พล็อตต่อไปนี้: ป้อนคำอธิบายรูปภาพที่นี่

ฉันจะปล่อยให้การประมาณค่าปกติของอานม้าเป็นแบบฝึกหัด


1
สิ่งนี้น่าสนใจ แต่ฉันไม่สามารถทำให้Rโค้ดของคุณใช้งานได้เพื่อเปรียบเทียบการประมาณกับคำตอบที่แน่นอน ความพยายามที่จะก่อให้เกิดใด ๆ ที่ก่อให้เกิดข้อผิดพลาดที่เห็นได้ชัดในการใช้งานของfhat uniroot
whuber

3
รุ่น R ของคุณคืออะไร? รหัสใช้อาร์กิวเมนต์ใหม่เพื่อ uniroot, expandInt ซึ่งแนะนำใน R เวอร์ชัน 3.1 หาก R ของคุณเก่ากว่าคุณอาจลองลบออก (และขยายช่วงเวลาที่กำหนดให้ uniroot) แต่นั่นจะทำให้รหัสมีความแข็งแกร่งน้อยลง!
kjetil b halvorsen

10

สมการWelch – Satterthwaiteสามารถใช้เพื่อให้คำตอบโดยประมาณในรูปแบบของการแจกแจงแกมม่า นี่เป็นคุณสมบัติที่ดีในการให้เราจัดการกับการแจกแจงแกมมาว่าเป็น (โดยประมาณ) ปิดลงนอกจากนี้ นี่คือการประมาณในการทดสอบ t-test ของ Welch ที่ใช้กันทั่วไป

(การแจกแจงแกมม่าสามารถดูเป็นการกระจายไคสแควร์ที่ปรับขนาดและอนุญาตให้ใช้พารามิเตอร์รูปร่างที่ไม่ใช่จำนวนเต็ม)

ฉันได้ปรับค่าประมาณเป็น parametrization ของการกระจายตัวของแกมม่า:k,θ

ksum=(iθiki)2iθi2ki

θsum=θikiksum

ให้ ,k=(3,4,5)θ=(1,2,1)

เราได้ค่ารังสีแกมม่าประมาณ 10.666, 1.5

เราเห็นว่าพารามิเตอร์รูปร่างมีจำนวนรวมกันมากหรือน้อย แต่น้อยลงเล็กน้อยเนื่องจากพารามิเตอร์ระดับอินพุตมีค่าแตกต่างกันเป็นเช่นนั้นว่าผลรวมมีค่าเฉลี่ยที่ถูกต้องθ i θkθiθ


6

วิธีการแก้ปัญหาที่แน่นอนในการโน้มน้าว (เช่นผลรวม) ของการแจกแจงแกมมาเป็น Eq (1) ในรูปแบบไฟล์ PDF การเชื่อมโยงโดยDiSalvo เนื่องจากนี่ใช้เวลาค่อนข้างนานจึงใช้เวลาพอสมควรในการคัดลอกที่นี่ สำหรับการแจกแจงแกมม่าเพียงสองครั้งผลรวมที่แน่นอนในรูปแบบปิดจะถูกระบุด้วย Eq (2) ของ DiSalvo และไม่มีน้ำหนักโดย Eq (5) ของWesolowski และคณะ ซึ่งปรากฏบนไซต์ CVเป็นคำตอบสำหรับคำถามนั้น นั่นคือ,nGamma(a,b)Γ(a,1/b)bβ

GDC(a,b,α,β;τ)={baβαΓ(a+α)ebττa+α11F1[α,a+α,(bβ)τ],τ>00,τ0,
ที่สัญกรณ์ในคำถามข้างต้น; ที่นี่ นั่นคือและเป็นค่าคงที่อัตราที่นี่และไม่ใช่สเกลาร์เวลาGamma(a,b)Γ(a,1/b)bβ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.