1.5.2 定量变量绘图
现在,我们再次使用nutri数据集介绍一些定量数据可视化的有用方法。我们首先关注连续特征(例如'age'),然后讨论一些与离散特征(例如'tea')相关的图形。其目的是描述单一特征中的变异性。这通常涉及中心趋势,即观测值趋向于聚集在中心附近,而远离中心的观测值则很少。数据分布的主要因素有变异性的位置(或中心)、变异性的幅度(数值从中心延伸的距离)以及变异性的形状(例如,数值是否在中心的两侧对称分布)。
1.箱形图
箱形图可以看作由最小值和最大值以及第一、第二、第三四分位数五个汇总数据表示的图形。图1.2给出了nutri数据中年龄特征('age')的箱形图。
参数widths决定了箱形图的宽度,默认情况下,箱形图是垂直绘制的。设置vert=False,则水平绘制箱形图,如图1.2所示。
图1.2 变量age的箱形图
从第一四分位数(Q1)到第三四分位数(Q3)之间画一个矩形盒。矩形盒内的垂直线表示中位数的位置。所谓的“须”延伸到盒子的两边。盒子的大小称为四分位距:IQR=Q3-Q1。左边的须延伸到数据最小值和Q1-1.5IQR二者中的较大值。同样,右边的须延伸到数据最大值和Q3+1.5IQR二者中的较小值。须外的任何数据都用一个小的空心圆点表示,它表示可疑点或偏离点(异常值)。注意,离散定量特征也可以使用箱形图表示。
2.直方图
直方图是定量特征分布的常见图形表示。我们首先将数值范围分成若干个分箱(bin)或者类。对落在每个分箱中的数值进行计数统计,然后通过绘制矩形来制图,每个矩形的宽度是分箱间隔,矩形高度是分箱内的数值计数。在Python中,我们可以使用函数plt.hist绘制直方图。例如,图1.3显示了nutri中226个年龄数值的直方图,该图由以下Python代码生成。
图1.3 变量age的直方图
这里使用了9个分箱。这里的垂直轴没有使用默认的原始计数,而是给出了每个分箱的百分比,该百分比通过来定义。实现过程中选择的参数weights是元素为1/226,长度为226的向量。其他绘图参数也做了相应改变。
直方图也可以用于离散特征,只是需要显式地指定分箱数量和坐标轴的刻度。
3.经验累积分布函数
经验累积分布函数Fn是一个阶跃函数,在观测值处跳跃一个量k/n,其中k表示该观测值处满足条件的观测数。对于观测量x1,…,xn,Fn(x)表示观测量中小于等于x的比例,即
其中,1为指示函数,即当xi≤x时,1{xi≤x}等于1,否则该函数等于0。我们可以使用plt.step函数来绘制经验累积分布函数图,年龄数据的结果如图1.4所示。也可以用同样的方法得到离散定量变量的经验累积分布函数。
图1.4 连续定量特征age的经验累积分布函数图