function [x,cumpr]=my_empirical_dist(data)
% generate empirical distribution function
% input:
% data is a vector
% output:
% x is sample observation vector
% cumpr is cumulative probability vector
if min(size(data))~=1
error('data must be a vector')
end
n=length(data);
data=reshape(data,n,1);
data=sort(data);
[x,a,b]=unique(data);
frequency=[a(1);diff(a)];
cumpr=cumsum(frequency)/n;
经验分布函数
对样本值进行从大到小排序,可得到x(1)⋯x(n)x(1)⋯x(n)的有序样本。定义 为经验分布函数,其满足分布函数的性质: 经排序可得有序样本: 当n=20时: 当n=50时: 当n=100时: 当n=1000时: 可以看到随着样本数增加,经验分布函数逐渐趋向于一条光滑的分布函数曲线。理论上来说也是由格里纹科定理保证的。 0 废话前言 在阅读统计学习方法时,遇到经验分布,对于数学渣渣来说,有必要去深究一下,然后发现是如此的简单。 1 正文 简介(数学语言) 经验分布函数是与样本经验测度相关的分布函数。 该分布函数是在n个数据点中的每一个上都跳跃1 / n的阶梯函数。 其在测量变量的任何指定值处的值是小于或等于指定值的测量变量的观测值的数。 经验分布函数是对样本中生成点的累积分布函数的估计。 根据Glivenko-Cantelli定理,它以概率1收敛到该基础分布。 同时也存在一些结果来量化经验分布函数与潜在的累积分布函数的收敛速度。 举个例子(说人话) 设 x1,x2,⋯,xn 是总体 X 的一组容量为 n 的样本观测值,将它们按从小到大的顺序重新排列为对于任意实数 x,定义函数 则称 Fn(x) 为总体 X 的经验分布函数。它还可以简记为 Fn(x)=1/n⋅ {x1,x2,⋯,xn},其中 {x1,x2,⋯,xn} 表示 x1,x2,⋯,xn 中不大于 x 的个数。 另外一种常见的表示形式为 : 因此,求经验分布函数 2 总结 经典统计推断主要的思想就是用样本来推断总体的状态,因为总体是未知的,我们只能通过多次试验的样本(即实际值)来推断总体。 经验分布函数是在这一思想下的一种方法,通过样本分布函数来估计总体的分布函数。
Fn(x)=⎧⎩⎨⎪⎪0,kn,1,x
单调不减
有界性
右连续性
下面给个例子:下面有容量为5的样本数据:
351 347 355 344 351
x(1)=344x(2)=347x(3)=351x(4)=351x(5)=355x(1)=344x(2)=347x(3)=351x(4)=351x(5)=355
其经验分布函数为
Fn(x)=⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪0,0.2,0.4,0.8,1,x<344,344≤x<347,347≤x<351,351≤x<355,当x≥355
Fn(x)={0,x<344,0.2,344≤x<347,0.4,347≤x<351,0.8,351≤x<355,1,当x≥355
可以看得到经验分布函数为阶梯函数。想象一下当样本数增多时,经验分布函数的阶梯数不断增多,最后会趋近于一个光滑分布函数的形状(但并不光滑)。为什么 要定义经验分布函数呢?接下来介绍一个最重要的定理:格里纹科定理。
设x1,x2,...xnx1,x2,...xn是取自总体分布函数为F(x)的样本,Fn(x)Fn(x)是其经验分布函数,当n→∞n→∞时,有
P(sup−∞
下面举个例子,在R里不断生成标准正态随机数,我们观察经验分布函数的图像:
当n=10时:
在一点x处的值,只要求出随机变量X的n个观测值
中小于或等于x的个数,再除以观测次数n即可。由此可见,
就是在n次重复独立实验中事件
出现的频率。
经验分布函数
的图形(如下图所示)是一条呈跳跃上升的。如果样本观测值
中没有重复的数值,则每一跳跃为1/n,若有重复L次的值,则按1/n的L倍跳跃上升。图中圆滑曲线是总体X的理论分布函数F(x)的图形。若把经验分布函数的图形连成折线,那么它实际就是累积频率直方图的上边。
这和概率分布函数的性质是一致的。
因此在最大熵模型中就运用经验分布