2016-07-28 9 views
1

私はユーザーがクリックできるN個のカテゴリのリストを持っています。そのようなKユーザーが完全にいるとします。私は過去3ヶ月間のデータを持っていて、どのユーザーがどのカテゴリーを何回クリックしたかを知らせています。 2016年6月20日:[10,15,12,15]}この辞書は特定のユーザーのためのもので、6月20日にカテゴリ10,12を1回と15回クリックしました。Rの多変量ホークス分布

これをモデル化するために、多変量ホークス分布を使用したいので、クリックされた過去のカテゴリ(同じカテゴリと異なるカテゴリ)に基づいてユーザーがクリックするカテゴリを予測できます。

私はすでに多くの例を検討しています。 http://jheusser.github.io/2013/09/08/hawkes.html は、ptprocパッケージを使用して単変量ホークス分布を使用します。しかし、現在、ptprocは存在しません。

平均、アルファ、ベータのパラメータをランダムに初期化し、EMアルゴリズムを使用して最尤推定を実行して、パラメータの最適な値を見つけて返すようにします。

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) 

最適なパラメータを見つけるためにoptim関数を使うことができます。

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)) 
} 

ここで、alpha、betaおよびmuは、負の対数尤度を最小にすることによって更新されたランダム値に初期化されます。

パラメータの最終的なリストはparam_hawkes

+0

'OPTIM(C(REP(1,2)、担当者(0.2,4)、担当者(2,2))、nloglik_bi_hawkes、方法= 'BFGS' に格納されています、history = history) 'より良い結果が得られます。 – skwon

関連する問題