私は EM 推定を行っています。その M ステップでは、24 個のパラメーターを持つ最大尤度推定が必要です。R で nlm/optim/maxLik 関数を試してみました。どれも非常に遅いです。どんな提案でも大歓迎です。ありがとう。これは LogL 関数です: (選択肢、M、S、K、N、およびアルファが知られています。)
logl <- function(theta,choices,M,S,K,N,Alpha){
betas <- theta[(1:(S*(K+1)))]
betas<-matrix(betas,S,K+1,byrow=TRUE)
loglik <-for (n in 1:N){
pr1s=foreach (s=1:S) %dopar%{
pr11=foreach (i = 1:K) %dopar%{
exp(sum(betas[s,]*choices[[n]][i,]))/exp(sum(M[[i]]%*%betas[s,]))}
pr11=as.numeric(pr11)
prod(pr11)
}
pr1sn=as.numeric(pr1s)
l[n]= sum(Alpha*pr1sn)
}
L=-sum(log((l)))
return(L)}
私が取得したいのは:
ops=nlm(logl,theta.start,choices=choices,M=M,S=2,K=11,N=3,Alpha=Alpha,hessian=TRUE)