Нахождение 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. Однако логарифмическая вероятность не является вогнутой в β , поэтому я просто перебрал диапазон значений β и выбрал значение с максимальной вероятностью. Обратите внимание, что α<β требуется для стационарности процесса.
Эмаад Ахмед Мансур

1
Любопытно, какова правильная форма функции λ (t), использующей значения R (i) вместо возобновления на каждом шаге?
ворона

Ответы:


7

Симплексный алгоритм Nelder-Mead, кажется, работает хорошо. Он реализован в Java библиотекой Apache Commons Math по адресу https://commons.apache.org/math/ . Я также написал статью о процессах Хоукса в точечных моделях процессов для многомерных высокочастотных неравномерно распределенных данных .

Феликс, используя преобразования exp / log, похоже, обеспечивает позитивность параметров. Что касается небольшой альфы, поищите на arxiv.org статью «Предельные теоремы для почти нестабильных процессов Хоукса».


1
Добро пожаловать на сайт, @StephenCrowley. Если у вас есть свой вопрос, не публикуйте его как (/ как часть) ответа. Нажмите на серую кнопку «ЗАДАТЬ ВОПРОС» вверху страницы и спросите ее там. Если у вас есть вопрос для разъяснения от ФП, вы должны задать его в комментарии к вопросу поста выше. (Хотя, к сожалению, вы не сможете сделать это, пока не достигнете 50 повторений.)
gung - Восстановить Монику

3

Я решил эту проблему с помощью библиотеки nlopt . Я обнаружил, что ряд методов сходятся довольно быстро.


1
Я предполагаю, что вы знакомы с Т. Ozaki (1979), Оценка максимального правдоподобия точечных процессов Хоукса , Энн. Текущий месяц Statist. Математика том 31, нет. 1, 145-155.
кардинал

1
Не могли бы вы дать более подробную информацию о том, что вы сделали? Кажется, есть проблема с установкой ограничений, а также то, что большая бета неотличима от нулевой альфы (они оба выглядят Пуассоном).
Феликс

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)

Как вы убедитесь, что мю, альфа и бета не установлены в отрицательные значения?
Феликс

Вы можете установить lowerи upperпараметры в optimвызове.
предполагается нормальным

Не для Nelder-Mead вы не можете, который по умолчанию? (См. Stat.ethz.ch/R-manual/R-devel/library/stats/html/optim.html ). Кроме того, я не думаю, что есть какой-либо способ отличить огромную бета от нулевой альфы, поэтому общая оптимизация кажется обреченной.
Феликс
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.