直方图法、Kn近邻估计法、Parzen窗法

来源:互联网 发布:windows可以开发ios吗 编辑:程序博客网 时间:2024/04/27 19:39

当需要估计的概率密度函数的形式未知,比如我们并不能知道样本的分布形式时,我们就无法用最大似然估计方法或贝叶斯估计方法来进行参数估计,而应该用非参数估计方法。这里就介绍三种非参数估计方法。
需要知道的是,作为非参数方法的共同问题是对样本数量需求较大,只要样本数目足够大众可以保证收敛于任何复杂的位置密度,但是计算量和存储量都比较大。当样本数很少时,如果能够对密度函数有先验认识,则参数估计能取得更好的估计效果。

一、直方图法
首先来考虑最简单的情况,样本x是一维的,那么我们将x的取值范围分成k个等间隔的区间,统计每个区间内样本的个数,由此计算每个区间的概率密度。没错,就是咱们小学做的那样。
这里写图片描述
现在考虑复杂一点的情况,当xd维向量的时候,我们对每个维度的量都分成k个等间隔的区间,于是我们将整个空间分成了kd个小空间,每个小空间的体积定义为:V=di=1valuei,其中valuei为第i维分量的每个区间的大小。
假设总样本数为N,每个小空间内样本数为qi,那么每个小空间的概率密度(注意不是概率)也可以计算出来了,为qiNV

可以注意到,小区间的大小选择与估计的效果是密切相连的。如果区域选择过大,会导致最终估计出来的概率密度函数非常粗糙;如果区域的选择过小,可能会导致有些区域内根本没有样本或者样本非常少,这样会导致估计出来的概率密度函数很不连续。所以,随着样本数的增加,区域的体积应该尽可能小,同时又必须保证区域内有充分多的样本,但是每个区域的样本数有必须是总样本数的很小的一部分。

所以说,固定区域大小的直方图法只是最简单的非参数估计方法,要想有更好的估计,需要采用能够根据样本分布调整区域大小的方法。下面介绍的KN近邻估计法就是一种采用可变大小区域的密度估计方法。

二、KN近邻估计法
该方法的基本思想是:根据总样本确定一个参数kN,即在中样本数为N时我们要求每个区域内拥有的样本的个数。在求x处的密度估计p^(x)时,我们调整包含x的区域的体积,直到区域内恰好落入kN个样本,并用下式来估计p^(x)

p^(x)=kN/NV

这样,在样本密度比较高的区域的体积就会比较小,而在密度低的区域的体积则会自动增大,这样就能够较好的兼顾在高密度区域估计的分辨率和在低密度区域估计的连续性。

为了取得好的估计效果,需要选择合适的kNN的关系,比如可以选择kN=a×N,其中a为参数。

三、Parzen窗法
Parzen窗法是另外一种在取值空间中进行取样估计的方法,或者说可以看作是用核函数对样本在取值空间中进行插值。

假设xRd是一d维的向量,并假设每一个区域是一个超立方体,它在每一维上的棱长都是h,则小区域的体积为:V=hd

定义如下d维单位方窗函数:

ϕ([u1,u2,,ud])T={1|uj|120

这个函数在以原点为中心的d维单位超立方体内取值为1,其他地方都取值为0.这样,如果要考察一个样本xi是否在这个x为中心、h为棱长的超立方体内,可以通过计算ϕ(xxih)来判定。这样,样本χ中落在以x为中心的超立方体内的样本数就可以写成:
kN=i=1Nϕ(xxih)

将其带入p^(x)=kNV中可以得到任意一点x的密度估计:
p^(x)=1NVi=1Nϕ(xxih)=1Ni=1N1Vϕ(xxih)

在上式中定义核函数(或者叫窗函数和)

K(x,xi)=1Vϕ(xxih)

核函数反应了一个观测样本xi对在x处的概率密度估计的贡献,与样本xix的距离有关。而概率密度估计就是在这一点上把所有观测样本的贡献进行平均:
p^(x)=1Ni=1NK(x,xi)

合法的核函数应该满足密度函数的要求,即:
K(x,xi)0K(x,xi)dx=1

这种用窗函数(核函数)估计概率密度的方法就是Parzen窗法,或者叫核密度估计

常见的几种核函数:
(1)方窗:

k(x,xi)={1hd|xjxji|h20

其中h为超立方体的棱长
(2)高斯窗(正态窗)
k(x,xi)=1(2π)dρ2d|Q|exp{12(xxi)TQ1(xxi)ρ2}

即以样本xi为均值、协方差矩阵为Σ=ρ2Q的正态分布
一维情况为:
k(x,xi)=12πσexp{(xxi)22σ2}

(3)超球窗
k(x,xi)={V1||xxi||ρ0

其中V是超球体的体积,ρ是超球体的半径

0 0