R中的平滑分位数估计算法

时间:2017-02-27 08:10:40

标签: r algorithm quantile

我看到M. C. Jones关于平滑分位数估计的论文(link)。他建议在点p附近使用以下估计量来表示分位数函数Q(第2节的第一个等式)。我试图在R中对函数进行编码,但估计与经验分位数相差甚远。

对于单变量样本X,带宽h和分位数p代码

SmoothQuantile = function(x, h, p) {
xs = sort(x)
n  = length(x)
q  = 0
for(i in 1:n) {
   q = q + xs[i] * integrate(function(y) { 1/h * dnorm((p-y)/h) }, lower = (i-1)/n, upper = i/n)$value
}
return(q)
}

上面的估算工具似乎非常简单。什么可能导致结果远离经验分位数的想法?

比较结果使用

x=rnorm(100, 0, 1)
p=0.01
h=0.3043                #normal scale bandwidth value
quantile(x, p)          #empirical quantile
SmoothQuantile(x, h, p) #smooth quantile

0 个答案:

没有答案