<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />《华尔街日报》最近发表了一篇精彩的互动图文,名为“ 20 世纪抗击传染病:疫苗的影响”其中包含一系列图表,显示按州和年份划分的选定传染病的发病率。 这是治疗麻疹的。

我的第一印象是,“哇,看起来这个国家有麻疹,疫苗把它清除了。” 在可视化应该传达一个观点的程度上,这个可视化成功地展示了疫苗的广泛影响。 然而,我越看越觉得有几个细节让我困扰。
- 需要很多细节来表达一个观点(数据/墨水比率不佳)。
- 彩虹般的配色方案使得很难快速比较数值。 也就是说,蓝色、绿色和黄色没有感知顺序。
- 颜色渐变达到 4000,但数据仅达到 3000。
- 一半的州名缺失。
- 各州按邮政编码排序,但显示标准缩写,这就是为什么阿拉斯加位于阿拉巴马州之前。
- 该数据截止于 2002 年,当时的疫苗接种率出现上升,成为新闻中的首要内容。
罗伯特·艾利森,“如何让传染病看起来更好,”和安迪·柯克,”是我们喜欢的可视化还是数据,”如果您想阅读更多内容,我们还对可视化进行了批判性的审视。 我对获取数据更感兴趣,尝试在 JMP 中以其他方式可视化数据。
获取数据
我从以下位置下载了 CSV 文件第谷计划,这比我想要的更麻烦。 每个州的数据都位于两个单独的文件中,并且该站点需要登录,因此我无法方便地编写下载脚本。 102次手动下载后我得到了原始数据文件。
拿到数据后,我遇到了两个惊喜:
- 数据是每周而不是每年。
- 整个过程中都缺少数据——不仅仅是《华尔街日报》图表所示的地方。
我喜欢制作一些随机数图表以确保数据看起来合理。 这是每周的发病率之一。 尽管我降低了透明度,但仍然不足以表明大部分数据低于每 10 万人每周 10 例。 不过,您可以看到异常值,我标记了其中一些。 我对这个主题不太了解,无法知道这些异常值是否真实。

处理缺失数据
在开始制作真实的图表之前,我需要一个处理丢失数据的计划。 WSJ 图表本质上将所有缺失值视为 0,除非整年都缺失——然后它们将年份显示为略有不同的颜色(白色而不是浅蓝色)。 我决定采取一种不同但仍然人为的方法。 我认为早年缺失的数据很可能是未知的,但在后来的几年里,数据似乎更有可能实际上是0,只是没有报告,因为这种疾病非常罕见。 因此,我将缺失值保留到某一年(1975 年),并在该日期之后将缺失值视为 0。 这至少可以避免图表右侧的斑点。
再现原作
在进一步探索之前,我决定尝试重现 WSJ 图表,就像在 JMP 中一样。 我不得不
- 将数据总结为年份
- 将数据与另一个州缩写数据表连接起来
- 创建自定义颜色主题
- 在图形生成器中创建热图
- 添加疫苗接种日期的参考线

结果非常接近。 州的排序略有不同,因为我没有费心按邮政编码而不是显示的缩写对州进行排序,颜色略有不同只是因为我没有仔细复制颜色,当然,丢失的数据处理会改变一些丢失的数据年到 0。
重新创建颜色主题后,我可以看到其中的一些逻辑。 彩虹颜色主题通常不利于连续值,因为不同的色调会被明确地感知,而不是连续地感知。 《华尔街日报》的配色方案本质上是三种不同的方案:
- “高”水平的连续黄-橙-红方案
- 纯绿色表示“中等”水平
- “低”水平的连续白蓝方案
我认为绿色是最困扰我的感知的,所以我想我会在没有绿色的情况下尝试同样的想法。

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

奇怪的是,鉴于颜色范围的减少,1945 年全国范围内的下降更容易看到。
我们还可以尝试按平均发生率而不是按字母顺序对各州进行排序。 这使得我们更容易看出各州并没有像看起来那样受到一致影响。

到目前为止,我一直在展示每年的发病率,就像《华尔街日报》的原文一样。 然而,考虑到缺失数据的数量,像艾莉森那样显示每周平均值是有意义的,这样我们只对我们拥有的数据进行平均。 显示年利率就像将缺失周的值视为 0。 这是每周费率的同一张图表。

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

我不知道解决可变数量的丢失数据的最佳方法。 当数据丢失时,我尝试让方块缩小。 这是更真实的表示,但我不确定额外的复杂性是否值得。 此外,大多数时候你几乎无法辨别尺寸差异。

探索其他观点
我最初的想法是随着时间的推移制作一个全国范围的条形图。 事实证明,这比我想象的要复杂,因为我需要每年的人口值才能正确汇总各州的发病率。 原始数据仅包括每 100,000 人的计数和比率。 我想我可以根据计数除以比率来估计州人口(方法 1),但当比率为 0 或非常小时,这种方法会失败。 我的另一种方法(方法 2)是根据我发现的一些历史人口值进行插值。 在尝试了两者之后,我将它们与情节进行了比较:

10(百万)处的水平线来自计数为 1、比率为 0.01 的年份。 费率仅提供至小数点后两位。 类似的问题导致了 70 的异常值:德克萨斯州当年有几周的计数为 1,比率为 0.00。 我最终使用了一个混合两个估计值的公式,但仅考虑计算出的比率,那么比率并不是很小。
这是全国发病率条形图,它很好地表达了原始点,并且更容易看到逐年变化,包括安静的 1945 年。

我不喜欢尖锐的线图,但这里是为下一张图提供上下文的线图。 每行都是一个状态。

我更喜欢光滑者带来的“少即是多”的哲学。 在这种情况下,您会失去范围,但您可以更好地了解总体趋势和一些异常状态。

结束语
在这项研究中,我本着以下精神分享了我所采取的所有处理和绘图步骤的脚本可重复的研究。 拥有脚本还可以轻松尝试不同的缺失值策略。 附加的 ZIP 文件包含源 CSV 文件(仅值入场费)以及我的 JSL 脚本和最终的 JMP 数据表,该数据表本身包含图形脚本。 运行名为“Measles Study”的脚本来重新创建文件。 您可以更改“之后缺失为零“可以更改为 1975 年以外的其他年份,以尝试不同的缺失值截止值,或者根本没有截止值。
尽管到目前为止需要做一些工作,但我认为为了更好的分析还需要做更多的工作。 例如,案例存在季节性模式,可用于估算某些缺失值。 寻找状态集群或爆发模式可能会很有趣。 从视觉上看,范围带可能比线条更好。 我想探讨安迪·柯克(Andy Kirk)的想法,即在数据上尝试配色方案,而不会出现如此急剧的下降。 使用2002年以后的国家数据怎么样? ...
然而,我必须在某个地方停下来。 此外,附上所有数据,也许亲爱的读者会继续探索。