我正在尝试区分多元正态分布的对数似然函数,
NLLmvnorm <- function(data, mu, sigma) {
a <- qr(sigma)
logdet <- sum(log(abs(diag(a$qr))))
sigma.inv <- fast.ginv(sigma)
-0.5 * (logdet + t(data-mu) %*% sigma.inv %*% (data-mu))
}
使用D
,我对mu
和sigma
进行区分,并将每个结果存储在单独的变量中:
du <- D(expression(NLLmvnorm),"mu")
ds <- D(expression(NLLmvnorm),"sigma")
但是,这两个结果都返回0
。我是在做不正确的事情,还是在误解D
的作用?如果有帮助,我的目标是使用du
找到ds
和solve
的根,以找到最大的可能性。