导数的核密度估计量是否有最佳带宽?


14

我需要使用内核密度估计器基于一组观察值来估计密度函数。基于同一组观察,我还需要使用核密度估计器的导数来估计密度的一阶和二阶导数。带宽肯定会对最终结果产生很大影响。

首先,我知道有两个R函数可以提供KDE带宽。我不确定哪一个更受欢迎。谁能推荐这些R函数中的一种来获得KDE带宽?

其次,对于KDE的派生,我应该选择相同的带宽吗?


对于密度,带宽的选择总是有些主观的。这是一个问题,即太窄会导致曲线的变化,而曲线的变化本质上是随噪声而变大的,曲线太平滑会错过曲线中的某些实际特征。但是您可以估计密度以找出形状。因此,估计应该多么平滑并不容易知道。对于衍生工具,我认为这取决于您想了解的衍生工具的特征。
Michael R. Chernick

Answers:


15

用于导数估计的最佳带宽将不同于用于密度估计的带宽。通常,密度的每个特征都有其自己的最佳带宽选择器。

如果您的目标是最小化平均积分平方误差(这是通常的标准),则没有主观可言。这是推导使准则最小化的值的问题。等式在Hansen(2009)的 2.10节中给出。

棘手的部分是,最佳带宽是密度本身的函数,因此该解决方案不是直接有用的。有很多方法可以尝试解决该问题。这些通常使用法线近似来近似密度的某些泛函。(请注意,没有假设密度本身是正常的。假定是假设正常,可以获得密度的某些函数。)

施加近似值的位置决定了带宽选择器的质量。最粗略的方法称为“正常参考规则”,它在较高水平上施加了近似值。Hansen(2009)第2.10节的结尾给出了使用这种方法的公式。这种方法是在CRAN包中的hns()函数中实现的ks。如果您不想编写自己的代码,那可能是最好的选择。因此,您可以按以下方式估算密度的导数(使用ks):

library(ks)
h <- hns(x,deriv.order=1)
den <- kdde(x, h=h, deriv.order=1)

一种更好的方法,通常称为“直接插入”选择器,它在较低级别上施加了近似值。对于直线密度估计,这是Sheather-Jones方法,使用R在R中实现density(x,bw="SJ")。但是,我认为在任何R包中都没有类似的工具可用于导数估计。

与其使用直接核估计,不如使用局部多项式估计器,可能会更好。可以使用R中包中的locpoly()函数来完成此操作ks。同样,没有实现最佳带宽选择,但是偏差将小于内核估计器。例如,

den2 <- locpoly(x, bandwidth=?, drv=1) # Need to guess a sensible bandwidth

感谢一百万,罗伯。我可能会使用SJ带宽进行密度估算。
user13154 2012年

对于微分估计,如果我使用h <-hns(x); den <-kdde(x,h = h,deriv.order = 1)是h用于估计的最佳带宽。我之所以这样问是因为选择了h <-hns(x)而不指定派生顺序。谢谢。
user13154 2012年

我检查了Hansen(2009)第2.10节末尾给出的公式。看来带宽取决于导数的阶数,即rth导数。h <-hns(x)似乎不依赖于r。
user13154'8

我刚刚发现hns函数具有deriv.order参数,可以在其中指定导数的顺序。罗伯,非常感谢。
user13154 2012年

抱歉。我忽略了。现在已修复。
罗伯·海德曼
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.