Parzen窗法:
假定围绕x点的区域Rn为一立方体,边长为hn,空间维度为d,则体积为Vn=hnd,考察xk是否落入超立方体内,则要检查向量x-xk的每一个分量是否小于1/2。
定义窗函数为
于是
利用matlab模拟,代码如下:
function p=Parzen(xi,x,h1)
% xi=randn(2,1024); xi 为样本
% x=linspace(-2,2,1024); x为概率密度的自变量的取值
% h1=1; 为样本数为1时的窗宽
% p : x对应的概率密度函数值
N=size(xi,2);
hn=h1/sqrt(N);
[X Xi]=meshgrid(x,xi); %用来生成网格矩阵
b=abs(X-Xi);
f=zeros(N,N);
for m=1:N
forn=1:N
if (b(m,n)<=0.5)
f(m,n)=1;
end
end
end
p=sum(f/(hn*hn))/N;
plot(x,p)
end
最终画出的 x-p 正态分布图形为: