《数据可视化基础》第六章:分布可视化:直方图和密度图
以下部分是基于《Fundamentals of Data Visualization》学习笔记,要是有兴趣的话,可以直接看原版书籍: https://serialmentor.com/dataviz/
上一章我们说到的直方图以及密度曲线在可视化数据分布的时候会,其图形的形成可以通过不同的分组来进行调整。这种只要涉及到人工调整的部分,在很大程度上就会对数据的分布产生误解。为了解决这种人工调整的问题,所以就又了经验累积分布函数(ecdfs)以及q-q图来说明数据分布的问题。不幸的是,它们比柱状图或密度图更不直观。
经验累积分布函数
为了说明经验累积分布函数,我们这里使用一个学生成绩的数据集。假设班有50名学生,而这些学生刚刚进行了一个测试。这个测试的结果是以0-100的分数来体现的。我们要如何更好的可视化结果呢?例如确定成绩的最大值和最小值。
对于这个数据的可视化,我们可以先获得一个按照学生成绩升序排序的表格。
image在X轴映射所有学生的得分,在Y轴映射排名。最后通过点图和梯度连接线来进行可视化数据。就出现了简单的经验累积分布函数(ecdf)或简单地是累积分布。在这个图里面,每一个点代表一个学生的排名以及其得分。
image👆的图形是按照递增的结果来进行展示的,如果我们要变成递减的话,那就变成👇这个样子了。
image对于递增和递减的两个分布曲线而言,递增的更加常用。但是在可视化高度偏态的数据的时候,递减的结果可能更好一些。这个我们在后面会进行介绍。
👆两个图形的Y轴,我们使用的是学生的绝对排名。同样的,我们可以把Y轴转换为学生的累积占比。这样的话,我们就可以直接获得一些数据的关键信息了。例如在大约有25%的学生的成绩是低于75分的。这个数据的中位值(0.5的位置)是81分左右。
imageqq图
如果想要确定我们的数据是否符合某一个分布,这个是有一般可以使用qq图(Quantile–quantile plot)。与ecdfs一样,q-q图也基于对数据进行排名并可视化等级与实际值之间的关系。但是,在q-q图中,我们不直接绘制等级,而是使用它们来预测如果数据根据指定的参考分布进行分配,则给定数据点应位于何处。最常见的是,q-q图是使用正态分布作为参考来构建的。
举一个具体的例子,假设实际数据值的平均值为10,标准差为3。然后,假设数据符合正态分布。那么在正态分布当中,第50%位数据点的值是10(平均值)。第84%位数据点的值是13(比平均值高一个标准偏差),第2.3%位数据点的值是4(比平均值低两个标准偏差)。经过这样的计算。我们就获得了一个列新的数据。这一列的数据是如果数据符合目标分布(这里例子里面是正态分布)。那么具体的值是多少。
image下面我们对这两列的数据进行绘制点图。如果所有的数据点都在对角线上,那么就说明我们测量的数据和理论分布的数据是相同的。那么就是符合目标分布。如果没有在对角线上那么久不符合目标分布。
image