百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

MATLAB统计图

bigegpt 2024-09-16 12:22 4 浏览

统计图

1 箱线图

箱线图,又称作箱须图(box-whiskerplot)是利用数据中的五个特征值——最小值、第一四分位点、中值、第三四分位点、最大值来描述数据的图形。箱线图可以粗略的估计数据是否具有对称性,粗略观察数据的分散程度,特别可用于对几个样本的比较。

箱线图的做法:

(1)画一个箱子,其左侧线为样本0.25分位数m0.25位置,右侧线为样本0.75分位数m0.75位置,在样本中位数(即0.5分位数m0.5)位置上画一条数线,画在箱子内。这个箱子包含了样本中50%的数据

(2)在箱子左右两侧各引出一条水平线,左侧画直max{min(x),m0.25-1.5(m0.75-m0.25)},右侧画值min(max(x),m0.25+1.5(m0.75-m0.25)),落在左右边界之外的样本点被称为异常点,用红色‘+’号标出。

箱线图非常直观地反映了样本数据的分散程度以及总体分布的对称性,利用箱线图可以直观的识别样本中的异常值。

MATLAB统计工具箱中提供了boxplot函数绘制箱线图。

调用格式:

boxplot(X,‘Name’,value);

‘Name’是箱线图的一些属性,value是该属性的值

例如:

Name为‘notch’,当value为on时,产生的是凹盒图(有切口的box图),off时产生矩箱图(无切口的box图)。

Name为‘orientatiaon’,当value为horizontal时,箱图是水平画的,vertical时为垂直箱图

score=xlsread('C:\Users\Administrator\Desktop\MATLAB\MATLAB数据分析与统计\chapter4\1.xls','G2:G52');

score=score(score>0); %只把成绩不为0的数据取出来,即去掉缺考成绩

figure;

boxlabel={'考试成绩箱线图'}; %箱线图的标签

boxplot(score,boxlabel,'notch','on','orientation','horizontal');

% boxplot(score)

xlabel('考试成绩');

2 频数(频率)直方图

频数(频率)直方图的做法如下:

(1)将样本观测值x1,x2,......,xn从小到大排序并去除多余的重复值,得到x(1)<x(2)<......<x(l).

(2)适当选取略小于与x(1)的数a和略大于x(l)的数b,将区间(a,b)随意分为k个不想交的小区间,记第i个小区间为Ii,其长度为hi。

(3)把样本观测值逐个分到各区间内,并计算样本观测值落在各区间内的频数ni,及频率fi=ni/n.

(4)在x轴上截取各区间,并以各区间为底,以ni为高左小矩形,就得到频数直方图;如果以fi=ni/n为高做小矩形,就得到频率直方图。

MATLAB统计工具箱中提供了hist函数用来绘制频数直方图,用法

hist(x,n): x是要统计的数据,n表示用多少个小矩形(默认10个)

还提供了ecdf和ecdfhist函数,用来绘制频率直方图

[f,xc]=ecdf(x) : 调用ecdf函数计算xc处的经验分布函数值f,返回值作为ecdfhist函数的参数绘制频率直方图

ecdfhist(f,xc,n) :n表示用多少个小矩阵(默认10个)

例:

score=xlsread('C:\Users\Administrator\Desktop\MATLAB\MATLAB数据分析与统计\chapter4\1.xls','G2:G52');

score=score(score>0); %只把成绩不为0的数据取出来,即去掉缺考成绩

figure;

hist(score);

xlabel('考试成绩')

ylabel('频数')

title('频数直方图');

figure;

[f,xc]=ecdf(score);

ecdfhist(f,xc);

xlabel('考试成绩')

ylabel('频率');

title('频率直方图');

3 经验分布函数图

根据2.2中直方图的做法,可以得到样本频数和频率分布表如下所示

观测值 x(1) x(2) ........ x(l) 总计

频数 n1 n2 ........ nl n

频率 f1 f2 ......... fl 1

样本分布函数(经验分布函数)到定义为

经验分布函数图是阶梯状态,反映了样本观测数据分布情况。

MATLAB统计工具箱中提供了cdfplot函数来绘制样本经验分布函数图,ecdf函数计算各点处的经验分布函数值

用法:

[h,stats]=cdfplot(x): x是输入的数据,返回值h为图形句柄,stats为结构变量,stats中有5个字段,分别对应最小值、最大值、平均值、中位数和标准差

[f,xc]=ecdf(x) : x是输入数据,返回xc处的经验分布函数值f,xc向量的长度为length(x)+1

例:

score=xlsread('C:\Users\Administrator\Desktop\MATLAB\MATLAB数据分析与统计\chapter4\1.xls','G2:G52'); score=score(score>0); %只把成绩不为0的数据取出来,即去掉缺考成绩

figure;

[h,stats]=cdfplot(score)

set(h,'color','k','linewidth',2); %设置一下图形h的属性,便于观察

% [f,xc]=ecdf(score)

% figure;

% plot(xc,f)

4 正态概率图

正态概率图用于正态分布的检验,正态分布的概率图描绘的是一条直线(参考线),每一个样本观测值对应上的一个‘+’号,如果图中的‘+’号都集中在参考线附加,说明样本观测数据近似服从正态分布;若果偏离参考线的‘+’号越多,说明样本观测数据不服从正态分布。

MATLAB统计工具箱中提供了normplot函数,用来绘制正态概率图。

调用格式:

normplot(x):x是输入的数据

score=xlsread('C:\Users\Administrator\Desktop\MATLAB\MATLAB数据分析与统计\chapter4\1.xls','G2:G52');

score=score(score>0); %只把成绩不为0的数据取出来,即去掉缺考成绩

figure;

normplot(score)

从图中可以发现,处理左下角两个异常点之外,其余的‘+’号均在参考线附加,说明输入的数据近似服从正态分布。

5 p-p图

p-p图用来检测数据是否服从指定的分布,和normplot定义类似,normplot函数是检测是否服从正态分布,而normplot不仅可以检测是否服从正态分布,还可以检测是否服从其他指定的分布,只需在调用函数的时候指定一下是哪种分布。

调用格式:

probplot('name',x) :x是输入检验的数据,‘name’指定检验哪种分布,name可以取

name 说明

exponential 指数分布

extreme value 极值分布

lognormal 对数分布

normal 正态分布

rayleigh 瑞利分布

weibull 韦伯分布

例:

score=xlsread('C:\Users\Administrator\Desktop\MATLAB\MATLAB数据分析与统计\chapter4\1.xls','G2:G52');

score=score(score>0); %只把成绩不为0的数据取出来,即去掉缺考成绩

figure;

probplot('normal',score)

和用normplot函数检验结果是一样的。

6 q-q图

q-q图不仅能检验样本是否服从指定分布,还能检测两个样本是否服从相同的分布。

MATLAB统计工具箱中提供了qqplot函数绘制q-q图。

下面调用qqplot函数绘制两个班级成绩数据的q-q图,观测这两个班级的成绩数据是否服从相同的分布。

%读取Excel中的班级数据即B2:B52

banji=xlsread('C:\Users\Administrator\Desktop\MATLAB\MATLAB数据分析与统计\chapter4\1.xls','B2:B52');

%读取总成绩数据,即G2:G52中的数据

score=xlsread('C:\Users\Administrator\Desktop\MATLAB\MATLAB数据分析与统计\chapter4\1.xls','G2:G52');

%去除缺考的数据

banji=banji(score>0);

score=score(score>0);

%提取两个班级的总成绩

score1=score(banji==60101);

score2=score(banji==60102);

%绘制两个班级成绩数据的q-q图

qqplot(score1,score2);

图中可以看,偏离参考线的‘+’号比较多,可以认为两个班的成绩不服从相同的分布

相关推荐

最全的MySQL总结,助你向阿里“开炮”(面试题+笔记+思维图)

前言作为一名编程人员,对MySQL一定不会陌生,尤其是互联网行业,对MySQL的使用是比较多的。对于求职者来说,MySQL又是面试中一定会问到的重点,很多人拥有大厂梦,却因为MySQL败下阵来。实际上...

Redis数据库从入门到精通(redis数据库设计)

目录一、常见的非关系型数据库NOSQL分类二、了解Redis三、Redis的单节点安装教程四、Redis的常用命令1、Help帮助命令2、SET命令3、过期命令4、查找键命令5、操作键命令6、GET命...

netcore 急速接入第三方登录,不看后悔

新年新气象,趁着新年的喜庆,肝了十来天,终于发了第一版,希望大家喜欢。如果有不喜欢看文字的童鞋,可以直接看下面的地址体验一下:https://oauthlogin.net/前言此次带来得这个小项目是...

精选 30 个 C++ 面试题(含解析)(c++面试题和答案汇总)

大家好,我是柠檬哥,专注编程知识分享。欢迎关注@程序员柠檬橙,编程路上不迷路,私信发送以下关键字获取编程资源:发送1024打包下载10个G编程资源学习资料发送001获取阿里大神LeetCode...

Oracle 12c系列(一)|多租户容器数据库

作者杨禹航出品沃趣技术Oracle12.1发布至今已有多年,但国内Oracle12C的用户并不多,随着12.2在去年的发布,选择安装Oracle12c的客户量明显增加,在接下来的几年中,Or...

flutter系列之:UI layout简介(flutter-ui-nice)

简介对于一个前端框架来说,除了各个组件之外,最重要的就是将这些组件进行连接的布局了。布局的英文名叫做layout,就是用来描述如何将组件进行摆放的一个约束。在flutter中,基本上所有的对象都是wi...

Flutter 分页功能表格控件(flutter 列表)

老孟导读:前2天有读者问到是否有带分页功能的表格控件,今天分页功能的表格控件详细解析来来。PaginatedDataTablePaginatedDataTable是一个带分页功能的DataTable,...

Flutter | 使用BottomNavigationBar快速构建底部导航

平时我们在使用app时经常会看到底部导航栏,而在flutter中它的实现也较为简单.需要用到的组件:BottomNavigationBar导航栏的主体BottomNavigationBarI...

Android中的数据库和本地存储在Flutter中是怎样实现的

如何使用SharedPreferences?在Android中,你可以使用SharedPreferencesAPI来存储少量的键值对。在Flutter中,使用Shared_Pref...

Flet,一个Flutter应用的实用Python库!

▼Flet:用Python轻松构建跨平台应用!在纷繁复杂的Python框架中,Flet宛如一缕清风,为开发者带来极致的跨平台应用开发体验。它用最简单的Python代码,帮你实现移动端、桌面端...

flutter系列之:做一个图像滤镜(flutter photo)

简介很多时候,我们需要一些特效功能,比如给图片做个滤镜什么的,如果是h5页面,那么我们可以很容易的通过css滤镜来实现这个功能。那么如果在flutter中,如果要实现这样的滤镜功能应该怎么处理呢?一起...

flutter软件开发笔记20-flutter web开发

flutterweb开发优势比较多,采用统一的语言,就能开发不同类型的软件,在web开发中,特别是后台式软件中,相比传统的html5开发,更高效,有点像c++编程的方式,把web设计出来了。一...

Flutter实战-请求封装(五)之设置抓包Proxy

用了两年的flutter,有了一些心得,不虚头巴脑,只求实战有用,以供学习或使用flutter的小伙伴参考,学习尚浅,如有不正确的地方还望各路大神指正,以免误人子弟,在此拜谢~(原创不易,转发请标注来...

为什么不在 Flutter 中使用全局变量来管理状态

我相信没有人用全局变量来管理Flutter应用程序的状态。毫无疑问,我们的Flutter应用程序需要状态管理包或Flutter的基本小部件(例如InheritedWidget或St...

Flutter 攻略(Dart基本数据类型,变量 整理 2)

代码运行从main方法开始voidmain(){print("hellodart");}变量与常量var声明变量未初始化变量为nullvarc;//未初始化print(c)...