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

在R中创建联合核密度函数,r,statistics,kernel-density,R,Statistics,Kernel Density,我有两个向量,A和B。我可以在R中根据经验创建一个联合核密度函数,这样我就有了来自向量A和B的函数f(x,y)?以下示例不起作用,因为它不是联合概率分布 z <- cbind(A,B) approxfun(density(z)) zMASS::kde2d在给定两个向量(x和y坐标)的情况下进行二维核密度估计。但是,它不是返回一个可以在任意({newx,newy}处求值的函数,而是返回在正方形网格上求值的函数 一旦你完成了一些繁琐的工作,比如选择一个带宽,在一个点上进行内核密度估计的实际计

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

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

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

一旦你完成了一些繁琐的工作,比如选择一个带宽,在一个点上进行内核密度估计的实际计算就没有那么难了,我想它应该是这样的

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

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

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

一旦你完成了一些繁琐的工作,比如选择一个带宽,在一个点上进行内核密度估计的实际计算就没有那么难了,我想它应该是这样的

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

MASS::kde2d
巧妙地利用
outer()
tcrossprod()
计算了从所有数据点到评估网格上所有点的距离,以及所有总和,只需进行少量顶级运算,但我认为我上面提到的是问题的关键。

你能提供示例向量吗?如果你给他们一个具体的例子,他们会更愿意帮助你。你能提供例子向量吗?如果你给他们一个具体的例子,他们会更愿意帮助你。