在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()计算了从所有数据点到评估网格上所有点的距离,以及在少量顶层操作中计算出的所有和,但我认为我所拥有的是它的关键。

最新更新