R 语言与非参数统计(核密度估计)
背景
核密度估计是在概率论中用来估计未知的密度函数,属于非参数检验方法之
一,由 Rosenblatt (1955)和 Emanuel Parzen(1962)提出,又名 Parz 1. dfn1<-function(x){
2. *dnorm(x,3,1)+*dnorm(x,-3,1)}
3. par(mfrow=c(2,2))
4. curve(dfn1(x),from=-6,to=6)
5. data<-c(rnorm(200,3,1),rnorm(200,-3,1))
6. plot(density(data,bw=8))
7. plot(density(data,bw=))
8. plot(density(data,bw=))
得到下图,我们可以清楚的看到带宽为 恰好合适,其余的不是拟合不足便是
过拟合。
窗宽究竟该如何选择呢?
我们这里不加证明的给出最佳窗宽选择公式:(这个基于积分均方误差最小的角度得到的)
这里介绍两个可操作的窗宽估计办法:(这两种方法都比较容易导致过分光滑)
1、 Silverman 大拇指法则
这里使用 R(phi’’)/sigma^5 估计 R(f’’),phi 代表标准正态密度函数,得到 h 的
表达式:
h=(4/(3n))^(*1/5)*sigma
2、 极大光滑原则
h=3*(R(K)/(35n))^(1/5)*sigma
当然也有比较麻烦的窗宽估计办法,比如缺一交叉验证,插入法等,可以参阅
《computational statistics》一书
我们用上面的两种办法得到的窗宽是多少,他的核密度估计效果好吗?
我们还是以上面的混合正态数据为例来看看效果。
使用大拇指法则,将数据n=400,sigma=,带入公式,h=
使用极大光滑原则,假设K 为正态核,R(K)=1/(sqrt(2*pi)),h=
可以看出他们都比我们认为的h= 要大一些,作图如下:
[plain] view plaincopyprint?
1. plot(density(data,bw=))
2. plot(density(data,bw=))
由我们给出的以 Gauss 核为例做核密度估计
用 Gauss 核做核密度估计的
核密度图详解 来自淘豆网m.daumloan.com转载请标明出处.