核密度估计
核密度估计(kernel density estimate,kde):是一种用于估计概率密度函数的非参数方法,可看作直方图的拟合曲线。
我们知道,对概率密度函数(Probability Density Function,PDF)f(x) 的定义为
P(a<x⩽b)=∫abf(x)dx
则累积分布函数(Cumulative Distribution Function,CDF)F(x) 为
F(x)=∫−∞xf(x)dx=P(X⩽x)
概率密度函数就是概率分布函数的一阶导数,根据微分思想,则有
f(x0)=F′(x0)=h→0lim2hF(x0+h)−F(x0−h)
引入经验累积分布函数,来近似描述概率 P(X⩽x)
Fn(x)=n1i=1∑nI(xi⩽x)
其中 I 为指示函数。于是有
f(x)=h→0lim2nh1i=1∑nI(x−h⩽xi⩽x+h)
即在 x 的邻域 [x−h,x+h] 内样本频率估计概率密度。在实际计算中,必须给定 h 值, h 值不能太大也不能太小。太大不满足 h→0 的条件,太小使用的样本数据点太少,误差会很大。因此,关于 h 值的选择有很多研究,该值也被称为核密度估计中的带宽(bandwidth)。
核函数:确定带宽后,上式可改写为
fh(x)=2nh1i=1∑nI(x−h⩽xi⩽x+h)=2nh1i=1∑nI(∣x−xi∣⩽h)=2nh1i=1∑nI(h∣x−xi∣⩽1)
记 K(t)=21I(t⩽1) 则概率密度函数变为
fh(x)=nh1i=1∑nK(h∣x−xi∣)
其中 K(t) 称为核函数。概率密度函数的积分
∫fh(x)dx=nh1i=1∑n∫K(h∣x−xi∣)dx=n1i=1∑n∫K(t)dt=∫K(t)dt
因而只要核函数的积分等于1,就能保证估计出来的密度函数积分等于1。因此,我们考虑使用已知的概率密度函数作为核函数,几种常用的核函数有
Gaussian kernel K(x;h)∝exp(−2h2x2)
Tophat kernel K(x;h)∝1 if x<h
Epanechnikov kernel K(x;h)∝1−h2x2
Exponential kernel K(x;h)∝exp(−hx)
Linear kernel K(x;h)∝1−hx if x<h
Cosine kernel K(x;h)∝cos(2hπx) if x<h
通常使用高斯核,即标准正态分布的密度函数。直觉上,高斯核就是一个加权平均,离x越近的xi其权重越高。而最开始的估计方式则是在区间内权重相等,区间外权重为0。
带宽:作为一个平滑参数,平衡结果中的偏差和方差。大带宽导致非常平滑(即高偏差)的密度分布,小带宽导致不平滑(即高方差)的密度分布。如果使用高斯核函数,理论上的最优带宽为
h=(3n4σ5)1/5≈1.06σn1/5
其中,σ为样本标准差。这种近似称为正态分布近似。