《华尔街日报》最近发表了一篇精彩的互动图表,名为《 20 世纪的传染病防治:疫苗的影响》,其中包含一系列图表,显示了各州和各年份特定传染病的发病率。以下是麻疹的发病率。
我的第一印象是:“哇,看起来这个国家有麻疹,疫苗治好了。”如果可视化应该传达一个观点,那么这个可视化成功地展示了疫苗的广泛影响。然而,我又看了一下,发现有几个细节让我很困扰。
- 要阐明一个观点,需要很多细节(数据/墨水比率较差)。
- 彩虹般的配色方案使得快速比较值变得困难。也就是说,蓝色、绿色和黄色没有感知顺序。
- 各州按邮政编码排序,但以标准缩写显示,例如,这就是为什么阿拉斯加州位于阿拉巴马州之前。
- 数据停止于 2002 年,当时正值疫苗接种热潮兴起并首次成为新闻之前。
Robert Allison(“ 如何让传染病看起来更好”)和 Andy Kirk(“ 我们喜欢的是可视化还是数据”)也对这种可视化进行了批判性审视。我更感兴趣的是获取数据并尝试在 JMP 中以其他方式对其进行可视化。
获取数据
我从Project Tycho下载了 CSV 文件,这比我想象的要麻烦得多。据说有一种更简单的批量下载方法,但我没找到。经过 100 多次手动下载后,我得到了原始数据文件。获取数据后,我遇到了两个意外:
- 始终存在数据缺失——不只是《华尔街日报》图表显示的地方。
我喜欢快速制作一些探索性图表,以确保数据看起来合理。这是所有每周发病率之一。即使我降低了透明度,仍然不足以说明大多数数据低于每 100,000 人每周 10 例。不过你可以看到异常值,我标记了其中几个。我对这个主题不够了解,不知道这些异常值是否可疑。

处理缺失数据
在我开始制作真正的图表之前,我需要一个处理缺失数据的计划。《华尔街日报》的图表基本上将所有缺失值视为 0,除非整个年份都缺失——然后它们将年份显示为略有不同的颜色(白色而不是浅蓝色)。我决定采取一种不同但仍然人为的方法。我认为早些年的缺失数据可能不为人知,但在后来的几年里,数据似乎更有可能是 0,只是因为那时疾病非常罕见而没有报告。所以我将缺失值保留到某一年(1975 年),并将该日期之后的缺失值视为 0。这至少可以避免图表右侧出现斑点。
重现原作
在进行深入探索之前,我决定尝试在 JMP 中重现《华尔街日报》的图表。我必须:

结果非常接近。州的排序略有不同,因为我没有按邮政编码而不是显示的缩写对州进行排序。颜色可能不同,因为我没有仔细复制颜色。当然,缺失数据处理将一些缺失年份更改为 0。
重新创建颜色主题后,我可以看到其中的一些逻辑。彩虹色主题通常不适合连续值,因为不同的色调是按类别而不是连续感知的。《华尔街日报》配色方案本质上是三种不同的方案:
我认为绿色最困扰我的看法,所以我想我会尝试不带绿色的相同想法。

我们仍然需要选择任意的截止值,但我更喜欢没有绿色,因为这样可以减少分类。这种着色还将范围限制在 3000 以内。
改变颜色
那么真正连续的颜色主题怎么样?Robert Allison 使用白色到红色的方案,这似乎是合理的。单一连续范围的问题在于数据是倾斜的,因此线性颜色应用程序只会突出显示刻度一端的差异。我们可以通过使用分段线性刻度并自定义颜色主题来解决这个问题。

奇怪的是,由于颜色范围的减少,1945 年全国范围内的下降趋势更容易看出。
我们也可以尝试按平均发生率而不是字母顺序对各州进行排序。这样可以更容易地看出各州受到的影响并不像看上去那么一致。
到目前为止,我一直在展示年度发病率,就像《华尔街日报》的原文一样。但是,考虑到缺失数据的数量,像 Allison 那样展示每周平均值是有意义的,这样我们只对已有的数据进行平均。显示年度发病率就像将缺失的几周的值视为 0。以下是相同的每周发病率图表:

差异很微妙。一个例子是 1934 年的佐治亚州,其中只有 27 周有数据,而且这些周的值相当高。在原始数据中,1934 年的佐治亚州看起来只是平均水平,因为它被所有被视为零的缺失值冲淡了,但在这里它看起来很高。事实可能介于两者之间——缺失值不太可能为 0 或与非缺失值一样高。
严格的缺失即缺失方法并非没有缺陷。为了进行比较,以下是 Allison 的版本,其中显示了每周平均值。请注意 1997 年佛蒙特州的麻疹病例明显激增。这实际上只是一周的数据。所有其他星期的数据都缺失了。因此,这看起来像是糟糕的一年,但也许只是糟糕的一周。

我不知道解决不同数量缺失数据的最佳方法。我尝试在数据缺失时让方块缩小。这是一种更真实的表示,但我不确定额外的复杂性是否值得。此外,大多数时候你几乎看不出大小差异。

探索其他观点
我最初的想法是制作一个全国范围内的条形图。事实证明,这比我想象的要复杂得多,因为我需要每年的人口值才能正确汇总各州的发病率。原始数据仅包括每 100,000 人的计数和比率。我认为我可以通过计数除以比率(方法 1)来估算州人口,但当比率为 0 或非常小时,这种方法就行不通了。我的另一种方法(方法 2)是从我在人口普查局网站上找到的一些历史人口值中进行插值。在尝试了这两种方法后,我将它们与一个图表进行了比较:
10(百万)处的水平线来自计数为 1 且比率为 0.01 的年份。比率仅提供两位小数。类似的问题导致了 70 处的异常值:那一年,德克萨斯州有几周计数为 1 且比率为 0.00。我最终使用了一个混合了两个估计值的公式,只考虑计算出的比率,那么比率就不是很小了。
这是全国发病率条形图,它很好地说明了原来的观点,并且更容易看到逐年的变化,包括平静的 1945 年。

我不喜欢尖锐的线图,但这里有一张图可以为下一张图提供背景。每条线代表一个州。 
我更喜欢平滑器带来的“少即是多”的理念。在这种情况下,您会失去范围,但可以更好地了解总体趋势和一些异常状态。

结束语
为了进行这项研究,我分享了我采取的所有处理和绘图步骤的脚本,本着可重复研究的精神。Measles Study.ZIP附在我关于 JMP 用户社区中The Plot Thickens的这篇帖子的原始版本中。有了脚本,尝试不同的缺失值策略也变得很容易。ZIP 文件包含源 CSV 文件以及我的 JSL 脚本和最终 JMP 数据表,后者本身包含图表脚本。运行名为“Measles Study”的脚本以重新创建文件。您可以将“缺失值为零”变量更改为 1975 年以外的其他年份,以尝试不同的缺失值截止值,或者根本不使用。
虽然需要付出一些努力才能走到这一步,但我认为还有更多的工作要做才能进行更好的分析。例如,病例存在季节性模式,可用于估算一些缺失值。寻找州集群或爆发模式可能会很有趣。从视觉上看,范围带可能比线条更好。我想探讨一下 Andy Kirk 的想法,即在没有如此急剧下降的情况下尝试数据配色方案。使用 2002 年以后的国家数据怎么样?...
不过,我必须在某个地方停下来。此外,有了所有附加的数据,也许你,亲爱的读者,会继续探索下去。
克里斯·格隆写道:
那么,动态美国地理地图如何显示每年的数据呢?它将显示疾病如何传播、热点是什么以及它们如何演变。
写得真有趣!但传统的柱状图或条形图仍然是最好的吗?;-)
数据可视化新闻 [82] | Visualoop写道:
[â¦] 图表改造:麻疹热图 | JMP 博客 [â¦]
丽莎写道:
这是一个很棒的帖子,非常感谢您的工作!
我想每个读者都能从那篇文章中学到很多东西,包括我。
再次感谢!