傾向スコア

2023年4月20日

傾向スコア"マッチング"というタイトルにしなかったのは、傾向スコア算出してからのマッチングというステップを強調したかったのと、マッチング以外のことにも傾向スコアが使えるということ意味を出すためです。

最も出会う機会が多いのは、傾向スコアマッチングですけどね。要は、データセットの中から、違うけれど似ているものをペアにして抽出し、背景を揃えた2群を作り出すという手法です。

傾向スコアの勉強は複数の本やオンラインサロンで勉強しましたが、康永先生の本が分かりやすかったので紹介します。
康永先生は東大の臨床疫学の教授でございます。康永先生の本は、「臨床家へ送る」としているもので、とっつきにくい統計学の本の中で読みやすいと思いました。

観察研究と未測定交絡因子への対処

まず介入研究と観察研究の違いですが、介入とは、"治療方法の選択に介入する"ということです。介入試験の最高レベルがRCTですが、実薬群 vs プラセボ群、手術A群 vs 手術B群などをくじ引きで決めます。観察研究は、すでに実臨床として行われ結果も出ている集団の中から、手術A群 vs 手術B群での比較を行います。介入はせずに観察だけ。

観察研究は、前向き試験でもありえます。治療方法の選択に介入さえしなければいいのです。前向きであろうと通常時の実臨床として診療を行い、あとで比較するだけ(後ろ向きよりは恣意的なものが入りにくいので研究デザインとしてのレベルは上がります)。

このRCTですが、背景が揃うため交絡因子がない「はず」のデザインです。対して観察研究は、奇跡が起こらない限り背景はバラバラです。この背景がバラバラの集団の中から、違うけど似たもの同士のペアを抜き出して新たな集団を作るのが傾向スコアマッチングです。観察研究データからRCTに近くなるように背景因子を揃った集団を作り出すことを、疑似ランダム化といいます。

しかし未測定の交絡因子には敏感になってください。未測定の交絡因子は、後から統計的に修正することは不可能です。傾向スコアは、測定された因子を2群間で均質にする手法ですから、未測定の交絡因子については放置されたことになります。

例えば下の図のように、ICU入室患者でSOFAなどの重症度を測定していないデータセットで、スワンガンツカテーテルという循環動態を把握するカテーテルが死亡リスクを低下させるか検証したいとします。スワンガンツカテーテル挿入という治療が死亡に対して因果関係にあるのか分かりません。一昔前のICUでは、重症ほどスワンガンツを挿入したい時代でしたので、当然スワンガンツ群に重症例が増え、死亡が増えます。しかし後から観察研究で統計的に検証しようとしても、重症度という交絡因子を測定していないと、スワンガンツが悪いのか、重症度が偏ったせいなのか分かりません。このように、治療とアウトカムの両方に影響する因子が未測定の場合、その交絡因子を2群間で調整していないために因果関係が判別できなくなり、交絡因子が2群間で偏った場合は結果がひっくり返ることすらあります。

「未測定交絡因子」への対処方法は、予防しかありません!これまでの論文で報告されている治療とアウトカムに影響するもの、臨床的に影響すると思われるものを1つも残すことなくリストアップし、データ収集する努力しかありません。

傾向スコアの算出

実際に傾向スコアを算出しマッチングをすることは、統計ソフトを使えば簡単な操作でできます。周囲の臨床研究をやる先生の話を複数聞くに、stataかRがいいようです。RはCPU言語を直接打ち込む必要があって初心者にはきついので、"stata"か"Rをマウスで操作できるようにしたEZR"がいいと思います。

結論からいうとロジスティック回帰分析を使います。「治療の割り当てを表す0-1の二値変数を、目的変数(=従属変数)にします。次に揃えるべき背景因子(交絡因子と考えられるもの)を説明変数(=独立変数)としてロジスティック回帰分析に入れます」。これだけで傾向スコアは算出できます。統計ソフトに手持ちのデータセットを入力したら、ロジスティック回帰分析を選んで、目的変数と説明変数をクリックで選んでいくだけです。

ただし、統計ソフトに傾向スコアを算出させる時にこちらで調整すべきルールがあります。
まず、説明変数にできる変数は、治療の割り当てと同時かそれより前に決定している因子だけです。胃潰瘍における胃カメラ群 vs PPIのみ群のみの死亡率を比較する場合に、胃カメラ後のヘモグロビン値を傾向スコア算出に用いてはいけません。
次に、ロジスティック回帰分析に投入できる変数の個数は制限がありません。交絡因子と思われる全ての変数を入れるべきです。連続変数でもカテゴリー変数でも大丈夫です。

傾向スコアを算出したら、その傾向スコアが「治療群に入る傾向を適切に表しているか」を確かめます。
これも統計ソフトでできるのですが、治療の有無と傾向スコアを用いたROC曲線を描き、その曲線化面積(area under curve, AUC)を求めます。ROCのAUCなので、AUROCと略されることもあります。c統計量と言われることもあります。

0.9> 傾向スコアAUROC ≧0.6ならば、その傾向スコアは「治療群に入る傾向を適切に表している」と判断されます。


では傾向スコアAUROCが0.6-0.9の範囲外の場合はどうでしょうか。
まずは0.6>傾向スコアAUROCの場合:
イメージとしては、「マッチさせようとすると、治療B群は治療A群の誰かとほぼマッチしてしまう」状況を表します。このように背景が揃っている状況では、"治療Aを受ける傾向スコア"が高くても、治療Bを受けてしまっている可能性も高くなります(治療Aを受ける傾向スコアが治療Bを識別できない)。この場合の解析は、傾向スコアマッチングでわざわざ症例を減らさなくても、多変量解析をすれば結果はほとんど変わらないとされています。

次は傾向スコアAUROC ≧0.9の場合
イメージとしては、「マッチさせようとしても、治療B群と治療A群の背景が全然異なっていてマッチしない」状況を表します。これほどに背景が違う状況では、"治療Aを受ける傾向スコア"はほぼ完璧に治療Aを受けることを識別します。これは、「実臨床において適応が全く違う2つの治療を比べようとしている」ことに該当します。この観察研究は無意味ということであり、リサーチクエスチョンやPECOから見直すべきということになります。

傾向スコアマッチング

傾向スコアが近似している症例を抜き出す“最近傍マッチング"が主流です。
キャリパーといって、マッチするペアの傾向スコアがどれだけズレていいかの範囲を設定します。通常は、傾向スコアの標準偏差の0.2倍です。標準偏差はバラつきの指標でしたね。
標準化差(standardizd mean difference, SMD)という指標で、マッチした後に本当に背景が揃ったか確認します。(p値は、症例数に依存するので、背景が揃っていても症例数が少ないとp値は大きくなってしまうため不適切です。)
アウトカムの比較は、ペアを意識して「通常のt検定ではなく、対応のあるt検定。χ2条検定ではなくMcNemar検定とすべき。」という意見がありますが、現状はどちらでも結果はほぼ同じなようです。

傾向スコアでやれるマッチング以外のこと
①逆確率による重み付け(inverse probability of weighting, IPW)
②傾向スコアによる調整

①逆確率による重み付け
この話の理解のためには、「平均処置効果(average treatment effect, ATE)」と「治療群における平均処置効果(average treatment effect on the treated, ATT)」を理解する必要があります。
ATTの方は単純で、治療A群 vs 治療B群でのアウトカムの差を見ています。治療A群の症例が治療Bを受けた場合に出る差です。傾向スコアマッチングで算出できます。
ATEは、全員が治療Aと治療Bを受けた場合の差です。これを算出するために逆確率による重み付けを行うのです。傾向スコア(治療Aに対する傾向スコア)は1人ごとに算出されますが、治療A群では1人ごとに傾向スコアの逆数を掛け、治療B群では1人ごとに"1-傾向スコア"の逆数を掛け、計算上の人数を増やします。これを行うことで、2群間の背景因子はより均質化します。

これをすることで背景因子が均質化した集団が治療A群と治療B群にいることになり、全員が治療Aと治療Bをそれぞれ受けた場合の差(ATE)を算出できることになります。
傾向スコアによる重みがどうなるかの例は、以下の表のようになります。

具体例を考えてみましょう。
傾向スコアとは、治療A(曝露)を受ける確率でした。つまり治療A群には傾向スコアが人(治療Aを受けやすい背景因子≒交絡因子を持っている人)が多く集まります。そして治療A群では傾向スコアが小さい人は少数になります。この治療A群の傾向スコアが小さい人は治療Bを選択されやすい背景因子≒交絡因子を持った人達ですから、この人達の背景因子を大きく増大してあげることで、治療A群の背景因子の偏りが消失します。同様に治療B群でも、治療A群に入りやすい人達の背景因子を大きく増幅してあげることで、背景因子の偏りが消失します。本来いるべき人達はそもそもたくさんいますから、小さい増幅でいいのです。この操作を傾向スコアを用いて行う方法が、IPWです。
例えばこんな感じ:

これは、統計上でバイアスを除去するための操作であり、症例数が増えたデータセットとして結果を出しているわけではありません。
これが"逆確率による重み付け(IPW)"ですが、さらに"安定化"というもうひと手間が必要です。統計上とはいえ人数をかさ増しする悪影響を減弱するためです。例えば、死亡などの稀なアウトカムが、たまたま重みが10の人に起こってしまうと、いきなり死亡が10に増えてしまいます。これを回避するために"安定化"という方法が用いられます。式は簡単です。2つ上の表の"ATEの重み付け"に、"各群の割合p"を掛けるだけです。

1000人の集団において、治療A群が400人ならば0.4、治療B群が600人ならば0.6をそれぞれ掛けるだけです。

重み付けで計算上のかさ増しをしたら、ここからは傾向スコアマッチングと同様に標準化差で背景が揃っているか確認します。ただしアウトカムの比較解析は、ロバスト分散分析というものになります。

②傾向スコアによる調整
『傾向スコアを算出したら、その傾向スコアを多変量解析の説明変数(=独立変数)に加えてアウトカムの解析を行う方法。』
目的変数(=従属変数)にアウトカム発生の有無(0,1の二値変数)を入れたら、説明変数には治療Aの有無(0,1の二値変数)と傾向スコアを投入するだけです。

なぜこのような方法が有効かというと、従来の多変量解析は、投入できる説明変数には限りがあります。「アウトカムの発生数÷10」を以下にします。これを超えると、過剰適合といいその研究の集団(データセット)にしか適合しないような結果になってしまうためです。またアウトカムが多いからと説明変数を増やすと、説明変数間の交互作用があった場合に、解析結果が不正確となりやすのです。つまり、多変量解析に交絡因子と思われる多数の変数を説明変数として投入することは、"アウトカムがたくさん必要≒症例数がたくさん必要"であり、また説明変数同士の相互作用についても考慮する必要があります。
つまり、傾向スコアによる調整は、症例数が少ない時に交絡因子を除いて解析することに有用であり、ある程度症例数がある場合には傾向スコアマッチングや逆確率による重み付けを行えばいいと考えられます。

傾向スコアによる調整に助けられた1例を紹介します。
治療薬Aの副作用を起こす新たなリスク因子として、長期投与を思い付き観察研究をすることにしました。既報で報告されているリスク因子①②③④⑤のデータを全て収集した上で、治療薬Aを投与された患者(P)を、副作用発現群(E)と非副作用発現群(C)に分け、既報のリスク因子を傾向スコアマッチングで揃えました("長期投与"以外のリスク因子は揃っている状態です)。そして治療薬A群と治療薬B群で、長期投与の有無に差があるかを調べたのです。
このやり方の何が問題かというと、傾向スコアマッチで背景を揃えた後、アウトカムの比較していないのです。"newリスク因子"として1つの背景を残し、その他の"既知リスク因子"を傾向スコアで揃え、そしてnewリスク因子に差があるかを見ています。
このやり方の是非について統計に明るい複数の知人に相談したところ、2名は不可、4名は一般的なやり方ではないが方法論としては可という回答でした。しかし全員で揃っていたことは、リスク因子の検討なら多変量解析がいいとのことでした。
ただ症例数が不足しており、すべてのリスク因子を交絡因子として多変量解析に投入できない状況でした。はい、ここで"傾向スコアによる調整"の登場です。既報のリスク因子を傾向スコアにまとめました。ロジスティック回帰分析に、目的変数を副作用の有無、説明変数をその傾向スコアと長期投与の有無として投入しました。

<まとめです>

観察研究は、治療選択に介入しない試験ということ、交絡因子は必ず入ってくること。
未測定の交絡因子は、1つ測定されていないだけでも試験結果を正反対にするパワーがあり、統計解析での修正は不可能なこと。研究をする段階で既報や臨床的に考えられるものを全て洗い出すことで対処する。
傾向スコアは、治療を選択する以前に決定している因子だけを含めて良い。傾向スコア算出後は、AUROCで適切さを確認する。
傾向スコアは、マッチングだけでなく、逆確率による重み付け、傾向スコアによる調整ができる。

2023年4月20日

Posted by ガイドワイヤー部長