多元模式的计算有效估计


14

简短版:估算从连续分布中采样的多维数据集模式的最有效的计算方法是什么?

长版:我有一个数据集,需要估计其模式。该模式与均值或中位数不一致。下面显示了一个示例,这是一个2D示例,但ND解决方案会更好: 在此处输入图片说明

目前,我的方法是

  1. 在等于模式所需分辨率的网格上计算内核密度估计
  2. 寻找最大的计算点

显然,这会在很多不合理的点上计算KDE,如果有很多高维度的数据点或者我希望模式具有良好的分辨率,则这尤其糟糕。

一种替代方法是使用模拟退火,遗传算法等在KDE中找到全局峰。

问题是是否有一种更聪明的方法来执行此计算?


我不知道答案,但是我认为这是一个很好的问题。对于您而言,我很难想到比您提到的方法更好的方法。我确实认为与多变量相比,单变量核估计方法之间存在差异。大卫·斯科特(David Scott)的这本书对于多元内核方法可能会有所帮助,尽管我不确定他是否会讨论峰值寻源。 amazon.com/...
迈克尔·Chernick

Answers:


7

KKf(x)Kf(x)K

博客条目中还提供了有关算法的非常详细的说明。


3
不错的参考文献,Larry Wasserman最近也有一篇较短的文章,文章不太详细地介绍了该技术,即“惊人的均值漂移算法”
Andy W

1
@AndyW拜托!拉里·瓦瑟曼(Larry Wasserman)的帖子(以及他的博客)通常很棒。在评论中,我发现了有关均值漂移,中等漂移和变体QuickShift的说明性参考
Sameer 2012年

2
谢谢。不能说那是最快的,但肯定会找到局部最大值。这是一些合成数据上的轨迹和学习率的图
tkw954

9

如果您的主要兴趣是二维问题,那么我想说内核密度估计是个不错的选择,因为它具有良好的渐近特性(请注意,我并不是说这是最好的)。例如看

Parzen,E.(1962)。关于概率密度函数和模的估计数学统计年鉴 33:1065-1076。

de Valpine,P.(2004年)。蒙特卡洛状态空间似然的加权后核密度估计美国统计协会杂志 99:523-536。

对于更高的维度(4+),由于众所周知的估计最佳带宽矩阵的困难,此方法的速度实际上很慢,请参见

现在,如您所提到的,ks软件包中命令的问题KDE在于,它评估特定网格中的密度,这可能是非常有限的。如果使用软件包KDE来估计带宽矩阵,例如Hscv,使用内核密度估计器,然后使用命令优化此功能,则可以解决此问题optim。下面使用模拟数据和中的高斯核显示了这一点R

rm(list=ls())

# Required packages
library(mvtnorm)
library(ks)

# simulated data
set.seed(1)
dat = rmvnorm(1000,c(0,0),diag(2))

# Bandwidth matrix
H.scv=Hlscv(dat)

# [Implementation of the KDE](http://en.wikipedia.org/wiki/Kernel_density_estimation)
H.eig = eigen(H.scv)
H.sqrt = H.eig$vectors %*% diag(sqrt(H.eig$values)) %*% solve(H.eig$vectors)
H = solve(H.sqrt)
dH = det(H.scv)

Gkde = function(par){
return( -log(mean(dmvnorm(t(H%*%t(par-dat)),rep(0,2),diag(2),log=FALSE)/sqrt(dH))))
}

# Optimisation
Max = optim(c(0,0),Gkde)$par
Max

例如,形状受限的估算器往往会更快

库勒(Cule),密苏里州,萨姆沃思(Samworth),RJ和密歇根州斯图尔特(Stewart)(2010)多维对数凹面密度的最大似然估计皇家统计学会杂志B 72:545–600。

但是他们为此目的太过顶峰了。

4

您可能会考虑使用的其他方法是:拟合正态(或其他弹性分布)的多元有限混合或

亚伯拉罕角,Biau角和Cadre角(2003年)。多元密度模式的简单估计《加拿大统计杂志》 31:23–34。

我希望这有帮助。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.