パレート図に馴染みのない方のために、このウェブサイトでは、病院における投薬ミスにパレート図を適用した興味深い例を紹介しています。私は自分が教えているデータ可視化のコースでこの例を使っています(図1)。
Figure 1. Pareto plot of medication errors.図1.投薬ミスに関するパレート図。
パレート図の目的は、アナリストが品質問題の最も一般的な原因を特定するのを支援することです。問題の大部分(例えば80%)に対処するには、図1で赤色で分類されているエラータイプを解決するソリューションを導入することが目標となります。つまり、投薬漏れ、投薬時間の間違い、薬剤の間違い、過剰投与といった投薬エラーに関する品質問題を解決すれば、投薬エラー全体の約80%が解決されることになります。ただし、ソリューションは発生頻度の低い品質投薬エラーにも対応できる場合があり、4つの主要な投薬エラーに関連するすべての問題を解決できるとは限りません。しかし、少なくとも、投薬エラーの問題を改善し、最大限の効果を得るためにどのように進めていくべきかについては明確な見通しが得られます。
この記事の残りの部分では、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軸の2つを追加することで解決できることに注意してください。ただし、このアプローチでは次のようになります。
- Y軸が2つ追加され、線も2本追加されているため、グラフがより混雑している。
- 目的のデータを取得するには、各行に個別にカーソルを合わせる必要がある。
これらの問題は解決できますが、データテーブルに追加の作業が必要です。図6は、上記のデータテーブルにいくつかの追加変数を定義し、患者総数(降順)、患者、および日でソートしたものです。
Figure 6. Sorted simulated data of events.図6.イベントのシミュレーションデータをソートしたもの。
なぜ余分な手順が必要なのか?
- 患者総数列を使用すると、データテーブルを並べ替えて、プロットに必要な X 軸の順序に従って 4 つの累積頻度とパーセンテージ変数を生成できます。
- データテーブル(またはグラフビルダー内)でこれらの変数を計算することで、これらの列に基づいて行にラベルを付けることができ、どこにカーソルを合わせても、累積イベントと患者の全体像を把握できます。
図7を参照してください。
Figure 7. Patient Pareto with cumulative frequencies and percentages.図7.累積頻度とパーセンテージを示す患者のパレート図。
図7は、累積パーセンテージの線にカーソルを合わせても、イベント頻度の棒グラフにカーソルを合わせても、データの全体像が把握できることを示しています。患者6は、この100人の患者を対象とした研究において、累積頻度とパーセンテージの両方で69番目の患者であり、この患者は807件の累積イベント(全患者における合計1,012件のイベントの79.74%)を表しています。
図6のデータテーブルでは、重要な点を簡潔に説明しました。これらの列では複数の統計列式が使用されており、前述のとおり、これについては今後のブログ記事で詳しく説明します。ただし、重要な点は、これらの呼び出しすべてで「除外」オプションが使用されていることです。このオプションは、データフィルタを使用して患者をサブセット化する際に、累積変数がこのより小さな集団に応じて適切に更新されるようにするために不可欠です。図2のデータテーブルでは、グラフがこれらの計算を自動的に処理したため、この手順は必要ありませんでした。
図8は、データフィルターを使用して、本研究における女性患者20名の患者パレート図を示しています。累積イベントの約80%の時点で、13名の患者(女性患者の65%)に160件のイベント(合計204件)が発生しています。
Figure 8. Patient Pareto for females.図8. 女性患者のパレート分布。
累積頻度とパーセンテージの計算式を確認するには、本投稿右上のリンクから図2と図6のデータテーブルをダウンロードしてください。埋め込まれた患者パレート図スクリプトを使用すると、グラフを作成できます。グラフの詳細は、赤い三角形のメニューからコントロールパネルを開くことで確認できます。コントロールパネルでは、グラフを作成するために必要なオプションとともに、変数が特定の役割にどのように割り当てられたかを確認できます。