主要介绍箱线图(Box-plot)和利用Matlab绘制箱线图。
统计指标一般包括:四分位数、均值、中位数、众数、方差、标准差等,箱线图作为一种数据统计的方法,内容包括:最小值,第一分位,中位数,第三分位数,最大值。
箱线图于1977年由美国著名统计学家约翰·图基(John Tukey)发明,能够明确的展示离群点的信息,同时能够让我们了解数据是否对称,数据如何分组、数据的峰度。
箱线图(Box-plot)是一种用于显示一组数据分散情况的统计图,多用于多组数据的比较,相对于直方图,既可以节省空间,还可以展示更多信息(如均值、四分位数等)。
箱线图包含数学统计量,能够分析不同类别数据各层次水平差异,还可以揭示数据间离散程度、异常值、分布差异等。
箱线图内容详细介绍:
【注】图片来自https://zhuanlan.zhihu.com/p/110580568?from_voters_page=true
四分位数:
一组数据按照从小到大顺序排列后,把该组数据四等分的数,称为四分位数。第一四分位数 (Q1)、第二四分位数 (Q2,也叫“中位数”)和第三四分位数 (Q3)分别等于该样本中所有数值由小到大排列后第25%、第50%和第75%的数字。第三四分位数与第一四分位数的差距又称四分位距(interquartile range, IQR)。
(1)第一个四分位数Q1:也称作25th百分位数,表示最小数(不是“最小值”)和数据集的中位数之间的中间数。
(2)第二四分位数Q2:也称作中位数Median/50th百分位数,表示数据集的中间值。
(3)第三四分位数Q3:也称作75th百分位数,表示数据集的中位数和最大值之间的中间值(不是“最大值”)。
(4)四分位间距IQR:第25至第75个百分点的距离。
(5)离群值:Outliers
(6)最大值max、最小值min
利用正态分布的箱线图,可以帮助理解箱线图:
【注】图片来自https://zhuanlan.zhihu.com/p/110580568?from_voters_page=true
【注】图片来自https://www.bilibili.com/video/BV1GJ41137UH?p=13
【注】以下内容为MATLAB官方帮助文档。
Boxplot函数:用箱线图可视化汇总统计量。
语法:
boxplot(x) %创建 x 中数据的箱线图。如果 x 是向量,boxplot 绘制一个箱子。如果 x 是矩阵,boxplot 为 x 的每列绘制一个箱子。
%在每个箱子上,中心标记表示中位数,箱子的底边和顶边分别表示第 25 个和 75 个百分位数。须线会延伸到不是离群值的最远端数据点,离群值会以 '+' 符号单独绘制。
boxplot(x,g) % 使用 g 中包含的一个或多个分组变量创建箱线图。boxplot 为具有相同的一个或多个 g 值的各组 x 值创建一个单独的箱子。
boxplot(ax,___) %使用坐标区图形对象 ax 指定的坐标区和任何上述语法创建箱线图。
boxplot(___,Name,Value) %使用由一个或多个 Name,Value 对组参数指定的附加选项创建箱线图。例如,可以指定箱子样式或顺序。
参数:
x输入数据
在boxplot(x,g)中,x是输入数据,可以是数值向量(绘制一个箱子)或数值矩阵(为x的每列绘制一个箱子)。在每个箱子上,中心标记表示中位数,箱子的底边和顶边分别表示第25个和第75个百分位数。虚线会延伸到不是离散值的最远的端点,离散值会以‘+’符号单独绘制。
g分组变量
分组变量g指定为数值向量、字符数组、字符串数组、元胞数组或分类数组。分组变量中包含缺失值 (NaN)、空字符向量、空值或 字符串或 值的组将被忽略,并且不会计入其他参数考虑的组数中。
图形属性参数
函数表达式:boxplot(x,Name,Value)
。请查阅Matlab中boxplot函数的文档介绍,常用箱子外观属性整理:
绘制箱线图:
创建箱线图过程:
load carsmall %加载数据
%根据样本数据创建每加仑英里数 (MPG) 测量值的箱线图,按车辆的原产国 (Origin) 分组。添加标题并为坐标区加标签。
boxplot(MPG,Origin)
title('Miles per Gallon by Vehicle Origin')
xlabel('Country of Origin')
ylabel('Miles per Gallon (MPG)')
每个箱子直观地表示来自指定国家/地区的汽车的 MPG 数据。意大利的“箱子”显示为一条线,因为样本数据只包含该组的一个观测值。
修改图形属性参数:
如绘制带有缺口的箱线图:
1)生成两组样本数据
rng default % rng函数控制随机数生成
x1 = normrnd(5,1,100,1);% x1 包含从 mu = 5 和 sigma = 1 的正态分布生成的随机数
x2 = normrnd(6,1,100,1);% x2 包含从 mu = 6 和 sigma = 1 的正态分布生成的随机数
2)创建x1和x2的带缺口的箱线图
figure
boxplot([x1,x2],'Notch','on','Labels',{'mu = 5','mu = 6'})
title('Compare Random Data from Different Distributions')
3)修改属性值:boxplot([x1,x2],'Notch','marker','Labels',{'mu = 5','mu = 6'})
根据需求可以在MATLAB官方文档进行查看与修改属性。
箱线图:https://blog.csdn.net/symoriaty/article/details/93978817
如何深刻理解箱线图(boxplot):https://zhuanlan.zhihu.com/p/110580568?from_voters_page=true
MATLAB教学-统计:https://www.bilibili.com/video/BV1GJ41137UH?p=13
MATLAB官方文档:https://www.mathworks.com/matlabcentral/fileexchange/51134-boxplot?s_tid=srchtitle
Matlab中boxplot函数的用法:https://blog.csdn.net/JiangHui1211/article/details/85049597