RankExplorer:大型时间序列数据中排名变化的可视化
期刊: IEEE Transactions on Visualization and Computer Graphics(发表日期: 12/2012)
作者: Conglei Shi; Weiwei Cui; Shixia Liu; Panpan Xu; Wei Chen; Huamin Qu
摘要
对于许多涉及时间序列数据的应用,人们通常对项目值随时间的变化以及它们的排名变化感兴趣。例如,人们每天通过 Google 和 Bing 等搜索引擎搜索许多单词。分析师对每个词的绝对搜索量及其相对排名感兴趣。两组统计数据都可能随时间而变化。对于包含数千个项目的非常大的时间序列数据,如何直观地呈现排名变化是一个有趣的挑战。在本文中,我们提出了 RankExplorer,一种基于 ThemeRiver 的新颖可视化方法,用于揭示排名变化。我们的方法由四个主要部分组成:1)分割方法,将大量时间序列曲线划分为可管理数量的排名类别; 2) 扩展的 ThemeRiver 视图,带有嵌入的颜色条和变化的字形,以显示与每个排名类别相关的聚合值随时间的演变以及每个排名类别的内容变化; 3)趋势曲线,显示排名随时间变化的程度; 4)丰富的用户交互,支持排名变化的交互式探索。我们已将我们的方法应用于一些实时序列数据,案例研究表明我们的方法可以揭示与排名变化相关的潜在模式,否则这些模式可能在传统可视化中被掩盖。
关键词:时间序列数据、排名变化、Themeriver、交互技术。
1. 引言
时间序列数据分析在金融和商业等许多应用中发挥着重要作用。了解大型时间序列数据中的趋势、主题、关系和异常为许多数据分析任务提供了必要的知识,包括性能分析、预测、欺诈检测和决策支持。重要的任务之一是研究多个时间序列之间的排名变化模式。此类分析在解释数据、检查意外事件的主要原因以及预测未来情况(例如未来股票走势)方面发挥着重要作用。例如,通常采用Google和Bing等公共搜索引擎中的热门查询来表示互联网上搜索的热门话题。为了研究流量波动背后的主要原因,搜索引擎分析师经常研究这些热门查询随时间的频率变化,包括绝对数量及其排名。因此,越来越需要可视化分析解决方案来分析大量时间序列数据中的排名变化。
如何直观地呈现随时间变化的时间变化是一个令人相当感兴趣的挑战,为此已经进行了大量研究[1]。其中,堆叠图[5,9,21,22]因其紧凑性和对时间序列数据的整体和个体时间趋势的良好总结而被广泛使用。然而,传统的堆叠图无法直观地传达数据项之间随时间的排名变化,因为每层的顺序一旦出现在可视化中就固定了。尽管我们可以通过在排名发生变化的时间点改变层的垂直顺序来增强堆叠图,但由于以下原因,这种改进并不有效: 对于非常大的时间序列数据集,视觉混乱将成为一个大问题当这些数据项的排名在不同时间点经常发生变化时。尽管我们可以利用一些减少杂波的技术(例如聚类)来处理大量数据[6],但它们仍然可能无法正确组织时间数据,并且随着时间的推移排名会频繁变化。例如,前 100 个查询的搜索频率可能随时间变化,同时前 100 个查询的列表也可能变化。不考虑变化的静态聚类技术可能很容易忽略这样一对变化之间的相关性以及隐藏在其中的模式。即使传统的聚类方法成功地将每个时间点的热门搜索查询分为几个类别,它们也很难支持分析每个类别内排名变化的演变(内部变化),更不用说内容变化(例如,系列流入)或流出)跨越不同的排名类别(外部变化)。
为了应对这些挑战,我们开发了 RankExplorer,这是一种基于 ThemeRiver [9] 的新可视化方法,用于揭示多个类别内和跨多个类别的排名变化。在这项工作中,我们的目标是保留堆叠图的直观性和熟悉性,同时解决它们在传达大型时间序列数据集中排名变化的演化模式方面的缺点。为了实现这一目标,我们首先将数据项划分为可管理数量的排名类别。本质上,它满足以下两个标准:1)最小化不同排名类别之间的外部变化; 2)平均每层的高度。此外,我们还允许用户根据自己的任务需求灵活选择分割标准。然后,我们通过嵌入颜色条和更改字形来增强传统的 ThemeRiver 可视化,以显示外部和内部内容的变化。为了提供随时间变化的排名变化的高水平总结,我们还设计了一条趋势曲线来揭示所选排名类别的整体变化程度。最后,提供丰富的用户交互来支持排名变化的连贯探索。
这项工作的主要技术贡献如下:
- 我们通过嵌入的颜色条和变化的字形来扩展 ThemeRiver 可视化,以传达随时间变化的外部和内部变化。
- 我们提出了一种自适应分割方法,该方法将时间序列数据顺序划分为指定数量的组,以便有效理解。
- 我们提供丰富的交互,允许用户从不同的细节级别和不同的方面探索排名变化(即排名类别内和类别之间的变化)。
2. 相关工作
人们在时间序列数据的可视化分析方面投入了大量精力。之前的工作在[1,4,24,29]中进行了系统调查。与它们相比,我们的工作与交互式、基于时间的视觉探索的研究直接相关,根据其亮点可以大致分为两类。
2.1 视觉表示
可视化时间序列数据的最流行的方法是使用折线图及其变体。折线图由 Playfair [26] 于 1786 年首次提出。最近,人们提出了各种技术,包括 Horizon graph [11]、SparkClouds [20] 和 Braided graphs [14] 来提高其可用性和表现力。贾韦德等人。 [14]还将简单折线图与其他三种变体进行了比较,以找到每种表示形式的最佳应用场景。然而,它们不能很好地处理可扩展性。当数据包含数千个时间序列时,可视化都变得非常混乱且难以解释。
堆叠图 [2,5,9,34] 作为传统折线图的变体,在可视化时间序列数据方面也非常流行。在堆叠图中,多个系列表示为一层一层堆叠的层。每层宽度的变化代表每个系列的值变化。这种 可视化可以为用户提供清晰的概览,以跟踪每个系列以及所有系列随时间推移的趋势。为了增强堆叠图,已经提出了几种扩展来显示总体和单个趋势变化之外的信息。例如,石等人。 [27],用词云填充每层内部的空白空间,以直观地总结大型文本语料库。崔等人。 [3]通过在层之间添加分裂/合并分支来改进堆叠图,以向用户展示演化过程中的层间关系。
其他类型的相关工作包括基于像素的方法[7,15,16,19,23,35,38]。他们在各种视觉元素上添加颜色,例如线条 [15]、条形图 [7] 和矩阵 [8],以在后端时间序列数据中编码附加信息。例如,凯姆等人。 [15]使用递归方案来排列像素来说明一大组时变数据。郝等人。 [8]用不同的颜色填充多分辨率矩阵的单元格来表示每个单元格后面值的大小。
RankExplorer 源自堆叠图。我们使用基于像素的技术对其进行增强,以直观地传达不同排名类别之间的关系(例如,系列流入或流出)。通过基于像素的技术,我们减少了因系列流入或流出而造成的视觉混乱。排名标志符号还旨在说明每个类别内的内部排名变化。
2.2 勘探技术
另一类研究侧重于引入探索技术来帮助用户快速识别时间序列数据中的模式并分析内容。作为一种常见的范式,交互式聚类或聚合可以减少视觉混乱并帮助用户理解不同粒度的数据。这可以在协调视图 [22, 23, 32] 或单个视图 [30, 31] 中完成。例如,van Wijk 和 van Selow [30] 以日历方式聚合时间序列数据,通过相似性聚类揭示多个时间尺度(每日、每周或每月)的模式和趋势。 LiveRAC [23] 在基于网格的布局中显示了时间序列数据的多个视图,以便用户可以轻松地在多个细节级别并排比较不同的序列。最近,已经提出了几种镜头[7、13、18、36、37]用于时间序列数据的可视化分析。他们的目标是为用户提供丰富的交互,例如选择、过滤、缩放、转换和聚合,以进行数据探索。例如,Hochheiser 等人。 [12]引入了一个名为Timebox的小部件来帮助用户交互式查询时间序列数据。最近的工作是由Zhao等人提出的ChronoLenses。 [37],它提供了一组交互来支持探索性任务,例如从原始数据中导出新的时间序列转换结果。
3. 系统概述
上述技术主要集中于探索个体时间序列。而RankExplorer旨在提供几种新颖的交互,专门用于检查不同排名类别之间的相互关系,以及每个类别的内部变化。
另一项相关工作是由 Kidwell 等人提出的可视化不完整和部分排序的数据。 [17]。然而,他们的工作无法处理数据集中的时间属性。因此它不适合我们的应用。
遵循信息搜索的口号“首先概述,缩放和过滤,然后按需提供详细信息”[28],我们设计了 RankExplorer 来揭示时间序列数据的内部和外部排名变化。图 2 显示了我们的 RankExplorer 系统的概述。首先,我们的系统计算每个时间点每个项目的排名,并统计总体变化。然后,在每个时间点,数据被分割成几个排名类别(例如,前 1-5、5-15),同时计算每个类别的聚合值(例如,查询的总出现次数)(图 2) (A))。每个类别中的内容可能会随着时间的推移而发生变化(例如,某个项目在一个时间点排名第一,但在下一个时间点略微下降到第三位)。另一方面,一些变化剧烈的项目甚至可能从一个时间点到下一个时间点移入或移出类别,我们分别称之为流入项目和流出项目。对于他们,我们的系统还将计算与跨类别内容变化相关的统计数据。
排名类别和相关统计数据显示在摘要视图中(图 2(b)),其中包含扩展的 ThemeRiver 可视化和顶部的趋势曲线。摘要视图概述了每个类别内部和类别之间的排名变化所引起的数量变化和内容变化。提供丰富的交互(例如选择、缩放和过滤)以允许对数据进行交互式探索。例如,用户可以放大类别图层,以便扩展该图层以提供更详细的信息。对于所选类别的每个时间点,我们还提供了一个统计视图来显示一些关键的统计信息,例如该类别中排名上升的项目数量(图2(c))。此外,如果用户对某些特定项目感兴趣,折线图视图将显示相应的时间序列曲线(图2(d))。摘要视图、统计视图和折线图视图相辅相成,提供了一种有效的方法来探索不同细节级别的排名变化。
4. 可视化设计
在本节中,我们详细描述 RankExplorer 如何直观地说明大型时间序列数据集中的排名变化。
4.1 设计原理
这项工作的目的是了解时间序列数据的价值和排名变化。一种简单的方法是利用折线图。为了实现这个目标,需要两组折线图,用户必须来回检查两个视图以找到潜在的相关性。另外,折线图只擅长显示少数数据项随时间的变化。如果有数千条曲线,其变化模式将难以识别。
为了解决这个问题,我们增强了一个完善的时间序列数据可视化,ThemeRiver。它将每个数据项绘制为一个图层,某个时间点的图层宽度编码了该时刻数据项的定量值。它可以在个体级别和聚合级别上显示多个数据项的变化。然而,ThemeRiver 有两个缺点:a)对于包含数千个项目的大型数据集,它经常遭受严重的视觉混乱; b) 它只编码一个量值的变化。另一方面,在我们的应用程序中,我们对大型时间序列数据的价值和排名变化感兴趣。为了解决第一个问题,我们引入了一种分段方法,将数据项划分为可控数量的类别。对于第二期,我们通过颜色条和更改字形增强了 ThemeRiver 可视化,以传达排名随时间变化的多个方面。
4.2 分段
为了提供有用的摘要和更好的视觉线索,RankExplorer 中的分割需要满足以下两个标准:
C1:每层的平均高度应该相似。如果某一层太宽,则会向用户表明该层比其他层更重要,但这并不总是正确的;如果一层太薄,用户就无法清楚地看到颜色条和变化的字形,这会阻碍信息理解和探索过程。
C2:外部变化应尽可能小。类别的相对独立性将帮助用户专注于某一特定层,而不会受到其他层的干扰。
接下来我们讨论基于上述两个标准的分割的数学公式。为了精确地描述分割方法,我们使用以下符号(给定 m 个时间序列 v1 到 vm,每个时间序列有 n 个值分别对应于时间 t1 到 tn):
为了实现平滑的交互,我们采用贪心方法(算法1)来寻找近似结果,其时间复杂度为O(nml)。由于优化方法还不够完善,并且用户可能有不同的需求,我们还提供了以下两个操作来允许用户交互式地调整分割结果。
调整 α 在我们的实现中,参数 α 用于平衡分割的两个标准。因此,我们允许用户交互式地调整此参数。
迭代细分 细分是一个迭代过程。当用户对某一层感兴趣时,他/她可以双击该层,分割将应用于该层,并生成新的 RankExplorer 可视化以供进一步探索。
4.3 汇总视图
4.3.1 趋势曲线编码方案
为了提供所选类别随时间的总体排名变化,我们设计了一条趋势曲线(图 1 顶部)。每个epoch的高度编码了排名变化的归一化程度(0表示排名顺序没有变化,1表示排名顺序完全改变)。
一个好的排名变化度量需要满足以下要求:1)考虑数据项之间的相对排名变化; 2)排名变化较大的数据项对总排名变化的贡献越大; 3)新数据项的出现和现有数据项的消失也会影响排名变化程度。
显然,这三个要求都与序列的升序或降序排序分析密切相关,通常有三个指标来衡量:1)可以从序列中删除的最小项目数。其余的已完全排序; 2)对序列进行排序所需的最少交换次数; 3)反转的数量,即序列[25]中未排序的对。在这三个指标中,反转数可以完美满足前两个要求,并且可以很容易地扩展以满足最后一个要求。由此,我们扩展了倒数的概念来衡量排名变化的程度。
设 A = {a1, a2, . 。 。 , an} 是 n 个不同数字的序列,B = {b1, . 。 。 , bn} 是 A 的排列,P(x) 是满足 bP(i) = ai 的排列函数。那么B到A的反转数[10]可以定义为:
为了满足第三个要求,我们需要扩展定义以处理包含不同项目的 A 和 B。为了实现这一点,我们引入了三个运算符: A B 表示 A 的子序列,它删除 A 和 B 中的所有公共元素; A ⊕ B 表示 A 的序列,B 附加到 A 的末尾; A−1 表示 A 的逆序列。因此,我们可以将 A 和 B 变换为包含相同元素的两个新序列: A′ = A ⊕ (B A)−1 和 B′ = B ⊕ (A B)−1 则计算 InvA′ (B′)。
在我们的系统中,对于两个相邻时间点 i 和 i + 1,我们可以计算排序序列 ei 和 ei+1 的反转数。由于 e’i 和 e’ i+1 的长度可能与 2|ei| 一样长,因此我们通过将其除以 (2|ei| 2 ) 来归一化反转数。
4.3.2 颜色条编码方案
在我们的应用程序中,许多任务需要检查值和排名变化。然而,ThemeRiver 一次只能编码一项更改。虽然我们可以并排使用两个ThemeRivers来分别显示它们,但建立它们之间的对应关系并检测它们之间的相关性仍然非常困难。因此,我们更喜欢综合视图,它可以同时显示价值和排名变化。
另一个设计选项是将流程图嵌入到 ThemeRiver 中。两个相邻时间点所有类别之间的内容变化可以表示为二分图(图3(b))。然而,这种设计可能会导致许多线条交叉,从而导致视觉混乱,甚至模糊类别之间的界限。
在研究了各种设计方案后,我们选择了一种将彩条嵌入到 ThemeRiver 中的解决方案(图 4),这为我们的应用程序提供了三个优点:1)它避免了线交叉; 2)对每个时间点每个类别的内容变化进行统计汇总; 3)它提供了一个集成来帮助用户检测价值和排名变化之间的潜在相关性。
每个时间点每层有两个颜色条(简称单元格):流入条(图4(a))和流出条(图4(b))。流入条对当前单元格中来自前一个时间点的项目层进行编码,而流出条对它们进入下一个时间点的层进行编码。为了丰富地显示变化,每个颜色条被分为几个颜色段,它们的颜色编码变化项目的源或目的地,它们的高度编码变化项目对当前单元格的贡献。此外,颜色段按照层的顺序堆叠,以便用户可以轻松跟踪和比较颜色条。
然而,我们需要强调颜色条中的三种特殊颜色:1)对于首次出现在ThemeRiver中的项目,我们使用白色对其进行编码; 2)对于ThemeRiver中重复出现的项目,我们使用深绿色对其进行编码; 3)当放大图层查看子分段时,我们使用深红色来编码来自上层的项目,并使用深绿色来编码来自下层的内容。
使用我们的颜色条设计,看到颜色条的主要部分由当前图层的颜色或相邻图层的颜色填充并不奇怪。然而,对于用户来说更有价值的是两个遥远层之间发生的内容变化,因为它们可能表明有趣的模式。为了帮助用户发现此类模式,我们通过提供两种交互来增强颜色条:
非线性缩放。在我们的颜色条设计中,我们根据层之间的距离缩放每个颜色条中的段的高度。用户还可以交互地调整缩放参数,用 β 表示。如果 β 较大,则颜色条会赋予代表较远层变化的片段更大的权重。特别是:
β = 1:颜色条不扭曲其中的任何部分;
β = 0:颜色条将所有可用空间分配给代表当前图层的段。
对于第 i 层中的颜色条,我们将其中第 j 段的缩放高度定义为:
其中Hr(j)和H(j)分别表示缩放前后第j段的高度。图 5 显示了具有相同信息但尺度参数 β 值不同的颜色条。
过滤。默认情况下,我们显示与所有单元格关联的所有颜色条。然而,当变化变得较大时,用户可能无法轻松看出哪个单元格变化最大。从而,提供了过滤功能。用户可以设置一个阈值来隐藏所有低于该阈值的颜色条。
4.3.3 变化字形编码方案
与代表层之间内容变化的颜色条相比,变化的字形用于揭示单个层内的变化。改变字形的编码方案如图6所示。对于两个相邻的单元格,我们首先提取两个单元格中包含的所有数据项。然后,对于每个数据项,计算排名变化。这里使用类似条形图的设计来直观地总结所有变化。在变化的字形中,共享数据项由垂直条表示,其高度编码变化值。此外,所有条形图均按升序排序(从负到正),而总条形图的宽度编码了当前时间点所有数据项中共享数据项的百分比(图6(a)) 。例如,如果百分比为 100%,则总宽度等于单元格的宽度。为了节省空间和便于比较,我们将不变部分、增加部分和减少部分堆叠在一起,并使形状对称(图6(b))。
通过将编码方案应用于真实数据集,用户可以快速了解图层中两个时间点之间的变化。图 7 显示了代表四种主要模式的四个示例。
4.4 统计视图和折线图视图
尽管摘要视图通过将趋势曲线、ThemeRiver 可视化、颜色条和更改字形集成在一起提供了很好的视觉摘要,但仍需要更详细的信息来进行进一步调查。因此,我们设计了统计视图和折线图视图来帮助用户解释他们在摘要视图中发现的模式。
用户选择某个单元格后,统计视图将更新,以显示更详细的流入和流出项目信息。作为示例,在图10中,每个条形段表示增加/减少的排名变化在特定范围内的项目的数量。例如,图 10 中的左上部分表示查询“学习玩具”的排名增加了 1079 到 1137 之间的数字。统计视图中的颜色用于编码数据项是否落入该特定范围。范围有正变化(绿色)或负变化(红色)。
提供折线图视图来查看原始数据。当用户在摘要视图或统计视图中发现感兴趣的内容时,他们可以选择特定的数据项,然后将其显示在该视图中。
5. 案例研究
在本节中,我们将说明如何通过将我们的系统应用于两个数据集来分析时间序列数据:Bing 搜索查询数据和美国财富 500 强数据。
5.1 案例研究1:Bing搜索查询数据
我们收集了2011年9月15日至12月29日的全部Bing搜索查询日志数据。任务是探索一段时间内排名前2000的查询。我们通过排名对数据进行细分,并将我们的系统应用于数据。对于每个单元格,它包含多个查询,而单元格的高度编码这些查询的总查询数。由于人们只能有效区分十几种颜色的限制[33],我们将数据分为七组。结果如图8所示。乍一看,我们可以清楚地看到ThemeRiver的高度呈周期性变化。一般情况下,周末和节假日(感恩节、圣诞节)的总查询量会明显小于工作日。另外,从趋势曲线上我们可以发现一些规律,它体现了整个时间序列曲线的排名变化程度:每周六和周一,排名变化较大; 11月28日,变化也更大。
然后,我们在层级别探索数据。在第 1 层,只有两个查询:“google”和“facebook”。这两个始终是前两个,因为颜色条始终是相同的颜色。该层高度的变化遵循与 ThemeRiver 高度变化相同的模式。从变化的字形中,我们可以看到这两个查询的排名在周末发生变化:在工作日,“google”高于“facebook”,而在周末和节假日,它们的顺序相反。查看折线图视图(图9),我们可以看到排名变化的原因。这并不是因为“facebook”的查询次数增加,而是因为“google”的查询次数减少。
为了进一步探索,我们把2011年11月20日到12月29日这段时间作为目标,因为这个时期出现了两个有趣的模式。一是11月28日ThemeRiver水位最大,二是12月25日左右,因为圣诞节。当我们探索这个时间段的数据时,首先我们可以看到细分发生了变化(图1)。 Layer 2 现在只包含一个查询“youtube”,并且排名非常稳定(第三位)。此外,该层的高度也很稳定,这意味着与“google”和“facebook”不同,“youtube”的查询计数变化不大(图9)。从趋势曲线可以明显看出,第4层的排名变化程度(紫色曲线)远大于全局排名变化程度(灰色曲线)。
通过调整颜色条的尺度参数,第 4 层出现异常值。从流入条中,我们可以清楚地看到,在 11 月 28 日,单元格包含大量来自第 6 层和第 7 层(区域)的项目。图 1 中的 B)。此外,该单元格中的一个项目进入第 3 层,即“amazon”。通过单击该单元格,我们可以在图 10 所示的统计视图中看到详细信息。
从统计来看,我们可以看到有五个查询进入单元格,排名大幅上升,分别是“学习玩具”、“手提包”、“数码相机”、“笔记本电脑”和“电视”。另外,从流出部分可以看出,次日有10个查询量大幅减少,分别是“walmart”、“walmart.com”、“target”、“best buy”和“cyber Monday deal” ”以及第二天上面提到的五个问题。然后,我们选择提到的所有查询,并将它们的曲线绘制在折线图视图中(图 12)。
从折线图视图中,我们可以看到所有查询在 11 月 28 日(网络星期一)达到峰值。然而,“walmart”、“walmart.com”、“best buy”这四个查询在 11 月 24 日首次达到峰值;其他查询“学习玩具”、“手提包”、“数码相机”、“笔记本电脑”、“电视”和“亚马逊”在11月25日黑色星期五达到第一个峰值。
有趣的是,在图 1 的第 4 层中,有几个单元格出现白色段,这意味着一些新查询首先出现在前 2000 个列表中。 11 月 21 日,“库彻 2.9 亿美元法庭大战”和“布兰妮·琼斯关于阿什顿·库彻离婚”出现。 12月8日“胡佛水坝直升机坠毁”和“林赛·罗韩蔓延”出现。 12月9日,“安吉丽娜·朱莉衣柜出现故障”出现。 12月18日,“杜格斯死产照片”和“科比离婚瓦妮莎·布莱恩特”出现。总而言之,除了“胡佛水坝直升机坠毁”之外,这些新出现的查询都是关于名人八卦的。
平安夜前2000条查询的总查询数是全月最低的。然而,在第 4 层中,仍然有一个颜色段指示第 6 层中的一些查询的排名增加,并且这些查询进入第 4 层。这些查询是“norad santa tracker 2011”和“santa tracker”。
然后我们通过双击放大到第6层,结果如图11所示。通过线程过滤操作和颜色条调整,我们可以清楚地看到在虚线矩形中,字形表现出强烈的移动模式: 12 月 5 日所有单元格中的项目在 12 月 6 日减少,然后在 12 月 7 日增加,这表明在 12 月 6 日上层突然出现了几个查询。从颜色条(图 13)可以看出,我们还可以看到转变模式。我们回去检查图1,发现在第5层,大量新查询首先出现在12月6日,然后在12月7日消失(区域D),这导致了偏移。
5.2 案例研究2:美国财富500强数据
我们收集了从1955年到2010年的美国财富500强数据。该数据包含美国500强公司每年的收入。另外,我们使用排名对数据进行细分,并使用收入作为聚合值。结果如图14所示。
我们可以清楚地看到1995年有一个很大的变化:高度变化很大。另外,每个牢房中,都有很多新物品。通过查找一些相关背景资料,我们知道,原来的美国财富500强(1995年之前)仅由最大的上市工业公司组成,而将最大的500家服务型公司名单合并在一起。因此我们重点关注1995年至2010年的数据进行进一步探索。
仅显示流入的颜色条,不存在具有强烈视觉图案的单元格。因此,我们显示了流入和流出的颜色条,并发现在 2002 年,第 2 层和第 3 层都很突出(图 15 中的区域 A)。从流出条中,我们可以看到有一个很大的深绿色部分,这表明有几家公司是从第2层和第3层流出的。这样,他们的排名就会走出前500名。选择这两个单元格并探索之后统计来看,排名下降100以上的公司有12家,其中能源领域的公司有8家:“Dynegy”、“El Paso”、“Mirant”、“CenterPoint Energy”、“Enron” ”、“杜克能源”、“美国电力”和“康菲石油”。通过将它们绘制在折线图视图中,我们可以得到图16。
从折线图中我们可以看到,对于所有公司来说,他们的收入在2002年达到最高点。但之后,他们要么大幅下降,要么消失。尤其是“安然”,我们检索其历史,发现它在2002年因“安然丑闻”而申请破产保护,这可能是能源公司排名普遍下降的原因。
2005年,第一层的流入条中出现了一条白色的线段,表明有一家新公司出现,这就是“Chevron”(图15中的B区)。追溯到2004年,第二层流出条中有一个深绿色的部分,这意味着有一家公司走出了500强,原来是“ChevronTexaco”。有趣的是,正如雪佛龙的历史所示,这一变化是由于公司更名而发生的。
6. 比较研究
为了进一步证明RankExplorer的有效性,我们与基线系统进行了比较研究。基线系统包含四个折线图,说明两个级别的四种统计数据。第一层显示数据集相关统计数据,包括整个数据集和每个类别的趋势曲线(图17中的折线图1),以及每个类别的聚合外部变化(图17中的折线图2)。第二层(图17中的折线图3和折线图4)对所选类别进行相关统计,包括各个类别的流入百分比(类似于颜色条)以及给定类别内部变化的统计时间(类似于变化的字形)。
我们招募了 10 名从未使用过 RankExplorer 的用户。所有参与者都是经验丰富的计算机用户。在每个用户会话开始时,我们都会提供两个系统的简短教程。我们使用的数据是11月20日至12月29日的前300个查询。然后参与者被要求完成五项任务。考虑到任务的复杂性和执行时间,选择了以下简单任务:
T1:找出全局排名变化程度最大的时间点;
T2:找出某个类别中排名变化程度最大的时间点;
T3:查找某个类别中大多数查询排名上升的时间点;
T4:在给定的类别中,找到有新查询的时间点;
T5:找到给定类别中具有一种特定变化模式的时间点:没有来自其他类别的传入查询,并且只有两个查询交换其排名。
所有参与者均正确完成任务。然而,对于不同系统的不同任务,回答时间(每个问题花费的时间)有显着差异。 T1和T2可以通过观察趋势曲线来完成。由于两个系统都提供了该功能,因此回答时间相似。然而,任务T3、T4和T5需要用户检查更多细节。因此,使用基线系统的回答时间比RankExplorer的回答时间长,从1.1倍到5.6倍不等。
具体来说,我们以T5(五个任务中最复杂的任务)为例来说明差异。如图17所示,通过RankExplorer,参与者只需要找到其中变化的字形仅包含两个高度相同的条形(一个在红线下方,另一个在红线上方)的单元格。同时,右侧的颜色条仅包含代表当前类别的颜色(图17中的区域A)。然而,在基线系统中,参与者必须一一选择所有类别,然后检查折线图3中每个时间点的值(图17中的B区域)。对于每个满意的时间点,他们都必须进一步探索折线图 4,以检查是否只有一个查询增加和一个查询减少。 (图 17 中的区域 C)。这样的探索往往要重复多次才能找到欲望模式,这是非常耗时的。
用户调查还提出了 RankExplorer 的五项主观衡量标准。所有主观测量均按 5 分制评分:强烈同意 (++)、轻微同意 (+)、中立 (O)、轻微不同意 (–)、强烈不同意 (– –)。结果如下:
通过与参与者的讨论,我们发现他们更喜欢 RankExplorer 有两个原因。首先,它允许用户检查不同细节级别的排名变化,从整体排名/价值变化到单个排名/价值变化。其次,将颜色条和变化的字形集成在一起,以帮助用户更好地同时跟踪内部/外部的变化。例如,一位参与者评论道:“颜色条与不断变化的字形一起帮助我快速识别不断变化的图案。然而,在基线系统中做同样的事情是相当困难的,特别是当模式变得更加复杂时”。此外,所有参与者都抱怨折线图中的视觉混乱。其中一位表示:“折线图中的曲线非常混乱;第一眼看上去我真的很难区分它们”。参与者还提出了一些潜在的改进建议。十分之五的用户表示需要探索不同排名变化模式之间的潜在相关性。例如,一位参与者说:“检测这么多有用的排名变化模式非常有趣,但我也有兴趣了解这些模式之间的相关性。例如,我想知道哪种模式导致了这个(指向一层单元)”。十分之二的参与者表示,他们不喜欢 RankExporer 无法支持更多类别。
7. 讨论
案例研究和比较研究清楚地表明,我们的可视化方法可以有效地揭示大型时间序列数据的价值和排名变化。趋势曲线、彩条和变化字形的设计确实可以显示不同细节层次的变化。例如,在第一个案例研究中,我们将系统应用于包含 2000 个数据项的数据集,并检测到了一些有趣的模式。在此数据集中,应用迭代分割方法来处理不同细节级别的大量数据项。因此,这种分割方法使 RankExplorer 能够处理大量数据。
然而,我们的方法也存在一些局限性。首先,由于颜色条中使用颜色来编码排名类别,因此该方法可以在一个视图中显示少于十个类别。对于大数据,用户必须使用详细程度或“先概述,过滤和缩放,按需详细”来交互式探索整个数据。其次,对于剧烈的变化,有可能七八个不同的色段被挤进一个色条中,而这样的色条在ThemeRiver中随处可见,这在一定程度上造成了视觉上的混乱。然而,RankExplorer 可视化仍然可以为用户提供层之间巨大变化的快速概览。他们可以放大以查看颜色条的细节。根据我们的观察,在许多应用中,排名具有某种稳定性,排名不太可能随机变化。此外,我们还可以根据应用程序中的具体任务要求过滤掉一些颜色条。例如,我们可以忽略微小的变化并过滤掉所有仅指示微小变化的颜色条。此外,过滤操作也可以应用于变化的字形。
8. 结论和未来工作
在本文中,我们提出了 RankExplorer,这是一种新颖的可视化方法,可以帮助用户探索大型时间序列数据中的价值和排名变化。我们的系统通过彩条和变化的字形扩展了 ThemeRiver,以提供价值和排名变化的详细级别视图。给出了设计原理、编码方案和案例研究。与其他时间序列曲线可视化方法相比,我们的设计具有一些明显的优势。它保留了ThemeRiver的优点,同时还进行了重要的扩展,以便可以同时揭示两个值的变化并更好地检测潜在的相关性。我们的方法不仅限于分析时间序列数据的排名变化。对于两个值同时变化的数据,并且用户想要找到它们的相关性,他们可以扩展我们的方法,使用 ThemeRiver 对一个值随时间的变化进行编码,同时嵌入彩条和折线图来总结另一个值的变化。
未来的工作有多种途径。数据中可能存在不确定性和错误,我们当前的系统不支持这些。这是一个值得探索的有趣主题,当然我们的下一步是研究不确定性分析来处理此类数据。此外,排名变化可能存在复杂的相关性。例如,一个项目的排名变化可能会引起其他项目的排名变化,或者一个项目在一个时间段内的变化模式与另一个项目在另一个时间段内的变化模式相似。我们计划将这些分析方法集成到我们的系统中,以使用户能够更好地检测此类相关性。此外,如果层之间的变化太大,我们的系统将面临视觉混乱的问题。我们将在未来的工作中针对该问题研究更有效的杂波减少方法。
致谢
作者感谢宋阳秋提供的数据,感谢参与者进行比较研究,感谢匿名审稿人的有益评论。这项工作得到了香港研究资助局 GRF 619309 和微软亚洲研究院的部分资助。
参考文献