【问题标题】:Epanechnikov multivariate densityEpanechnikov 多元密度
【发布时间】:2013-06-15 03:36:59
【问题描述】:

我的数据由大小为 1x5 的向量组成,每个向量代表一个 pikel:[x,y,r,g,b]xy 是位置:0 <= x <= M0 <= y <= Nr,g,b 是像素的颜色:0 <= r,g,b <= 255

我想使用多元 Epanechnikov 核来估计密度。我读到有两种方法可以做到这一点:

  1. 乘法方法 - 计算每个维度的内核,然后将它们相乘。
  2. 计算向量的范数并计算该值的核。

这两种方法究竟如何处理我的数据?知道 Epanechnikov 内核对标准化值 > 1< -1 产生 0,我需要进行什么标准化。

我正在用 C++ 编程。

【问题讨论】:

  • 我认为这应该迁移到 stats.stackexchange.com

标签: estimation kernel-density


【解决方案1】:
  1. 乘法方法 - 计算每个维度的内核,然后将它们相乘。
  2. 计算向量的范数并计算该值的核。
  1. 假设您的 x 变量和 y 是 statistically independent,这不适用于 2。另一方面,2. 是径向对称内核。

这两种方法究竟如何处理我的数据?

我会同时尝试两者,看看哪一个给出更好的结果(例如,哪一个给出数据的更好可能性,但注意不要过度拟合数据,例如使用cross validation)。

在其最基本的形式中,这意味着您拆分样本,使用一部分计算密度估计函数(即在数据点周围放置内核)并评估另一部分的可能性(密度估计值的乘积)在用于测试或更好地计算概率乘积对数的点上运行函数)并查看哪一个在“其他”样本(不用于计算估计值的那个)上给出了更高的概率乘积。

同样的论点(交叉验证)也适用于内核宽度的选择(“缩放因子”,使内核变窄或变宽)。

您当然可以从手动选择内核宽度开始。选择太小的内核宽度会给出“尖峰”密度估计,选择太大会“洗掉”数据的重要特征。

知道 Epanechnikov 内核对于标准化值 > 1 或

您提到的功能与规范化无关。您应该对内核本身使用标准化表达式,即内核非零范围内的积分应该是一。对于您的情况 1.,如果 1D 内核被归一化(例如 [-1..1] 上的 3/4*(1-u^2) 的情况,2D 产品也将被归一化。对于情况 2。必须计算 2D 积分。

假设核被归一化,那么您可以按如下方式对密度估计进行归一化:

其中 N 是数据点的数量。这将被归一化,即p(x,y) 在 2D 平面上的积分为 1。


请注意,您提到的任何一种功能形式都不允许任意covariance matrices。解决此问题的一种方法是首先“去相关”数据集(即应用矩阵变换,使数据集的协方差矩阵变为单位矩阵),然后执行密度估计,然后应用逆变换。

还有诸如 adaptive kernel density estimation 之类的扩展,其中内核的宽度会随着 xy 的函数而变化,如果您想在某些时候改进您的估计等。

【讨论】:

  • 非常感谢安德烈的回复。 “对内核本身使用规范化表达式”是什么意思,我再次想使用 Epanechnikov 内核,并且有 5 个条目的向量 {a,b,c,d,e} :0
猜你喜欢
  • 2012-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-01
  • 2013-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-16
相关资源
最近更新 更多