对于不熟悉帕累托图的人来说,这个网站提供了一个有趣的例子,展示了帕累托图在医院环境中应用于用药错误分析的应用。我在教授数据可视化课程时也使用了这个例子(图 1)。
Figure 1. Pareto plot of medication errors.图 1. 用药错误的帕累托图。
帕累托图背后的理念是帮助分析人员识别最常见的质量问题来源。为了解决大部分问题(例如 80%),目标是实施针对图 1 中标记为红色的错误类型的解决方案。换句话说,如果我解决了与漏服、用药时间错误、用药错误和过量用药相关的用药错误,大约 80% 的用药错误就能得到解决。需要注意的是,这些解决方案可能也适用于发生频率较低的用药错误,并且可能无法解决与这四种主要用药错误相关的所有问题。但是,至少我现在清楚地知道如何着手改进用药错误问题,从而最大限度地提高工作效率。
在本文的剩余部分,我将使用来自 100 名患者的模拟数据,记录 10 个可能的研究日中每个研究日的结局发生频率(图 2)。这些结局可以是任何内容,例如当天发生的不良事件的频率,或者患者需要使用眼药水来缓解过敏症状的次数。稍后我将回到“首次观察”一栏。
Figure 2. Unsorted simulated data of events.图 2. 未分类的模拟事件数据。
我们可以生成按患者划分的事件频率的帕累托图(图 3)。
Figure 3. Pareto plot of events by patient.图 3. 按患者划分的事件帕累托图。
在图 3 中,X 轴表示按 10 天内事件总数降序排列的患者;Y 轴表示事件总数。黑线表示从左到右依次表示事件总数的累积比例。您可以使用网格线找到感兴趣的百分比(例如 80%),并将鼠标悬停在黑线上,即可找到事件总数约 80% 发生的患者。在上述示例中,约 80% 的事件发生在 6 号患者身上。图 3 存在一些局限性:
- 它没有描述事件的累积频率。
- 它没有说明在 80% 的事件中涉及的患者的累积频率或百分比。
图 2 数据表有一个名为“首次观察”的列,其中包含图 4 中所示的公式。该公式将患者内的第一条记录标记为 1,否则标记为 0。
Figure 4. Formula to identify the first record for each patient.图 4. 确定每位患者第一条记录的公式。
此公式使用了“统计”类别中的闵上校函数。JMP 中我最喜欢的就是用于汇总列数据的统计公式;稍后我会撰写一篇更详细的博文,介绍这些函数,其中包含许多实用示例,包括对以下用于在排序数据表中生成列的公式的详细说明。
我可以利用这个变量在图 5 的帕累托图中生成累积患者百分比(红色部分)。当累积事件的 80% 发生时,该点位于 69% 的患者中。诚然,获得这个估计值有点繁琐,因为它需要我从黑线向下移动到红线,并尝试匹配所需的信息。
Figure 5. Pareto plot with cumulative patient percentage.图 5. 帕累托图,显示累积患者百分比。
然而,图 5 仍然存在一些问题:
- 它无法传达患者或事件的累积频率。
- 要获取患者或事件的累计百分比数据,我必须将鼠标悬停在每一行上,这很不方便。
请注意,我可以通过添加两个额外的平行 Y 轴来解决累积频率问题:一个用于表示累积事件频率,另一个用于表示累积患者频率。但是,采用这种方法:
- 图中增加了两个 Y 轴和两条线,使图表显得更加拥挤。
- 我仍然需要将鼠标悬停在每一行上才能获取所需的数据。
我可以解决这些问题,但这需要在数据表中做一些额外的工作。图 6 展示了上述数据表,其中定义了一些额外的变量,并按患者总数(降序)、患者和日期排序。
Figure 6. Sorted simulated data of events.图 6. 事件模拟数据的排序。
为什么要增加这些步骤?
- “患者总数”列允许我对数据表进行排序,从而根据图表所需的 X 轴顺序生成四个累积频率和百分比变量。
- 在数据表中(或者在图形生成器中)计算这些变量,可以让我根据这些列标记行,这样无论我将鼠标悬停在哪里,我都能获得累积事件和患者的完整图像。
参见图7。
Figure 7. Patient Pareto with cumulative frequencies and percentages.图 7. 患者帕累托图,包含累积频率和百分比。
图 7 显示,无论我将鼠标悬停在累积百分比线还是事件频率条上,都能获得完整的数据概览。在这项包含 100 名患者的研究中,患者 6 恰好是累积频率和百分比的第 69位患者,该患者累计发生了 807 个事件(占所有患者总共 1012 个事件的 79.74%)。
我在图 6 数据表中简要地略过了一点。这些列使用了几个统计列公式,正如我前面提到的,我将在以后的博文中详细介绍。然而,需要注意的是,所有这些调用都使用了“排除”选项。此选项至关重要,这样当使用数据筛选器对患者进行子集化时,累积变量才能根据这个较小的群体进行相应的更新。图 2 数据表不需要此步骤,因为图表构建器会自动处理这些计算。
图 8 展示了使用数据筛选器绘制的本研究中 20 名女性患者的帕累托图。在累积事件数的约 80% 时,13 名患者发生了 160 起事件(总共 204 起),占女性患者的 65%。
Figure 8. Patient Pareto for females.图 8. 女性患者帕累托图。
您可以从本文右上角的链接下载图 2 和图 6 中的数据表,以查看累积频率和百分比的计算公式。嵌入式患者帕累托脚本可用于生成图表,您可以通过红色三角形菜单打开控制面板,进一步查看详细信息。在这里,您可以了解变量是如何分配到特定角色的,以及生成图表所需的各种选项。