第3章 探索数据
数据探索有助于选择合适的数据预处理和数据分析技术
汇总统计
汇总统计(summary statistics)是量化的(如均值和标准差),用单个数或数的小集合捕获可能很大的值集的各种特征。
1、频率和众数
给定一个无序的、分类的值的集合,为了进一步刻画值的性质,除计算特定数据集中每个值出现的频率外没有多少的事情可做。给定一个在$\{v_{1},…,v_{i},…,v_{k}\}$上取值的分类属性x和m个对象的集合,值$v_{i}$的频率定义为:
$$frequency(v_{i})=\frac{具有属性值v_{i}的对象数}{m}$$
分类属性的众数(mode)是具有最高频率的值。
2、百分位数
对于有序数据,考虑值集的百分位数(percentile)更有意义。具体地说,给定一个有序的活连续的属性x和0与100之间的数p,第p个百分位数$x_{p}$是一个x值,使得x的p%的观测值小于$x_{p}$。例如,第40个百分位数是值$x_{40\%}$,使得x的所有值的40%小于$x_{40\%}$。
3、位置度量:均值和中位数
对于连续数据,两个使用最广泛的汇总统计是均值(mean)和中位数(median),它们是值集位置的度量。
$$mean(\mathbf{x})=\overline{x}=\frac{1}{m}\sum_{i=1}^{m}x_{i}$$
$$median(\mathbf{x})=\left\{
\begin{aligned}
x_{(r+1)} & 如果m是奇数,即m=2r+1 \\
\frac{1}{2}(x_{(r)} +x_{(r+1)} ) & 如果m是偶数,即m=2r
\end{aligned}
\right.$$
概括地说,如果有奇数个值,则中位数是中间值;如果有偶数个值,则中位数是中间两个值的平均值。
为了克服传统均值定义的问题,有时使用截断均值(trimmed mean)概念。指定0和100直接的百分位数p,丢弃高端和低端(p/2)%的数据,然后用常规的方法计算均值,所得的结果即是截断均值。
4、散布度量:极差和方差
连续数据的另一组常用的汇总统计是值集的弥散或散布度量。这种度量表名属性值是否散布很宽,或者是否相对集中在单个点(如均值)附近。
最简单的散布度量是极差(range)。给定属性x,它具有m个值$\{x_{1},…,x_{m}\}$,x的极差定义为:
$$range(\mathbf{x})=max(\mathbf{x})-min(\mathbf{x})=x_{(m)}-x_{(1)}$$
尽管极差标识最大散布,但是如果大部分值都集中在一个较窄的范围内,并且更极端的值的个数相对较少,则可能会引起误解。因此,作为散布的度量,方差(variance)更可取。通常,属性x的(观测)值的方差记作$s_{x}^{2}$,并在下面定义。标准差(standard deviation)是方差的平方根,记作$s_{x}$,它与x具有相同的单位。
$$variance(\mathbf{x})=s^{2}=\frac{1}{m-1}\sum_{i-1}^{m}(x_{i}-\overline{x})^{2}$$
均值可能被离群值扭曲,并且由于方差用均值计算,因此它也对离群值敏感。确实,方差对离群值特别敏感,因为它使用均值与其他值的差的平方。这样常常需要使用比值集散布更稳健的估计。下面是三种这样的度量的定义:
绝对平均偏差(absolute average deviation,ADD)
$$ADD(\mathbf{x})=\frac{1}{m}\sum_{i=1}{m}|x_{i}-\overline{x}|$$
中位数绝对偏差(median absolute deviation,MAD)
$$MAD(\mathbf{x})=median(\{|x_{1}-\overline{x}|,…,|x_{m}-\overline{x}|\})$$
四分位数极差(interquartile range,IQR)
$$interquartile range(\mathbf{x})=x_{75\%}-x_{25\%}$$
5、多元汇总统计
包含多个属性的数据(多元数据)的位置度量可以通过分别计算每个属性的均值或中位数得到。这样,给定一个数据集,数据对象的均值$\overline{x}$由
$$\overline{\mathbf{x}}=(\overline{x_{1}},…,\overline{x_{n}})$$
给出,其中$\overline{x_{i}}$是第$i$个属性$x_{i}$的均值
对于多元数据,每个属性的散布可以独立于其他属性,使用第4节介绍的方法计算。然而,对于具有连续变量的数据,数据的散布更多地用协方差矩阵(covariance matrix)S表示,其中,S的第$ij$个元素$s_{ij}$是数据的第$i$个和第$j$个属性的协方差。这样,如果$x_{i}$和$x_{j}$分别是第$i$个和第$j$个属性,则
$$s_{ij}=covariance(x_{i},x_{j})$$
而$covariance(x_{i},x_{j})$由
$$covariance(x_{i},x_{j})=\frac{1}{m-1}\sum_{k=1}^{m}(x_{ki}-\overline{x_{i}})(x_{kj}-\overline{x_{j}})$$
给出,其中$x_{ki}$和$x_{kj}$分别是第$k$个对象的第$i$和第$j$个属性的值。注意,$covariance(x_{i},x_{i})=variance(x_{i})$。这样,协方差矩阵的对角线上是属性的方差。
两个属性的协方差是两个属性一起变化并依赖于变量大小的度量。协方差的值接近于0表明两个度量不具有(线性)关系,但是不能仅靠观察协方差的值来确定两个变量之间的关联程度。因为两个属性的相关性直接指出两个属性(线性)相关的成都,对于数据探索,相关性比协方差更可取。
相关矩阵(correlation matrix)R的第$ij$个元素是数据的第$i$个和第$j$个属性之间的相关性。如果$x_{i}$和$x_{j}$分别是第$i$个和第$j$个属性,则
$$r_{ij}=correlation(x_{i},x_{j})=\frac{covariance(x_{i},x_{j})}{s_{i}s_{j}}$$
其中,$s_{i}$和$s_{j}$分别是$x_{i}$和$x_{j}$的方差。R的对角线上的元素是$correlation(x_{i},x_{j})=1$,而其他元素在-1和1之间。考虑包含每对对象而不是每对属性之间相关性的相关矩阵也是有用的。