在20世纪,统计学还处于起步阶段计算机还不是那么流行的时候,假设正态分布是生成数据的标准。这主要是因为在那个所有结果都是手工计算的时代,正态分布可以使计算不那么繁琐。
但在这个大数据时代,随着计算能力的提高,数据的可用性使得统计学家采用了更现代的技术——非参数统计。这里我们将讨论一种这样的方法来估计概率分布,核密度估计。
n个随机变量服从分布函数F。对数据的假设越多,我们就越不接近现实,所以让我们对分布F做尽可能小的假设:它是一个绝对连续的分布函数(概率密度/质量函数即pdf/pmf存在)。我们要重建这个未知分布函数F的pdf。
是如果使用参数检验的方法,我们会假设(猜测)F的参数形式,并通过各种统计方法估计参数,如最大似然估计,矩量法等。但这里我们不打算这么做。我们将转而使用这个密度的非参数估计。
在深入研究用于非参数估计密度的核密度估计(KDE)之前,我们先看一个例子,一个看似非参数的问题可以转化为参数推断问题,然后我们将介绍非参数统计和 KDE 起着重要作用的例子。
这里我们要检验
以非参数方式执行此操作,下面的测试可以直观进行,
原假设:分布 F 的中位数为 0
检验这个零假设的常识方法是查看正面和负面观察的数量,并查看每个类别中有多少错误,即
在原假设下,正观察值的数量应遵循 Binomial(n, 1/2)
这样我们就将非参数测试问题简化为参数测试问题。
让我们转向另一个例子
参数估计正在获取 f_theta 最接近 g 的估计,如果 g 在模型的选择中,那么对于某些参数选择,估计的 f 和 g 之间的距离将为 0,即
这里的rho 是两个密度函数之间的距离度量,上述情况发生在建模完美的时候,而现实生活中往往不是这样。因为对于 f 形式的参数函数集中的最佳选择,它们也将接近 g 但不完全等于 f。我们执行以下操作,
找到使假设的参数模型与实际密度之间的距离最小的参数,在最好的情况下,这个参数通常仍会导致距离的正值。两个密度函数之间距离的一种特殊选择可以是 Kullback–Leibler 散度:
在上面的表达式中,最大化第二项就像最小化距离一样,因为第一项与 theta 无关。所以最小化 KL(g,f) 可以变为:
KL散度公式中第二项的最大化导致距离最小化,G 是未知的。上述最小化 KL 散度的表达式的形式为:ln f(x) w.r.t. 的期望, G是分布函数 。
我们的数据总是离散的。所以需要使用样本均值来估计上述期望
上面的表达式需要最大化,它与最大似然估计相同,其中上面的表达式给出了样本的对数似然(忽略小数常数 1/n)。
但是上面所有的工作,我们以某种方式绕过了一个事实,即正在最小化离散数据和连续密度之间的距离。但通常是不可能这样做。例如,如果选择 Squared-Hellinger距离
最后一个表达式来自于密度函数对R的积分是1。第一个问题是,为什么还要加上Squared-Hellinger距离?我们加上它的与原因是它不知道数据中的异常值,而理论上的好处是它的对称表达式。
所以最小化 Hellinger 距离等同于
在 Squared Hellinger 距离中最大化此项会导致 f 和 g 之间的最小距离
KL Divergence 的特殊之处在于使用这个最终的目标函数作为期望。但在这里我们不能那样做,因为不能将其简化为求和形式,所以要计算上述内容,首先需要从数据中可靠地估计 g(x),模型可能是连续的,但它的数据总是离散的。使用这些数据还需要找到 g(x) 的连续密度估计, 这就是密度估计发挥作用的地方。
我们可以参数化地进行这种估计,但这里我们将重点关注 g 的非参数化估计。非参数地估计密度的一些想法可以是将直方图视为密度的估计。
如果观察的数量趋于无穷,则binwidth趋于0。直方图收敛于密度。
上述结果主要都是来自于统计基本定理。
核密度估计
下面让我们看看核密度估计是如何工作的:
- 取一些关于 0 对称的密度 K(x)。这通常称为核函数或窗函数。
- 选择bandwidth (平滑参数)
- 在每个点(在观察中)叠加密度 K(x),并取所有 K(x) 的平均值。
我们可以将 f(x) 写为,
观察中每个点的所有核值的平均值,如果需要可视化,我们可以这样想上面的函数
围绕每个观察值(绿色)的核函数(黄色)在每个点取平均值以得出密度 f(x)(蓝色)的估计值,我们可以通过引入一个尺度参数来改进上述密度估计
随着h的增大,密度估计会扩散得更广,但峰值更低。小的h会让它更尖。
核函数可以选择Normal Kernel。这样可以得到
Normal Kernel的 KDE,这里的bandwidth (h) 在获得完美形状方面起着关键作用。它必须根据样本大小来选择。下面计算 r.v. 的期望值和方差。X 跟随 f(x)
KDE f(x) 的期望是期望的样本均值,所以:
上面的式子将在方差计算中进一步使用
KDE X ~ f(x) 的方差
所以在理想情况下,我们希望 h 是 n 的函数,使得 h 趋于 0,而 n 趋于无穷大,从而产生一致的方差估计量。
KDE 中最常用的内核是 Epanechnikov 内核,
核密度估计的应用
核密度估计有几个有趣的应用。比如可以从视频中减去背景。比如用于定位道路上快速移动的车辆。
基于KDE +阈值的方法给出了下面的结果。通过调整有效的阈值可以帮助识别超速车辆。
总结
核密度估计(Kernel Density Estimation,简称KDE)是一种非参数统计方法,用于估计数据样本背后的概率密度函数。KDE 的应用场景很广泛,以下是一些常见的应用场景:
- 数据可视化:KDE 可以用来可视化数据分布,替代直方图或箱线图等传统统计图表,让人们更清晰地理解数据的分布情况。
- 异常检测:KDE 可以用来检测数据中的异常值,因为异常值通常在概率密度函数上呈现出与正常数据不同的“尖峰”或“波峰”。
- 模式识别:KDE 可以用来识别数据中的模式,比如在地震学领域,可以用 KDE 来分析地震数据,找出是否存在特定的震级模式。
- 信号处理:KDE 可以用来分析信号的功率谱密度,帮助工程师诊断信号的频率特征,以便优化信号处理算法。
- 机器学习:KDE 可以用来构建密度估计模型,例如用于分类或聚类问题中。
作者:Rishi Dey Chowdhury (RishiDarkDevil)