计算数据的经验分布函数与MATLAB作图
计算数据的经验分布函数与MATLAB作图
写在前面
因为某些原因,需要处理某些数据,比如说某项测量数据与理论值的误差,我们就需要检验误差是否符合正态分布。最直观的方法就是直接做出经验分布函数的图来进行观察。所以这里简单的写一下如何做出经验分布图。
第一步,做经验分布图
对数据按升序排列
首先我们将所有一共n个数据按照升序排列。之所以升序,是因为这样方便我们后续计算。
将区间[a, b]分成小段
a是所有数据的最小值,b是所有数据的最大值,我们将所有数据分成小区间,比如说将[a,b]分为
- [a,a+(b-a)/100]
- [a, a+2*(b-a)/100]
- …
- [a, b]
注意,区间左值永远是a,然后计算每个区间内落入数据点的个数,这样就得到了一个类似于频数分布直方图的东西。我们记第i个区间内数据点的个数为f_i,令所有f_i除以n得到数据落入第i个区间的频率p_n,也就是
p_i = f_i/n
当n无穷大的时候,就可以认为p_i是数据在这个区间内的概率,并且有p_n=1,也就是具有归一性。
那么我们就直接做出区间右值与p_i的函数图象,就是这个数据的经验分布函数了。
写程序
假设我们现在的数据都在data里,是1xn大小的向量。
[~, n] = size(data);
%最大值与最小值
d_max = max(data);
d_min = min(data);
%划区间,step是小的区间长度
x = d_min:step:d_max;
len = length(x);
%提前给区间的频数f预留空间
func = zeros(1, len)
for i = 1:len%sum内的data<=(d_min+i*step)是逻辑判断语句%整个语句意思是找出data内小于等于d_min+i*step的总个数func(i) = sum(data<=(d_min+i*step))
end
plot(x, func/n, 'b-', 'LineWidth', 1)
title('经验分布函数')
第二步,做正态分布的图
要知道我们的经验函数虽然假设服从正态分布,所以我们要知道服从的是均值为多少,标准差为多少的正态分布,在这里我们就需要计算我们原始数据的均值mu与标准差sigma。
计算出mu和sigma后做出对应的正态分布图即可。
下面是程序
%均值
mu = sum(data)/n;
%标准差
sigma = sqrt(1/(n-1)*sum((data-mu).^2));
%正太分布数据点
func_norm = normcdf(x, mu, sigma);
plot(x, func_norm, 'k-', 'LineWidth', 1)
第三步,做置信带
实际上我也不是很清楚置信带具体的含义是什么,因为对于标准正态分布的95%置信带,意思就是样本点落在置信带内的概率为95%,但是如果是经验分布函数的话,画上一个置信带的意义就不是很明确了。
不过即便如此,这里还是画上比较好。
%f实际上就是经验分布函数,与上文中计算出来的func一模一样,x是横轴
%flo是置信下区间,fup是置信上区间
[f, x, flow, fup] = ecdf(data);
stairs(x, flow, 'r:', 'LineWidth', 1)
stairs(x, fup, 'r:', 'LineWidth', 1)%写一下图例等
legend('经验分布函数', '正态分布函数', '置信下限', '置信上限')
xlabel('x')
ylabel('F(x)')
最后得出图像
如下图所示
可以看出来我们的经验分布函数和正态分布吻合的比较好。
感想
实际上我感觉置信带应该画正态分布的,而不是如果我们的经验分布函数所有点都在正态分布的置信带里面,则说明我们的数据服从正态分布,置信程度为95%。这样子还比较能够说得过去。
计算数据的经验分布函数与MATLAB作图相关推荐
- 样本均值,顺序统计量,样本中位数, 样本方差,样本标准差,直方图,核密度估计曲线,经验分布函数图,箱形图;matlab实现
1.数据一:1988年至2018年中国粮食产量(万吨),具体数据见表格1,数据来源: http://data.stats.gov.cn/easyquery.htm?cn=C01&zb=A0D0 ...
- 数理统计之参数估计与假设检验(二)——经验分布函数与QQ图
参数估计与假设检验 经验分布函数 定义 具体应用 Q-Q图 例题 参考文献 经验分布函数 定义 设 X 1 , X 2 , . . . , X n X_1,X_2,...,X_n X1,X2,.. ...
- 克劳特法matlab,经验模式分解matlab
EMD分解的matlab程序 %此版本为 ALAN 版本的整合注释版 function imf = emd(x...(x1) %当标准偏差系数 sd 大于 0.1 或 x1 不是固有模态函数时,分量终 ...
- matlab在曲线给命名,matlab 利用xlsread画图,怎么将一组excel数据导入,通过matlab作图...
Matlab 循环 for 语句 xlsread EXCEL表格数据导入 画图 Matlab的 xlsread() 函数可以将Excel数据到matlab工作空间,然后就可以根据读入据作图.下面给出操 ...
- matlab 三维饼图,重新学习MATLAB——作图技法及3D可视化
了解点儿MATLAB,知道它非常有用,但一直不太会用,如何快速掌握并运用它呢? 本专栏力争用最简洁的语言和逻辑,让您在最短时间内,学到教材课程中罕见的MATLAB运用技法,从新手迈向成手. 超强的MA ...
- MATLAB作图方法与技巧(二)
作为MATLAB作图方法与技巧(一)的补充 1.绘制二维散点图 ① scatter函数 scatter(x,y,s,c)函数绘制向量x和y的散点图,其中s代表点的大小,c代表点的形状,s和c缺省时为默 ...
- Matlab作图后的各种调整方法——线条、坐标、标题、图例
Matlab作图后的各种调整方法--线条.坐标.标题.图例 文章目录 Matlab作图后的各种调整方法--线条.坐标.标题.图例 一 , 写在前面 1.整个图窗 Figure(gcf) 2.我们使用命 ...
- matlab留白,matlab作图导出为PDF去除留白插入latex
latex写论文时,一般为了图片不失真,引用的图片需要转为pdf格式.matlab作图,直接导出为pdf经常遇到有灰色底色,有大片留白等不符合要求的情况,此博介绍一种简单的方法,轻松导出图片. 此外, ...
- 概率统计Python计算:样本数据的经验分布函数
设 ( x 1 , x 2 , ⋯ , x n ) (x_1,x_2,\cdots,x_n) (x1,x2,⋯,xn)是总体 X X X的一个样本观测值.与绘制直方图相仿,记 a = m i n ...
最新文章
- MySQL编程(0) - Mysql中文乱码问题解决方案
- HTML地址栏传数据和json区别,前端利用formData格式进行数据上传,前端formData 传值 和 json传值的区别?...
- 背水一战 Windows 10 (41) - 控件(导航类): Frame
- [转载] 大型网站的 HTTPS 实践(一)—— HTTPS 协议和原理
- ASP.NET 常用的33种代码(转,收藏一下,以备后查)
- 加密芯片——摘要算法特点与应用注意事项
- 一口气发布11项新升级,免费送出1亿元算力:国产深度学习平台PaddlePaddle大更新...
- ToString截取字符串的用法
- 2018年度报告单_2018年度最佳在线IT课程
- autohotkey -- AHK 替换 4 为 $ 方便脚本编写
- Emacs快捷键的总结
- svn 回滚文件修改
- QT 菜单栏、工具栏和状态栏
- mac linux网卡驱动下载官网下载,linux | 网卡驱动
- 一文搞懂 Flink 网络流控与反压机制
- appollo消息服务器,Springboot 集成 MQTT —— web 服务端实现(apollo 客户端)-Go语言中文社区...
- 【小5聊】小程序之体验版本wx.chooseImage选择图片上传可以,而线上正式版本选择图片一闪而过的原因
- dz每个php模板页文件,dz模板引擎分析
- 英特尔中国研究院深度学习领域最新成果——“动态外科手术”算法
- 【20210728】【信号处理】Alpha-Beta滤波——一种状态估计的方法