作者 | fesianx
导读
在实际工作中,我们经常会遇到一堆数据,对数据进行有效的分析至关重要,而数据的分布是一个非常重要的数据属性,需要通过适当的可视化手段进行分析。 在本文中,我们参考[1]介绍了一些常用的基于Seaborn库的数据分发可视化方法。
全文8720字,预计阅读时间22分钟。 数据的分布可以理解为“数据的形状”。 “完美”的数据分布包括所有可能的数据点,因此数据的分布代表了不同数据之间的本质区别。 但是,在现实生活中的数据中不可能遍历所有可能的数据点(因为通常存在无限数量的数据点),因此我们通常尝试分析原始数据在样本子集中的分布。 可视化数据分布的常用方法如下:
1.直方图
2.条件直方图
3.核密度估计 (KDE)。
4.经验累积分布函数 (ECDF)。
5.箱线图
6.小提琴剧情
7.双变量直方图
8.联合分布图
9.边际分布图
如图1所示我们以 Penguins 数据集为例。
fig 1.企鹅数据集中共有344条数据,每条数据有7个维度属性。
单变量直方图是一种单变量分布可视化方法,将所有数据点划分为多个桶,然后统计一个桶中数据点的频率,并以柱形图的形式绘制每个桶的频率。 如图1所示如图 1 所示,我们在企鹅数据中绘制了 Flipper Length mm 属性。
fig 1.1对企鹅数据flipper_length_mm
属性(从左到右依次为:(a) 箱数为 20,(b) 箱数为 50,以及 (c) 箱的宽度为 5。
我们发现,选择不同的铲斗编号和铲斗宽度对整体分布可视化结果有很大影响。 桶越多,分布越详细,但就越有可能受到一些噪音的影响,以分析整体分布趋势。 原始直方图统计的是数据的频率,不同数据的总数不同,因此频率不具有可比性,通常可以考虑归一化。 如图1所示如图2所示,归一化一般有两种类型:密度归一化和概率归一化。 密度归一化意味着所有条的面积之和为 1,概率归一化意味着所有柱的高度之和为 1。 在密度归一化的情况下,由于纵坐标的值受横坐标数值尺度的影响,因此通常不具有可比性,而概率归一化不需要考虑横坐标的数值尺度,因此通常具有可比性。
fig 1.2 (a) 密度归一化形式的归一化; (b) 概率归一化形式的归一化。 我们可以对连续变量和离散变量进行直方图统计,如图 1如图 3 所示,我们可以通过设置收缩参数来控制条形的宽度,使可视化更像离散变量的直方图。
fig 1.3 (a)shrink=1.0 案,立柱之间“肩并肩”,无间隙; (b) 通过设置 shrink=08.它可以使离散变量的柱线之间的间隔看起来更“离散”,这与连续变量的直方图不同。
返回图 12.我们可以清楚地看到,在这个分布中有两个截然不同的峰,这个鳍状肢长度mm代表企鹅鳍状肢的长度,这个属性还会受到哪些其他属性的影响? 在前面的直方图中,我们绘制了一个概率分布,但现在我们需要绘制一个条件概率分布,看看还有哪些其他属性会影响企鹅脚蹼的长度。 如图2所示1 显示,由于作者认为物种、性别和有人居住的岛屿可能会影响企鹅鳍状肢的长度,因此我绘制了几种条件的分布。 从图 21(a)可以发现企鹅种类确实有影响(鳍状肢分布在阿德利种和巴布亚种之间有显著差异),而雌企鹅和雄性企鹅的鳍状肢长度是双峰的,所以不导致图12** 本双峰分布的原因,同样的原因,从图2企鹅居住的岛屿可以在 1(c) 中找到,也是双峰发生的原因。 这些条件分布可以通过在 displot() 中设置 hue 参数来实现。
fig 2.1 (a)-(c) 是不同条件分布的直方图。 然而,奇怪的是,居住地会影响企鹅脚蹼的生长发育,这可能不是直接原因,而可能是不同种类的企鹅生活在不同的岛屿上造成的。 我们可以绘制条件分布以供研究,如图 2 所示如图2所示,其中(a)是条件分布柱形图的一般形式,我们发现不同条件下的柱形图会堆叠在一起,容易看清楚,在这种情况下通过设置multiple="stack"将其设置为堆叠模式,柱形图将以堆叠形式显示,没有级联。 我们可以在图 2 中找到它1(c)中Biscoe岛和Dream岛上的两座山峰是由于两个岛屿上最大的两个企鹅种群Gentoo和Chinstrap+Adelie的分布(这两个物种的分布比较接近)。 换句话说,鳍状肢和企鹅物种之间的联系是基本的因果关系。
fig 2.2 (a)条件分布绘制的一般形式,有时由于柱形图的级联,很容易看清楚,在这种情况下可以使用堆叠模式,如(b)所示,不同柱线之间不会有级联。 我们在图 1 中由于图 1,直方图的归一化在 2 中提到2是单变量的分布归一化,所以它只是图中纵坐标刻度的变化,整个图的形状不会改变。 在条件直方图中,我们可以将公共范数设置为 false,归一化将独立地归一化不同条件下的条件分布,如图 2 所示图3表明(a)和(b)仅用纵坐标来区分,而(c)是不同条件下条件分布的各自归一化。
fig 2.3 (a) 有条件分布的原始地图; (b) 使条件的分布正常化,而不考虑不同条件之间的差异; (c) 在不同条件下分别进行归一化。
直方图对数据进行分箱并计算每个框中数据点的频率,因此直方图是一个离散的柱形图,即使数据是连续的。 有没有办法更好地反映数据的连续性? 核密度估计(KDE)是一种可行的方法,我们假设每个数据点都是数据分布的随机抽样,从均值中抽样就是观测值,方差就是核分布,如式(3-1)所示,我们将所有数据点的核密度估计曲线叠加,得到整个数据分布的核密度估计曲线。 我们的核分布通常可以采用高斯分布的形式,如方程(3-2)所示。
如图3所示图 1 显示了给定 6 个观测值的直方图,如图 3 所示1(a),如图3所示图1(b)显示,红色曲线表示每个样本的高斯核密度估计值,该值相加得到蓝色曲线,蓝色曲线是整个数据分布的核密度估计曲线。
fig 3.1 (a) 直方图; (b)对每个样品进行核密度估计,然后叠加以获得数据分布的拟合曲线。
回到我们的 seaborn,我们通过设置参数 kind= 来做到这一点"kde"并通过BW Adjust(我们通常称为带宽)控制其方差。 如图3所示如图2所示,核密度估计曲线的形状在不同带宽下变化很大,如图3所示在2(b)中,太小的带宽可以在分布中看到更多细节,但它也会受到更多数据噪声和太多毛刺的影响。 如图3所示如图2(c)所示,带宽过大会使曲线过于平滑,从而使某些分布细节被遮挡,例如双峰分布。
fig 3.2 不同带宽参数对核密度估计函数曲线的影响。
当然,核密度估计也可以用于条件分布的情况,如图 3 所示图3显示还有几个不同的参数来配置曲线的显式效果。
fig 3.3 (a) 条件分布下的核密度估计曲线; (b) 堆栈模型条件分布核密度估计曲线; (c) 填充曲线下面积的条件分布核密度估计曲线。 直方图和核密度估计曲线可以绘制在同一图中,以便于分析,如图 3 所示4.
fig 3.4 在同一图中绘制直方图和核密度估计曲线。
直方图和核密度估计都太“沉重”了,很多时候,当我们刚接触某个数据集时,一些统计指标就足以让我们对数据有足够的了解。 常用的统计指标有:中位数(第50个百分位线)、均值、方差、第25个百分位线、第75个百分位线等,这些指标大多可以从箱线图中一目了然地看出来。 如图4如图1所示,箱形图由五条线组成,Q1是第25个百分位线,Q3是第75个百分位线,是指将数据从低到高(升序)排序,前25%称为第25个百分位线,前75%称为第75个百分位线。 Q3-Q1 称为四分位距 (IQR),Q2 是第 50 个百分位线,即中位线,小于 Q1-15IQR及大于Q3+15IQR 的数据称为异常值。
fig 4.1 箱形图的几个基本分位数线。 如图4如图 2 所示,我们可以用 Seaborn 绘制一个箱形图,其中均值用红点表示,图 4图2(a)实际上绘制了条件分布下的箱形图,当然也可以与图4相同2(c) 与绘制单变量箱形图相同,这也是我们看到的最常见的形式。 如图4如 2(b) 所示,我们还可以在 2 个条件下绘制箱形图,即 . .通过箱形图,我们可以直观地观察不同数据分布之间的差异,这是一种轻量级的数据分布分析方法。
fig 4.2 (a) 箱体视图; (b) 多种条件下的箱形图; (c) 单变量箱形图。
箱形图可以提供数据的视觉印象,但为了进一步分析数据,我们仍然需要引入分布曲线。 我们希望能够同时以箱形图的形式可视化数据分布,这样我们不仅可以重用从箱形图中获得的结论,还可以探索数据分布中的细微差别。 Violinplot 就是为此而设计的,如图 5图 1 以类似于箱线图的布局显示数据的核密度估计曲线,其中每条黑色垂直线是每个真实采样点的数据。 需要注意的是,小提琴图本质上是一条核密度估计曲线,所以如果样本数据太小,曲线就不准确,所以我们通常用绘制样本点(即黑色垂直线)来判断数据数量是否太稀疏,KDE是否难以置信。
fig 5.1 小提琴图的不同形式,(a)小提琴图; (b) 两种条件下的小提琴图; (c) 单变量小提琴图。
直方图需要选择合适的 bin 数量,KDE 需要选择合适的带宽,否则可能会影响数据分布的可视化,从而影响分析。 有没有办法在不选择任何参数的情况下表征数据的分布? 经验累积分布函数 (ECDF) 可能是一个可行的选择。 累积分布函数(CDF)是通过对概率分布进行积分或求和而得到的,如公式(6-1)所示。 在处理实际数据时,我们通常将其称为“经验”,因为我们的数据是有限的,并且来自实际观察[2],而ECDF使用求和而不是积分。
如图6所示如图1所示,ECDF曲线是一条单调递增的曲线,它考虑了每个观测到的数据点,不需要指定其他参数,如图6如1(b)所示,我们也可以绘制条件分布下的ECDF。 ECDF的缺点是它不像直方图和核密度估计那样直观地表征数据分布,但理论上ECDF也可以“坍缩”为概率分布,如公式(6-2)所示。
fig 6.1 ECDF曲线,(a)单变量ECDF曲线; (b) 条件分布下的ECDF曲线。
有时我们需要查看数据的联合概率分布,例如,在这种情况下,我们可以绘制二进制直方图。 我们可以指定 displot() 的 y 参数来绘制二元变量的直方图。 这种类型的直方图类似于热图,因为它表示值的大小,即颜色的阴影。 如图7所示如图1(c)所示,也可以指定kind参数来绘制二进制核密度估计曲线。 指定色调后,还可以绘制条件分布。
fig 7.1 二进制直方图和二进制核密度估计曲线。
要研究二元变量的联合概率分布,散点图也是一个不错的选择,如图 8 所示图 1 表示可以以散点图的形式可视化,以可视化两个变量之间的相关性。 散点图上方的直方图和右边的直方图分别是 和 分布的直方图,在这种情况下,我们称之为边际分布,计算公式为 (8-1)。
我们还可以在联合概率分布的散点图和边际概率分布的直方图上执行核密度估计,如图 8 所示第1(b)段。
fig 8.1 联合概率分布和边际概率分布的可视化。
通过使用 Seaborn 的 JointGrid 特征,可以对联合概率分布和边缘概率分布的表示进行自定义组合(散点图、KDE、箱形图等),如图 8 所示显示 2 个。
fig 8.2 直方图、KDE、散点图、箱形图的组合。
结束引用:[1]。经验误差,概括误差。
推荐阅读:**搜索显示层场景-探戈练习初识搜索:搜索产品经理搜索推送个性化的第一课:新的突破。