一个变量能够关联一个具体的概念到数据上。变量与操作一起能够构成我们语法中的语句,如death*birth
。
在传统的统计系统中,变量代表着数据文件中的一列(column)。然而,由于这方面的规定并不统一,并没有明确的规定指名一个具体的概念是一行还是一列。唯一的规定是变量映射函数会返回有效范围内所有索引(index)对应的值。
转化(transforms)的目的之一是对合适且有意义的变量进行统计。另一个目的则是创建新的变量、聚合或其他对数据的整体描述。
图4.1所示的就是一些常见的变量转换。其中X为变量集合。
![](../4. variables/table4.1.png)
prank()
会生成一列(i-0.5)
i=1,2,3....的数列;zinv()
会对x中的每一项求逆积累正态分布。
排序是统计与绘图最基本且强大的工具之一。排序是一个1对1的转换,当我们使用位置或索引来表示变量时,我们实际上就暗藏了排序操作。对变量排序且按排序结果进行可视化可以不仅仅揭示了一些规律与模式,还使得比较与定位问题的操作变得更为简单。
图4.1所示的是由FBI在1985年统计的包含性别、犯罪类型等字段的数据集。为了绘制图形,我们需要先对犯罪类型里对应的数据做标准化(归一化),这里采用除以total即犯罪总数求得此类犯罪数量的占比来得到(使用 quotient()
)。在使用diff()
对male的数据与female的数据做差得到。最后再对mf做排序。最终,选取mf与crime犯罪类型做散点图得到图4.1
![](../4. variables/figure4.1.png)
散点概率图将一个长度为n的有序数列与由n个点构成的某种概率分布做对比。 假设我们有100个值,如果我们将这些值以坐标的形式绘制出来(x1, z1), (x2, z2) ... ,(x99, z99)
,其中xi为从小到大排列的值,而z是标准正太分布的百分点(lower 100α percentage point)。我们这里将α从1/100
调整为(i-.5)/100
。如果概率散点图基本遵从一条斜对角线,则我们可以推测我们的样本是基本符合正态分布的。
图4.2所示为各国军费开支的数据。我们首先使用prank()
进行转化
prank()为一个等距的有序序列,(i-.5)/n, n=1,...,n。这个序列的值为一个升序xi。
然后,我们使用zinv()
来计算由punk()
计算而来的xi对应的累积正态分布。最终的到4.2中的左图,我们使用log
来转化x轴标度后得到右图,一群分布在对角线附件的散点。使用对数来转化标度是一种常见的手段,通常用于将正偏的正太分布转化为一个偏度较小的正态分布。
![](../4. variables/figure4.2.png)
图4.3为一个关于出生率的箱型图。这种图形将一个变量转化为一组分位数,其中中位数位于箱子的内部。这种图形可以说明我们是否需要异方差(heteroscedastic)的情况做特殊的转化。
异方差性是相对于同方差而言的。所谓同方差,是为了保证回归参数估计量具有良好的统计性质,经典线性回归模型的一个重要假定:总体回归函数中的随机误差项满足同方差性,即它们都有相同的方差。如果这一假定不满足,即:随机误差项具有不同的方差,则称线性回归模型存在异方差性。
![](../4. variables/figure4.3.png)
我们也可以将使用数据的残差绘制散点。4.4所示的U型分布说明该数据不满足于一个简单的线性模型
![](../4. variables/figure4.4.png)
现在我们可以使用变量(variables)来描述数据中的关系,我们需要的是一种系统(可视化)来将这种关系表达或展示出来。