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

在 R 中创建联合核密度函数

如何解决在 R 中创建联合核密度函数

我有两个向量,A 和 B。我可以在 R 中凭经验创建一个联合核密度函数,以便我有一些来自向量 A 和 B 的函数 f(x,y)?以下示例不起作用,因为它不是联合概率分布

z <- cbind(A,B)
approxfun(density(z))

解决方法

MASS::kde2d 在给定两个向量(x 和 y 坐标)的情况下进行二维核密度估计。不过,它不是返回可以在任意位置 ({newx,newy}) 进行计算的函数,而是返回在方形网格上计算的函数。

一旦您完成了诸如选择带宽之类的繁琐工作,单个点 x0,y0 的核密度估计的实际计算就不是那么难了,我认为它会类似于

sum(dnorm((x0-x)/h)*dnorm((y0-y)/h)

MASS::kde2d 巧妙地使用 outer()tcrossprod() 计算从所有数据点到评估网格上所有点的距离,以及所有总和,在一个少量的顶级操作,但我认为以上是它的关键。

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