การค้นหา MLE สำหรับกระบวนการฮอว์คส์แบบเอกซ์เรย์ที่ไม่แปรเปลี่ยน


16

กระบวนการฮอว์คส์ชี้แจงที่ไม่แปรปรวนเป็นกระบวนการจุดที่น่าตื่นเต้นในตัวเองโดยมีอัตราการมาถึงของเหตุการณ์:

λ(t)=μ+ti<tαeβ(tti)

ที่บางครั้งเหตุการณ์ที่เดินทางมาถึงt1,..tn

ฟังก์ชันโอกาสในการบันทึกคือ

tnμ+αβ(eβ(tnti)1)+i<jln(μ+αeβ(tjti))

ซึ่งสามารถคำนวณซ้ำ:

tnμ+αβ(eβ(tnti)1)+ln(μ+αR(i))

R(i)=eβ(titi1)(1+R(i1))

R(1)=0

ฉันสามารถใช้วิธีการเชิงตัวเลขใดเพื่อค้นหา MLE วิธีการปฏิบัติที่ง่ายที่สุดที่จะใช้คืออะไร?


1
ฉันประสบความสำเร็จในการปรับและαโดยการเพิ่มการใช้งาน MLE ของ LBFGS ใน scipy ให้มากที่สุด บันทึกการน่าจะไม่เว้าในβแม้ว่าดังนั้นฉันก็ซ้ำในช่วงของβค่านิยมและเลือกหนึ่งที่มีโอกาสสูงสุดที่ โปรดทราบว่าจำเป็นต้องใช้α < βสำหรับความคงที่ของกระบวนการ μαββα<β
Emaad Ahmed Manzoor

1
อยากรู้อยากเห็นอะไรคือรูปแบบที่ถูกต้องของฟังก์ชั่นλ (t) โดยใช้ค่าของ R (i) แทนที่จะกลับมาทำงานต่อในแต่ละขั้นตอน?
อีกา

คำตอบ:


7

Nelder-มธุรสเริมอัลกอริทึมที่ดูเหมือนว่าจะทำงานได้ดี .. มันจะดำเนินการใน Java โดยห้องสมุด Apache Commons คณิตศาสตร์ที่https://commons.apache.org/math/ ผมเคยเขียนบทความเกี่ยวกับฮอว์คการประมวลผลที่จุดกระบวนการรุ่นสำหรับหลายตัวแปรความถี่สูงไม่สม่ำเสมอเว้นระยะข้อมูล

เฟลิกซ์, การใช้การแปลง exp / บันทึกดูเหมือนว่าจะมั่นใจในพารามิเตอร์ สำหรับอัลฟ่าสิ่งเล็กค้นหา arxiv.org สำหรับกระดาษที่เรียกว่า "ทฤษฎีบทขีด จำกัด สำหรับกระบวนการ hawkes เกือบไม่เสถียร"


1
ยินดีต้อนรับสู่เว็บไซต์ @StephenCrowley หากคุณมีคำถามของคุณเองโปรดอย่าโพสต์เป็นคำตอบ (/ เป็นส่วนหนึ่งของ) คลิกที่ปุ่ม "ถามคำถาม" สีเทาที่ด้านบนของหน้า & ถามที่นั่น หากคุณมีคำถามสำหรับการชี้แจงจาก OP คุณควรถามในข้อคิดเห็นของโพสต์คำถามด้านบน (แม้ว่าจะหงุดหงิดคุณไม่สามารถทำเช่นนั้นได้จนกว่าจะถึง 50 ตัวแทน)
gung - Reinstate Monica

3

ฉันแก้ไขปัญหานี้โดยใช้ไลบรารีnlopt ฉันพบว่ามีวิธีการหลายอย่างมาบรรจบกันอย่างรวดเร็ว


1
ฉันคิดว่าคุณคุ้นเคยกับ T. Ozaki (1979), การประเมินความน่าจะเป็นสูงสุดของกระบวนการจุดที่น่าตื่นเต้นในตัวเองของ Hawkes , Ann Inst statist คณิตศาสตร์. ฉบับ 31, ไม่มี 1, 145-155
พระคาร์ดินัล

1
คุณช่วยให้รายละเอียดเพิ่มเติมเกี่ยวกับสิ่งที่คุณทำ? ดูเหมือนว่ามีปัญหากับการตั้งค่าข้อ จำกัด และเบต้าขนาดใหญ่แยกไม่ออกจากศูนย์อัลฟา (พวกเขาทั้งสองดู Poisson)
เฟลิกซ์

3

คุณสามารถทำอย่างง่าย ๆ ให้ได้มากที่สุด ใน R:

neg.loglik <- function(params, data, opt=TRUE) {
  mu <- params[1]
  alpha <- params[2]
  beta <- params[3]
  t <- sort(data)
  r <- rep(0,length(t))
  for(i in 2:length(t)) {
    r[i] <- exp(-beta*(t[i]-t[i-1]))*(1+r[i-1])
  }
  loglik <- -tail(t,1)*mu
  loglik <- loglik+alpha/beta*sum(exp(-beta*(tail(t,1)-t))-1)
  loglik <- loglik+sum(log(mu+alpha*r))
  if(!opt) {
    return(list(negloglik=-loglik, mu=mu, alpha=alpha, beta=beta, t=t,
                r=r))
  }
  else {
    return(-loglik)
  }
}

# insert your values for (mu, alpha, beta) in par
# insert your times for data
opt <- optim(par=c(1,2,3), fn=neg.loglik, data=data)

คุณจะมั่นใจได้อย่างไรว่า mu, alpha และ beta ไม่ได้ถูกตั้งค่าเป็นค่าลบ?
เฟลิกซ์

คุณสามารถตั้งค่าlowerและupperพารามิเตอร์ในการoptimโทร
สันนิษฐานว่าปกติ

ไม่ใช่สำหรับ Nelder-Mead คุณไม่สามารถทำได้ซึ่งเป็นค่าเริ่มต้น? (ดูstat.ethz.ch/R-manual/R-devel/library/stats/html/optim.html ) นอกจากนี้ฉันไม่คิดว่าจะมีวิธีใดที่จะแยกแยะเบต้าขนาดใหญ่จากศูนย์อัลฟาดังนั้นการเพิ่มประสิทธิภาพโดยทั่วไปดูเหมือนจะถึงวาระแล้ว
เฟลิกซ์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.