《数据可视化基础》第十三章:趋势可视化

以下部分是基于《Fundamentals of Data Visualization》学习笔记,要是有兴趣的话,可以直接看原版书籍:https://serialmentor.com/dataviz/

在制作散点图(第11章)或时间序列(第12章)时,我们通常对数据的总体趋势更感兴趣,而不是对每个数据点所处位置感兴趣。通过将趋势绘制在实际数据点之上或代替实际数据点(通常以直线或曲线的形式),我们可以创建可视化效果,以帮助读者立即了解数据的关键特征。有两种确定趋势的基本方法:我们可以通过某种方法使数据平滑,或者可以用定义的函数形式拟合曲线,然后绘制拟合曲线。

13.1 平滑曲线

在这里,我们使用一个道琼斯工业平均指数(Dow Jones Industrial Average,简称Dow Jones)的时间序列数据。这是一个代表30家大型美国上市公司股价的股市指数。具体来说,我们将着眼于2008年崩盘后的2009年(图14.1)。在崩盘的最后阶段,2009年的头三个月,市场损失了2400点(约27%)。然后,在这一年剩下的时间里,它慢慢地恢复过来。我们怎样才能在不强调不太重要的短期波动的同时看到这些长期趋势呢。

从统计学的角度来看,我们正在寻找一种使股市时间序列平滑的方法。平滑的行为产生了一个函数,该函数捕获数据中的关键模式,同时删除无关的次要细节或噪声。金融分析师通常通过计算移动平均线的方法来平滑股市数据。具体来说就是生成一个移动平均数。我们首先设置一个时间窗口(例如20天)。首先计算1-20的一个平均数,然后再计算2-21天的平均数。以此类推就获得了一个新的全新的平均数的数据集。

为了绘制这个移动平均线序列,我们需要决定在哪个特定的时间点上绘制计算的平均值。金融分析师经常在各自的时间窗口结束时绘制每个平均值(例如在20天的位置绘制1-20的平均值)。这种选择导致曲线滞后于原始数据。时间窗口选择越大居前就越滞后(下图a)。另一方面,统计学家在时间窗口的中心绘制平均值,从而得到一个完美覆盖原始数据的曲线(下图b)。

无论我们绘制平滑的时间序列有或没有滞后,我们都可以看到,数据的波动基于不同的时间窗口都反映到平滑曲线上了。例如,20天移动平均线只去除短期的小幅上涨,但除此之外密切跟随每日数据。另一方面,100天移动平均线甚至可以消除在数周时间内出现的相当大的涨跌。例如,2009年第一季度跌至7000点以下的巨大跌幅,在100日移动均线中就看不到,取而代之的是一条平缓曲线。

移动平均线是最简单的平滑方法,它有一些明显的局限性。首先,它得到的平滑曲线比原始曲线短。开头、结尾或两者都有部分缺失。时间序列越平滑(即平均窗口越大),平滑曲线越短。其次,即使有很大的平均窗口,移动平均线也不一定那么平滑。虽然这样已经实现了大尺度的平滑,它可能也会表现出小的颠簸和摆动。这些波动是由进入或退出平均窗口的单个数据点引起的。由于窗口中的所有数据点的权重是相等的,因此窗口边界上的单个数据点可以对平均值产生可见的影响

统计学家已经开发出了许多平滑的方法来缓解移动平均线的不利影响。一种广泛使用的方法是LOESS(局部估计散点曲线平滑, locally estimated scatterplot smoothing,Cleveland(1979))。这个算法增加了每个子集当中数据的权重。因此,这种加权方案产生的结果比我们从加权平均得到的结果更平滑。

重要的是,LOESS不限于时间序列。可以将其应用于任意散点图。例如,我们可以使用LOESS查找汽车的燃油箱容量与其价格之间的关系趋势。LOESS线显示,油箱容量随廉价车的价格(低于20,000美元)线性增长,但对于较贵的车则趋于平稳。高于大约20,000美元的价格,购买更昂贵的汽车不会让您拥有更大的油箱。

对于LOESS而言,它需要拟合多个单独的模型,这使得大型数据集的运行速度变慢,即使在现代计算设备上也是如此。作为LOESS的更快替代方法,我们可以使用样条线模型。这里就不做单独的介绍了,有兴趣的可以下去查一下。

在上面我们也提到了,对于一个散点图,我们都可以通过LOESS的方式来进行确认数据趋势可视化的。但是具体数据有具体的模型,所以如果单纯的用LOESS的话,有时候不能反映其真正的样子。这个时候,我们就需要给予数据的构建合适的模型来进行可视化了。所以就需要具体问题具体分析了。

13.2 去趋势和时间序列分解

对于任何具有明显长期趋势的时间序列,删除此趋势以特别突出显示任何明显的偏差可能是有用的。这种技术称为趋势消除,我将在这里通过房价进行演示。在美国,抵押贷款机构房地美(Freddie Mac)每月发布一个指数,称为房地美房价指数。

在很长一段时间内,房价往往呈现出持续的年度增长,与通货膨胀大致一致。然而,在这一趋势之上的是导致严重繁荣和萧条周期的房地产泡沫。

下图显示了美国四个州的实际房价指数及其长期趋势。我们看到,在1980年至2017年之间,加利福尼亚经历了两次泡沫,一次在1990年,一次在2000年代中期。在同一时期,内华达州在2000年代中期仅经历了一次泡沫,得克萨斯州和西弗吉尼亚州的房价在整个期间都紧随其长期趋势。

PS:图中的灰线代表房价的长期增长趋势。

为了进一步的展示数据,我们将每个时间点的实际价格指数除以各自的长期趋势值来消除房价趋势。经过转换之后,就得到的下面的图形。通过下面的图形,我们可以更清楚的看到房价的波动情况。

除了简单的去趋势外,我们还可以将时间序列分成多个不同的部分,以使它们的总和恢复原始时间序列。通常,除了长期趋势外,还可以通过三个不同的因素来影响时间序列。首先,随机噪声,该噪声会导致向上,向下的小而不稳定的运动。例如下图。

其次,可能会有独特的外部事件在时间序列中留下自己的印记,例如👆所说的明显的房屋泡沫。第三,可能存在周期性变化。例如,外部温度显示每日周期性变化。

(0)

相关推荐