我试图区分多元正态分布的对数似然函数,
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
.