Menemukan MLE untuk proses Hawkes eksponensial univariat

16

Proses Hawkes eksponensial univariat adalah proses poin yang menarik sendiri dengan tingkat kedatangan peristiwa:

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

di mana t1,..tn adalah kali event kedatangan.

Fungsi kemungkinan log adalah

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

yang dapat dihitung secara rekursif:

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

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

R(1)=0

Metode numerik apa yang dapat saya gunakan untuk menemukan MLE? Apa metode praktis paling sederhana untuk diterapkan?

Dave Anderson
sumber
1
Saya telah berhasil memasang dan α dengan memaksimalkan MLE implementasi LBFGS dalam scipy. Log-likelihood tidak cekung dalam β , jadi saya hanya mengulangi rentang nilai β dan memilih yang dengan kemungkinan maksimum. Perhatikan bahwa α < β diperlukan untuk stasioneritas proses. μαββα<β
Emaad Ahmed Manzoor
1
ingin tahu, apa bentuk yang benar dari fungsi λ (t) menggunakan nilai R (i) alih-alih dilanjutkan pada setiap langkah?
gagak

Jawaban:

7

Algoritma simpleks Nelder-Mead tampaknya bekerja dengan baik .. Ini diterapkan di Jawa oleh perpustakaan Apache Commons Math di https://commons.apache.org/math/ . Saya juga menulis makalah tentang proses Hawkes di Point Process Models untuk Multivariat High-Frequency Irregularly Spaced Data .

Felix, menggunakan transformasi exp / log tampaknya memastikan positif parameter. Adapun hal alpha kecil, cari arxiv.org untuk makalah yang disebut "teorema limit untuk proses hawkes hampir tidak stabil"

gagak
sumber
1
Selamat datang di situs ini, @StephenCrowley. Jika Anda memiliki pertanyaan Anda sendiri, jangan posting sebagai (/ sebagai bagian dari) jawaban. Klik pada tombol abu-abu "TANYA PERTANYAAN" di bagian atas halaman & tanyakan di sana. Jika Anda memiliki pertanyaan untuk klarifikasi dari OP, Anda harus menanyakannya dalam komentar di posting pertanyaan di atas. (Meskipun dengan frustrasi, Anda tidak dapat melakukan itu sampai Anda mencapai 50 rep.)
gung - Reinstate Monica
3

Saya memecahkan masalah ini menggunakan perpustakaan nlopt . Saya menemukan sejumlah metode yang terkonvergensi cukup cepat.

Dave Anderson
sumber
1
Saya berasumsi Anda sudah mengenal T. Ozaki (1979), estimasi kemungkinan maksimum dari proses poin menarik diri Hawkes , Ann. Inst. Statist. Matematika , vol. 31, tidak. 1, 145-155.
kardinal
1
Bisakah Anda memberikan rincian lebih lanjut tentang apa yang Anda lakukan? Tampaknya ada masalah dengan pengaturan batasan dan juga bahwa beta besar tidak dapat dibedakan dari nol alpha (keduanya terlihat Poisson).
felix
3

Anda juga bisa melakukan maksimalisasi sederhana. Dalam 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)
dianggap normal
sumber
Bagaimana Anda memastikan mu, alpha dan beta tidak disetel ke nilai negatif?
felix
Anda dapat mengatur lowerdan upperparameter dalam optimpanggilan.
Diasumsikan normal
Bukan untuk Nelder-Mead Anda tidak bisa Anda yang merupakan default? (Lihat stat.ethz.ch/R-manual/R-devel/library/stats/html/optim.html ). Juga, saya tidak berpikir ada cara untuk membedakan beta besar dari nol alpha ada sehingga pengoptimalan umum tampaknya hancur.
felix