非参数检验方法,核密度估计简介
来源:DeepHub IMBA本文约2000字,建议阅读5分钟核密度估计是一种非参数统计方法,用于估计数据样本背后的概率密度函数。
在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 可以用来构建密度估计模型,例如用于分类或聚类问题中。
编辑:于腾凯
校对:林亦霖
相关文章
- Dataset之COCO数据集:COCO数据集的简介、下载、使用方法之详细攻略
- Dataset之CIFAR-10:CIFAR-10数据集的简介、下载、使用方法之详细攻略
- 打包elasticsearch-analysis-pinyin 插件特定版本方法
- C/C++ Qt 基本文件读写方法
- 【Android 异步操作】AsyncTask 异步任务 ( 参数简介 | 方法简介 | 使用方法 | AsyncTask 源码分析 )
- 【Groovy】集合遍历 ( 使用集合的 reverseEach 方法进行遍历 | 倒序集合迭代器 ReverseListIterator 类简介 | 代码示例 )
- JavaSE之Long 详解 Long的方法简介以及用法编程语言
- Linux查看安装FTP服务的方法(linux查看安装ftp)
- 『Oracle实现自增长字段设置方法』(oracle如何设置自增)
- Linux多默认网关:使用方法简介(linux多默认网关)
- 深入理解Linux设备树(DTS)的重要性与应用方法(linuxdts)
- 深入探究:Linux PAM 命令,了解其功能原理及使用方法(linuxpam命令)
- Oracle身份验证方法及步骤简介(oracle身份)
- MySQL格式修改:优化数据的方法(mysql修改格式)
- Linux命令行:取出指定行的方法简介(linux取出某一行)
- Linux串口驱动简介及使用方法(linux串口的驱动)
- Linux系统下更改用户密码方法简介(更改linux用户密码)
- Mongodb的存储方式简介:NoSQL数据库持久化存储方法详解(mongodb存储方式)
- SQL Server的使用方法探索之旅(sqlserver的用法)
- MySQL数据库恢复的步骤和方法简介(mysql数据库怎么恢复)
- 卸载Oracle的步骤和方法简介(怎样卸载oracle)
- PB程序连接MSSQL数据库的方法探究(pb连接mssql数据库)
- Oracle环境下关闭长时链接的方法(oracle 关闭长连接)
- MySQL去重联查两张表的方法简介(mysql 两表联查去重)
- Oracle中输出日志的方法简介(oracle中输出日志)
- 的方法Oracle中的变量赋值方法简介(oracle中赋值给变量)
- MySQL 中的不小于函数简介及使用方法(mysql不小于函数)
- MySQL退出登录方法简介(mysql下退出登录)
- Oracle数据库中修改值的SQL方法简介(oracle修改值sql)
- iisServiceUnavailable解决方法(权限问题)
- Serv-u10.3的图文安装教程及使用方法
- C#调用Matlab生成的dll方法的详细说明