2016-07-28 3 views
1

У меня есть список N категорий, на которые пользователь может нажать. Допустим, что K таких пользователей полностью. У меня есть данные за последние 3 месяца, в которых указывается, какой пользователь щелкнул по какой категории, на какой дате сколько раз. Для ex - {20 июня 2016 года: [10,15,12,15]} этот dict предназначен для конкретного пользователя и говорит 20 июня, что он дважды щелкнул по категориям 10, 12 и 15 раз.Многомерное распределение Хоукса в R

Учитывая эти данные, я хочу использовать распределение многовариантных ярусов для моделирования этого, чтобы я мог предсказать, какие категории пользователь нажмет на основе прошлых категорий (одинаковых и разных категорий), которые были нажаты.

Я уже рассмотрел ряд примеров. http://jheusser.github.io/2013/09/08/hawkes.html использует одномерное распределение Хоукс с использованием пакета ptproc. Однако ptproc не существует.

Я хочу подать некоторую случайную инициализацию средних, альфа-и бета-параметров и хочу, чтобы модель выполнила оценку максимального правдоподобия, используя алгоритм ЭМ, чтобы найти наилучшие значения параметров и вернуть их.

Использование hawkes пакета

library(hawkes) 
lambda0 <- c(0.2,0.2) 
alpha <- matrix(c(0.5,0,0,0.5),byrow=TRUE,nrow=2) 
beta <- c(0.7,0.7) 
history <- simulateHawkes(lambda0,alpha,beta,3600) 
l  <- likelihoodHawkes(lambda0,alpha,beta,history) 

Это вычисляет вероятность для некоторой случайной инициализации параметров. Как найти наилучшие параметры с помощью алгоритма EM и максимизировать вероятность здесь для многовариантного распределения Хокс?

Спасибо!

ответ

0
params_hawkes <- optim(c(rep(1,2), rep(0.2,4),rep(2,2)), nloglik_bi_hawkes, history = history) 

Оптимальная функция может использоваться для нахождения наилучших параметров.

nloglik_bi_hawkes <- function(params, history){ 
mu <- c(params[1],params[2]) 
alpha <- matrix(c(params[3],params[4],params[5],params[6]),byrow=TRUE,nrow=2) 
beta <- c(params[7], params[8]) 
return(likelihoodHawkes(mu, alpha, beta, history)) 
} 

Здесь, альфа, бета и мю инициализируются случайных значения обновляется путем минимизации негативного логарифмического правдоподобия.

Окончательный список параметров хранится в param_hawkes

+0

'Optim (с (Rep (1,2), Rep (0.2,4), Rep (2,2)), nloglik_bi_hawkes, метод = 'BFGS' , history = history) 'делает лучший результат. – skwon

Смежные вопросы