使用optimx()的大Dirichlet PDF的ML解决方案

时间:2012-09-28 01:49:00

标签: r

我已经尝试使用渐强上升来使用optimx包在R中找到18类Dirichlet模型的ML解,但是我可以找到使CG算法运行的初始参数值。我已经为alphas尝试了不同的正整数组合。有人能告诉我我做错了什么吗? 代码:

####Dirichlet log likelihood function
LnL_Dir <- function(alpha, p, N){
expr1 <- log(gamma(sum(alpha)))
expr2 <- sum(log(gamma(alpha)))
expr3 <- alpha-1
expr4 <- log(p)
lnl <- N*(expr1 - expr2 + sum(expr3*expr4))
return(-lnl)
} 

###gradient function
grad_Dir <- function(alpha, p, N){
expr5 <- digamma(sum(alpha))
expr6 <- digamma(alpha)
expr7 <- log(p)
gradient <- N*(expr5 - expr6 + expr7)
return(-gradient)
}

inits <- rep(c(1),18)    

optimx(inits, LnL_Dir, grad_Dir, method=c("CG"), p=theta.x, N=300)

返回的错误消息是: “无法在初始参数下评估函数”

0 个答案:

没有答案