核密度估计(KDE)原理及实现-CSDN博客
机器学习算法(二十一):核密度估计 Kernel Density Estimation(KDE)_算法_意念回复-GitCode 开源社区
在统计学中,概率密度估计是一种重要的方法,用于估计连续型随机变量的概率密度函数。与基于假设的参数方法不同,概率密度估计是一种非参数方法,能够对数据进行平滑估计。其核心目的是通过对观察数据的平滑处理来揭示其潜在的分布特性,尤其在数据分布未知或没有假设具体分布模型时,概率密度估计成为理解数据基本特征的重要手段。
概率密度估计方法可以分为直方图密度估计和核密度估计两种。其中,直方图密度估计将数据划分为若干区间,通过计算每个区间内的频数来近似表示概率密度,是一种简单而直观的方法。而核密度估计则通过将每个观测值与一个核函数进行加权叠加,得到一个连续平滑的概率密度函数,用于更精细地描述数据的分布特性。
一元密度估计在描述数据集中趋势、分布状况及多峰情况方面非常有效。这种方法在探索数据特征时提供了一种可靠且灵活的工具,能够帮助研究者理解数据的内在结构,尤其是在数据包含多样性和异常值时,密度估计的方法更显优势。因此,密度估计在统计分析、数据挖掘和机器学习等领域得到了广泛的应用。
在直方图密度估计中,如何选择合适的区间数量(也称为组数)是一个关键问题。
Sturges准则是一种常用的方法,用于确定直方图的最佳区间数量。Sturges准则的核心思想是,当数据样本量较小时,通过对数缩放的方法使得区间数量适中,以避免过度平滑或过度分割数据。这种方法适用于数据呈近似正态分布的情况,能够有效地平衡直方图的平滑性和分辨能力。然而,当样本量较大或者数据分布偏离正态分布时,Sturges准则可能会显得不足,产生较少的区间,从而导致直方图无法很好地捕捉数据的细节特征。
为了解决这一问题,研究者们还提出了其他区间选择准则,例如Freedman-Diaconis准则和Scott准则,这些方法在处理具有不同分布特征的数据时能够提供更为灵活和精确的区间划分。
Sturges准则的核心思想是,当数据样本量较小时,通过对数缩放的方法使得区间数量适中,以避免过度平滑或过度分割数据。这种方法适用于数据呈近似正态分布的情况,能够有效地平衡直方图的平滑性和分辨能力。Sturges准则的思想是通过样本总数的对数来限制分组数,以保持合理的分布假设。在一些特殊情况下,如样本来自二项分布(Binomial)或其他复杂分布时,可以使用这个准则进行分组。Sturges准则的分组区间的最佳宽度可以通过如下公式计算:
当样本量为 n=1000,并基于对样本的直方图分组来估计相应的密度值。首先,为了从直方图中重新得到密度估计,需找到包含所关心点的区间,并计算相应的组频率。
在默认的直方图中,x0=0.1 位于第 7 组,其中密度 f1(0.1)=0.38。而在 Sturges 分组的直方图中,x0 在第 6 组,f2(0.1)=0.3889306。换句话说,密度估计是通过分组加权得到的相对频率。结果显示用默认直方图密度估计0.1的概率密度为f1(0.1)=0.38,如果用Sturges 分组的直方图估计0.1的概率密度f2(0.1)=0.3889306。这两个估计值与理论标准正态密度的值 ϕ(0.1)=0.3969525 非常接近,但是用Sturges 分组的直方图估计的结果更接近理论值,说明密度估计的效果相对较好。
为了选择最佳带宽 h,需要使得 MISE 最小化。根据 Fubini 定理可以得到:
为了使得 MISE 最小,选择最优带宽:
这一带宽的选择使得 Asymptotic MISE(渐近 MISE)达到最小值:
由于密度估计中的 f′′(x) 是未知的,因此无法直接通过上述公式计算最优带宽。Scott 提供了一个被称为“正态参考准则”的估计方法,用于在正态分布假设下获得合理的带宽。根据正态参考准则:
不难发现直接使用breaks = ‘scott’呈现的分组如蓝色的直方图显示,与我们根据经验准则选择的带宽不同(使用此准则时注意不要直接用R包里面的就行)。根据经验公式选择的带宽使得分组更细,使得数据的密度估计更平滑、准确。
如上面的数据集,我们可以很明显的看到数据集存在异常值,如果我们想尽量减小异常值的影响,就可以考虑Freedman-Diaconis 准则。
Freedman-Diaconis 准则,它是一种用于选择直方图的最佳组距(带宽)的标准,特别是在数据包含异常值或偏态时,Freedman-Diaconis准则通常被认为更为稳健。Freedman-Diaconis准则旨在根据数据的四分位距(IQR,Interquartile Range)来选择最佳的组距(带宽)。具体公式如下:
h 表示组距(带宽),是确定每个直方柱的宽度的关键参数。IQR 为样本四分位数间距,即数据在第 75 个百分位数与第 25 个百分位数之间的范围。IQR 对异常值(极端值)更加稳健,因此在数据包含离群值时,Freedman-Diaconis准则是更合理的选择。n表示样本量。Freedman-Diaconis准则中,组距与样本量的三次根成反比,即随着样本量增加,组距变窄,使直方图的分辨率更高。
可以看到使用F-D准则,可以让异常值更远离我们的主要数据,与Scott 正态参考准则进行比较,Scott 正态参考准则将数据分为9组,F-D准则将数据分为10组(其中有一组频数为0),在数据包含较多离群值或数据分布不服从正态假设时,F-D准则异常值更加鲁棒。
频率多边形是对直方图的扩展和进一步的平滑处理方法。每个直方图的顶点被连接起来,形成一条连续的折线,这样能够更直观地展现数据的密度变化趋势。在频率多边形的基础上,可以进一步引入核密度估计来得到更加精细的分析结果。这种方法对数据分布的理解提供了一种简化和连续的表示形式,特别适用于需要对数据分布进行更平滑的分析场景。
给出了频率多边形密度估计的最佳组宽的计算方法:
该公式通过乘以一个因子来得到适当且更小的组宽,从而更好地应对偏态分布。类似地,如果样本的尾部比正态分布更陡峭,那么可以推导出一个“峰态调整”的方法,以减少组宽,从而更精确地反映样本的密度特征。
直方图尽管可以有效地描述数据的频率分布,但由于每个组之间是离散的,所以它在描述数据分布的连续性方面存在一定的局限性。而频率多边形通过将各个组的顶点相连,使得最终得到的密度估计曲线看起来更加连续和平滑,从而更好地反映了数据的整体分布趋势。
我们需要了解密度函数(PDF)的一个重要性质:在整个定义域上的积分必须等于1。
通过积分来验证密度估计的方法。
我们可以使用插值函数approxfun来对频率多边形的估计进行插值,然后使用integrate函数对其进行积分,计算其在整个定义域内的总和是否等于1。
上方的代码展示了这一过程:首先通过approxfun函数创建了插值函数fpoly,然后使用integrate函数对其进行积分。在输出中我们可以看到积分的结果非常接近1,并且误差极小,这就验证了这个频率多边形密度估计符合概率密度的基本性质。如果积分的结果与1相差较大,那么就说明我们的密度估计存在一些问题,可能是由于数据分布的异常或者在估计过程中的计算误差。这样一来,验证积分结果是否等于1就成为了检查密度估计准确性和可靠性的重要步骤。最后,在频率多边形密度估计的应用中,我们不仅要关注曲线形态是否合理,还必须通过数学手段验证它的正确性,确保它符合概率分布的要求。这对于我们在实际数据分析中保证模型的可靠性至关重要。
题外话:
你肯定能感受到带宽选择 h 的重要性,
后面到核密度估计,
ta会更重要!!!!!!!
ASH 方法 是一种通过对直方图进行平移并取平均值来计算概率密度估计的非参数方法。相比于简单的直方图,ASH 能有效减少在组距选择上的误差,并得到一个更为平滑的密度估计。ASH 密度估计涉及将数据划分为多个区间,然后通过计算每个区间的频数并对这些区间进行平移得到的平均值。具体地:
(a)将原始样本分组,并计算每个组的频数。
(b) 通过设定多个平移区间 m,对原始分组位置进行移动,形成多组重叠直方图。
(c) 最后对每个移动后的直方图求均值,形成最终的 ASH 密度估计。
例子
或者通过构造一个网格宽度为 δ=h/m=0.25 的子区间构成的网来计算。点 x=0.2在区间 (−0.75,0.25),(−0.5,0.5),(−0.25,0.75),(0,1] 中,对应着第 14 个到第 20 个子区间,分组计数为 [1:12] [13:24] [25:35]。给出一般情况下 tj之间估计密度的加权平均公式:
通过上面内容可以理解如下:
累积分布函数(CDF) F(x)=P(X≤x),用于描述随机变量小于或等于某个值 x 的概率。对于任意给定的数据集,我们可以通过样本来估计其分布函数,定义为:
其中,n 表示样本总数。
为了得到概率密度函数,可以通过定义差商的极限:
这相当于取样本数据在点 xxx 附近的变化率,以此估计其密度。我们可以通过将区间分割来估计概率密度:
其中,h 为带宽参数,表示区间的宽度。可以使用卷积核函数对密度进行平滑:
这里用到的核函数为单位矩形函数,取值为 1 当 ∣x−xi∣<1时,否则为 0。如果我们定义一个均匀分布的核函数 k(x),如下所示:
那么均匀核密度估计公式可以表示为:
这是利用核函数进行加权平均,以平滑估计数据的分布特性。
带宽参数 h 控制核函数的宽度,决定了平滑程度。(非常重要!!!!!!!!)
核函数 K(t) 的五个性质:
K(.)为核函数(非负、积分为1,符合概率密度性质,并且均值为0),h>0为一个平滑参数,称作带宽(bandwidth),也看到有人叫窗口。有很多种核函数,uniform,triangular, biweight, triweight, Epanechnikov,normal,等。
可以看出选择不同的核函数对于核密度估计的影响没有选择带宽大小的影响大。怎么选择一个合适的带宽也是一个值得考虑的问题。
在实际中,样本分布不一定是正态的,因此有时候需要选择一个更加鲁棒的带宽估计公式。Silverman 提出了一个缩减带宽的公式:
其中 S为样本标准差,IQR为四分位距(Interquartile Range),使用最小值 σ 是为了确保带宽的选择既能反映样本的整体特征,也能够对异常值和极端值具有一定的鲁棒性。则在积分均方误差(IMSE)最小准则下的带宽为:
(类似于刚刚第一部分直方图的F-D准则)
Silverman 指出,在大多数情况下,这个缩减的带宽是一个很好的起点,即使样本分布不是正态的,它仍然能够提供一个较好的平滑效果。这使得该带宽选择方法在许多应用中都比较实用。带宽 h 的缩减有助于在存在离群值时,使得估计结果不至于受到极端数据点的过度影响。
使用高斯核函数的核密度估计。高斯核是一种平滑且对称的核函数,在很多情况下是默认的选择。余玹核函数在边界处逐渐收敛到 0,相比高斯核,余弦核在某些位置的贡献稍微集中一些,呈现出一种周期性的光滑趋势。使用埃潘尼切尼科夫核的核密度估计,在理论上具有最小的均方误差(IMSE),在积分均方误差意义下是最优的。核函数的选择则取决于数据特性和具体需求,高斯核通常是默认选择,但其他核函数在某些情况下可以提供更好的结果,如 Epanechnikov 核在均方误差意义下是最优的。