R中计算多元正态密度函数可以使用mvtnorm包中的dmvnorm函数。
dvnorm(x,mu,sigma,log=T/F)
x为服从多元正态分布的随机向量
mu和sigma分别为多元正态均值和协方差阵(可以是对角阵或者非对角阵)
log=T时,对密度取自然对数
当x为维时,输出结果与dnorm相同
可以同时输出多个多元正态密度:
当二维随机向量服从以mu为均值,sigma为协方差阵的多元正态分布时,如果x为n*2维矩阵,则dmvnorm(x,mu,sigma,log=T)会把x的每一行当成服从上述分布的一个二维随机向量观测值,最终输出每一行的ln(密度).在计算似然函数时很有用:
#x为观测数据阵:n*2维
loglikelihood=sum(dmvnorm(x,mu,sigma,log=T))