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