Znalezienie MLE dla jednoznacznego wykładniczego procesu Hawkesa


16

Jednowymiarowy wykładniczy proces Hawkesa jest samo-ekscytującym procesem punktowym, którego wskaźnik przybywania zdarzeń wynosi:

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

gdzie to czasy przyjazdu zdarzenia.t1,..tn

Funkcja wiarygodności dziennika to

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

które można obliczyć rekurencyjnie:

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

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

R(1)=0

Jakich metod numerycznych mogę użyć do znalezienia MLE? Jaka jest najprostsza praktyczna metoda do wdrożenia?


1
Miałem sukces w dopasowywaniu i poprzez maksymalizację MLE implementacji LBFGS w scipy. Prawdopodobieństwo dziennika nie jest jednak wklęsłe w , więc po prostu iterowałem w zakresie wartości i wybrałem tę z najwyższym prawdopodobieństwem. Zauważ, że jest wymagana dla stacjonarności procesu. μαββα<β
Emaad Ahmed Manzoor

1
ciekawe, jaka jest poprawna postać funkcji λ (t) przy użyciu wartości R (i) zamiast ponawiania każdego kroku?
wrona

Odpowiedzi:


7

Algorytm simpleksowy Neldera-Meada wydaje się działać dobrze. Jest on implementowany w Javie przez bibliotekę Apache Commons Math pod adresem https://commons.apache.org/math/ . Napisałem także artykuł o procesach Hawkesa w Point Process Modele dla danych wielowymiarowych o wysokiej częstotliwości i nieregularnie rozmieszczonych danych .

felix, użycie transformacji exp / log wydaje się zapewniać dodatnie parametry. Jeśli chodzi o małą alfę, poszukaj w arxiv.org artykułu o nazwie „twierdzenia o limitach dla prawie niestabilnych procesów jastrzębi”


1
Witamy na stronie @StephenCrowley. Jeśli masz własne pytanie, nie publikuj go jako (/ jako części) odpowiedzi. Kliknij szary przycisk „ZADAJ PYTANIE” u góry strony i zapytaj go tam. Jeśli masz pytanie do wyjaśnienia z PO, powinieneś je zadać w komentarzu do powyższego pytania. (Chociaż frustrujące, nie możesz tego zrobić, dopóki nie osiągniesz 50 powtórzeń).
gung - Przywróć Monikę

3

Rozwiązałem ten problem za pomocą biblioteki nlopt . Stwierdziłem, że wiele metod zbiegło się dość szybko.


1
Zakładam, że znasz T. Ozakiego (1979), Szacowanie maksymalnego prawdopodobieństwa samo ekscytujących procesów punktowych Hawkesa , Ann. Inst. Statystyk. Matematyka , vol. 31, nr 1, 145–155.
kardynał

1
Czy możesz podać więcej szczegółów na temat tego, co zrobiłeś? Wydaje się, że jest problem z ustawieniem ograniczeń, a także, że duża beta jest nie do odróżnienia od zera alfa (oba wyglądają Poissona).
felix

3

Możesz także dokonać prostej maksymalizacji. W 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)

W jaki sposób upewniasz się, że wartości mu, alfa i beta nie są ustawione na wartości ujemne?
felix

Możesz ustawić parametry loweri upperw optimpołączeniu.
zakłada się, że normalny

Nie w przypadku Nelder-Mead nie możesz, który jest domyślny? (Zobacz stat.ethz.ch/R-manual/R-devel/library/stats/html/optim.html ). Poza tym nie sądzę, że istnieje sposób na odróżnienie ogromnej wersji beta od zerowej wartości alfa, więc ogólna optymalizacja wydaje się skazana na niepowodzenie.
felix
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.