微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

R:为什么多元正态密度之和不等于1

如何解决R:为什么多元正态密度之和不等于1

library(mvtnorm)
sigma <- matrix(c(4,2,3),ncol=2)
x <- rmvnorm(n=500,mean=c(1,2),sigma=sigma)
> sum(dmvnorm(x,mean = c(1,sigma = sigma))
[1] 14.07509

我正在使用 1 2 模拟具有均值向量 sigma 和方差 rmvnorm 的二元法线的 500 次绘制。

然后我使用 dvmnorm获取密度并在所有平局中求和。但是,总和 > 1。总和应该是 1 吗?有没有办法让密度总和为 1?

解决方法

密度下的面积始终为 1。因此,以下总和为 1,其中我们在分布的平均值周围取面积为 0.01 的平方,将每个正方形上方的体积近似为密度乘以正方形的底数。

x=seq(-19,11,by=.1) #a region of 
y=seq(-18,22,by=.1)
s=0
for (i in 1:length(x)) {
  for (j in 1:length(y)) {
    s=s+dmvnorm(c(x[i],y[j]),mean = c(1,2),sigma = sigma)*.01
  }
}
s
0.9999997

从多元正态密度随机抽取、评估每个点的 pdf 和总和为 1 之间没有明确的关系。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。