Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ネットワークメタ分析入門

2,143 views

Published on

Introduction to network meta-analysis

Published in: Health & Medicine
  • Be the first to comment

ネットワークメタ分析入門

  1. 1. ネットワークメタ分析の入門 専修大学人間科学部 国里 愛彦 1
  2. 2. メタ分析とは • 過去の研究を系統的・批判的に収集・検討し て,量的・統計的に統合する方法 • 組み込む研究の質が高いものなら,一般的に 単体のRCTよりも強いエビデンスとなる →実施方法が不適切だと誤った結論にもなり得 る危険性もある。 ※メタ分析自体は以下の資料を参照ください https://www.slideshare.net/YoshihikoKunisato/ss-37490113 ※本日の解析コードは,以下で公開しております https://cpp-laboratory.hatenablog.com/ 2
  3. 3. メタ分析の手順 ①問題の定式化 ②文献検索 ③研究の選択・データベース化 ④個々の研究のバイアス評価 ⑤結果の統合 ⑥バイアスの検討 ⑦メタ分析の質の評価と解釈 3
  4. 4. 治療効果の比較 ● 通常のメタ分析は,治療Aと治療Bを比較したRCT を収集してまとめる(一対比較のメタ分析) ● しかし,3つ以上の治療の比較した試験や,治療A- B間のRCTと治療A-C間のRCTはあるが,治療B-C 間のRCTは無い状況も →ネットワークメタ分析は,治療A-BやA-C間の直接 比較だけでなく,治療B-Cのような間接比較をした上 で,治療効果をまとめることができる A B C 4
  5. 5. ネットワークメタ分析 ネットワークメタ分 析のメリット 1. 間接比較ができる 2. 間接と直接比較を 統合し,より精度 を高められる 3. 複数の治療が比較 でき,ランク付け に使える メタ分析 一対比較 (2治療の比較) ネットワーク (3治療以上の 比較) 混合治療比較 (間接と直接の 組み合わせ) 間接治療比較 (間接のみ) A B C A B C Sonya et al., 2014 『Network Meta-Analysis』 5
  6. 6. ネットワークメタ分析の動作原理を理解 するために 1. 一対比較の固定効果モデル・ランダム効果モ デルを用いたベイジアンメタ分析 2. ネットワークメタ分析(間接比較の方法,一 般化線形モデルへの拡張) 3. ネットワークメタ分析をする上での留意点 ※ネットワークメタ分析はベイズに限定されないが, 統合的に理解する上ではベイズのほうがスムーズ& 拡張性が高い&解釈しやすい指標を出せる 6
  7. 7. メタ分析の前に・・・効果量 <質的変数> ①リスク差 = 介入群の比率 - 統制群の比率 ②NNT(Number needed to treat) = 1/|リスク差| ③リスク比 = 介入群の比率/統制群の比率 ④オッズ比 = [介入群の比率/(1-介入群の比率)]/[統 制群の比率/(1-統制群の比率)] <量的変数> ①平均値差=介入群の平均値-統制群の平均値 ②標準化平均値差=(介入群の平均値-統制群の平 均値)/プールされた標準偏差 7
  8. 8. ベイズ統計 事後分布 (Posterior distribution) 尤度 (Likelihood) 事前分布 (Prior distribution) 規格化係数 (Normalizing constant) ● 事前分布の設定がベイズ統計では重要 ● データがどのように生成されたかモデル化 8
  9. 9. どのソフトを使う? • 『Network Meta-Analysis for Decision-Making』を 含む医療領域ではWinBUGSを使うことが多い(開 発が終わった枯れた技術だから?)。 • JGASベースのGeMTCという便利なパッケージも ある。 →今回は,ネットワークメタ分析の原理の理解を メインにするので,GeMTCなどの使い方は説明し ない。また,WinBUGSは今さら覚えても... →今回は,Stanを使います! 9
  10. 10. 使用データ ● 『Network Meta-Analysis for Decision-Making』で紹 介されている血栓溶解治療のデータを用いる (Caldwell et la., 2005のデータ)。7つの治療を比較す る36個の試験が含まれている。 『Network Meta-Analysis for Decision-Making』の2章 10
  11. 11. 使用データ(一対比較用) ● 血栓溶解治療のデータ(Caldwell et la., 2005)のうち, ACC t-PA(治療0,controlにする)とPTCA(治療1)を比較 した11の試験。 r[,1] n[,1] r[,2] n[,2] #Study year 3 55 1 55 #Ribichini 1996 10 94 3 95 #Garcia 1997 40 573 32 565 #GUSTO-2 1997 5 75 5 75 #Vermeer 1999 5 69 3 71 #Schomig 2000 『Network Meta-Analysis for Decision-Making』のデータ r = 死者数 n = 試験の参加患者数 # Study = 研究者名 year =研究発表年 ※ベースになる治療は 0とコード化 11
  12. 12. 固定効果モデル ● 固定効果モデル(fixed- effect model):1つの真 の介入効果を仮定して おり,偶然誤差の影響 によって個々の研究結 果がばらつくとするモ デル yi=θ+ei ● 試験iにおける効果(yi)は,全体の平均の効果(θ)と誤差 (ei)からなる →各試験の結果は,θを平均とした正規分布から生成さ れるという非階層モデル Study 3: y3 = θ + e3 e3 12
  13. 13. データの生成過程(モデル) ● 死亡数のデータ生成過程は,二項分布(生存・死 亡などの2値データにおいて,n回の独立な試行 を行った時の片方が発生する数の分布)によって 表現できる ● Stanだと以下のbinomial()が使える rik ~ binomial(nik,pik) ※r = 死亡数,n = 合計患者数,p = 死亡率,i=試験 の番号, k = 治療群(arm)の番号 13
  14. 14. データの生成過程(モデル) ● 死亡率(pik)は確率なので,0~1でないといけない。 ● 下右辺のような線形モデルからpikを直接予測せず, -∞~∞をとるロジット変換したlogit(pik)を予測する。 つまり,リンク関数はロジット変換。 logit(pik) = μi+d1k ※ pik=試験iの治療kの確率, μi= 試験iのベースライン の効果(つまり治療0の効果),d1k=治療を基準とした 時の治療1の相対効果(dの添字は比較する治療群) 14
  15. 15. データの生成過程(モデル) ● まとめ:線形モデルをロジット変換して,二項分 布から死亡数を生成するモデルを使う logit(pik) = μi+d1k rik ~ binomial(nik,pik) ● なお,pikを出すにはロジット変換の逆変換が必要 だが,Stanだと逆ロジット変換した上で二項分布 が使えるbinomial_logit()もある(1行で済む&コー ディングが大変楽になる)。 rik~binomial_logit(nik,μi+d1k) 15
  16. 16. Stanコードへ data{ int ld; // length of data int nt; // number of treatment int ns; // number of study int study[ld]; // vector of the study id int treatment[ld]; //vector of the treatment id int dead[ld]; // vector of the number of dead int sampleSize[ld]; // vector of the number of patient } parameters{ real d01; real mu[ns]; } r[ , ]やn[ , ]などの行列形式は,ネッ トワークメタ分析に拡張した時に, やや面倒になるので,今回は,各変 数を1列のベクターにしている (long形式にしたものの各列を読み 込む感じです) 推定するパラメータは,mu(各研究におけ るベースライン=各研究での治療0の効果) とd01(治療0と治療1の差=治療0を基準と したときの治療1の相対効果) 16
  17. 17. Stanコードへ model{ for(i in 1:ld){ if(treatment[i]==0){ dead[i] ~ binomial_logit(sampleSize[i],mu[study[i]]); }else{ dead[i] ~ binomial_logit(sampleSize[i],mu[study[i]]+d01); } } # prior d01~normal(0,10000); mu~normal(0,10000); } 死者数が,binomial_logit(試験の参加人数, 死亡確率を構成する式)から生成 ・治療0は,その試験のmuのみ ・治療1は,その試験のmu + d01 d12とmuの事前分布としては,幅のひろー い正規分布 スライドからは割愛したが,modelブロッ クの下のgenerated quantities(生成量)ブ ロックでは,d01からオッズ比(exp(d01) で計算)や有害の確率,モデル比較用の対 数尤度を計算 17
  18. 18. 推定結果 Mean SD 2.5% 97.5% d01 -0.2332 0.1182 -0.4668 -0.0019 オッズ比 0.7975 0.0946 0.6270 0.9981 有害となる確率 0.0243 0.1540 0.0000 0.0000 推定は収束し, 教科書とほぼ一致 死亡に関して,ACC t-PAを基 準にした時のPTCAのオッズ 比は0.798[0.627 0.998] →PTCAの方が死亡率が低い 18
  19. 19. ランダム効果モデル ● ランダム効果モデル (random -effect model): 研究ごとに真の介入効果 を仮定し,偶然誤差と研 究間の効果の差によって, 個々の研究結果がばらつ くとするモデル yi=θ+deltai+ei ● 試験iにおける効果(yi)は,全体の平均の効果(θ)と試験i固 有の効果の違い(si)と誤差(ei)からなる。 →さきほどの,Stanコードだと,deltai ~ nomal(θ, sd)と なり,θはその治療の平均的な相対効果,sdは異質性に 対応する(今回の発表はランダム効果モデルは割愛) Study 1: y1 = θ + delta1+ e1 e1 θ delta1 19
  20. 20. ネットワークメタ分析の原理 ● ネットワークメタ分析では,3群以上の比較と間 接比較が可能になる。 ● 2~3群比較をしている臨床試験をあつめて,ネッ トワークを作成する(なお,右図の実線は直接比 較,点線は間接比較)。 A B A C A D A B C D B C 20
  21. 21. ネットワークメタ分析の原理 ● ネットワークメタ分析の基本は効果の 引き算 ● Bと比べた時のCの真の効果δBCは, dBCを平均,σ2 BCを分散とした正規分 布から生成される δBC~Normal(dBC,σ2 BC) ● 平均(引き算)と分散 dBC=dAC-dAB; σ2 BC=σ2 AB+σ2 AC-2ρBCσABσAC ※基本的にσ2は,治療間で均質と考える A B C dAB dAC dBC Lu & Ades, 2009 21
  22. 22. ネットワークメタ分析での仮定 ● 同質性(Homogeneity): 同じ比較をおこなっている 研究間で効果に意味のある違いはないこと ● 類似性(Similarity,Transitivity): ネットワーク内の試 験は,患者の属性,デザイン,アウトカムなどの ような重要な要因が類似していること →間接比較したときに,その効果は治療によるものと 推定できること ● 一貫性(Consistency):直接比較と間接比較の知見が 一貫していること Sonya et al., 2014 『Network Meta-Analysis』 22
  23. 23. 使用データ(ネットワークメタ分析用) ● 7つの治療薬について検討した36試験からなる血栓溶 解薬のデータ(Caldwell et la., 2005) ● na[ ]はアーム数,t[ ]は治療ID,r[ ]は死者数,n[ ]は試験 の参加患者数,# Study = 研究者名,year =研究発表年 →Stanだとちょっとこの行列の扱い(というか欠測値)の扱 いがやりにくいので,各変数を列にしたlong型へ na[] t[,1] t[,2] t[,3] r[,1] n[,1] r[,2] n[,2] r[,3] n[,3] #study year 3 1 3 4 1472 20251 652 10396 723 10374 #GUST O-1 1993 2 1 2 NA 3 65 3 64 NA NA #ECSG 1985 2 1 2 NA 12 159 7 157 NA NA #TIMI-1 1987 2 1 2 NA 7 85 4 86 NA NA #PAIM S 1989 『Network Meta-Analysis for Decision-Making』のデータ 23
  24. 24. 推定のイメージ 1. リファレンス(SK)のベースライ ンに対する相対効果dは0に設定 2. リファレンスと直接比較してい る試験を使って,それらのdを 推定する 3. リファレンスとの直接比較の推 定値を使って,リファレンスが 含まれない試験についても,直 接比較の推定値を活用して推定 する ※一貫性の検討をする場合のため にもデータの順番は意識する ベースライン 比較 推定方法 SK PTCA 直接 d[6] SK t-PA 直接 d[1] SK Acc t-PA 直接 d[2] ... t-PA PTCA 間接 d[2]-d[4] Acc t-PA TNK 間接 d[5]-d[2] 24
  25. 25. Stanコードへ data{ int ld; // length of data int nct; // number of compared treatment int ns; // number of study int study[ld]; // vector of the study id int treatment[ld]; // vector of the treatment id int dead[ld]; // vector of the number of dead int sampleSize[ld]; // vector of the number of patient int baseline[ld]; // vector of baseline treatment each study } parameters{ real d[nct]; real mu[ns]; } 各変数を1列のベクターにしている (long形式にしたものの各列を読み 込む感じ) なお,treatmentでリファレンス治療 SKは,0とコードした 推定するパラメータは, mu(各研究におけるベースラインの効果)と d[nct](リファレンスに対する6つの治療の 相対効果) 25
  26. 26. model{ for(i in 1:ld){ if(baseline[i]==0){ if(treatment[i]==0){ dead[i] ~ binomial_logit(sampleSize[i],mu[study[i]]); }else{ dead[i] ~ binomial_logit(sampleSize[i],mu[study[i]]+d[treatment[i]]); } }else{ if(baseline[i]==treatment[i]){ dead[i] ~ binomial_logit(sampleSize[i],mu[study[i]]); }else{ dead[i] ~ binomial_logit(sampleSize[i],mu[study[i]]+d[treatment[i]]-d[baseline[i]]); } } } # prior d~normal(0,10000); mu~normal(0,10000); } リファレンス(SK)との比較の場合: ・リファレンス治療の死亡率は,各試験のmuから生成 ・それ以外の治療の死亡率は,mu(リファレンスの効果) + d(各研究の相対効果)から生成 試験のベースラインがリファレンス(SK)以外の場合: ・試験のベースラインの死亡率は,muから生成 ・他の治療の死亡率は,mu(各試験のベースラインの効 果) + d(各治療のリファレンスに対する相対効果) - d(リフ ァレンスに対するベースライン治療の相対効果)から生成 例) TNKの相対効果のd(Acc t-PA→TNK)は,d(SK→TNK) からd(SK→Acc t-PA)を引いたもの 26
  27. 27. 推定結果 ● 推定は収束し,教科書と同様の結果になった。 ● リファレンス(SK)に対する,各治療の相対効果(d) をみると,SKとは直接比較していない,TNKの効 果(d[5])も推定されている! mean se_mea n sd 2.50% 97.50% n_eff Rhat d[1] -0.0032 0.0002 0.0304 -0.0627 0.0562 23842 0.9998 d[2] -0.1567 0.0003 0.0434 -0.2418 -0.0729 21865 1.0001 d[3] -0.043 0.0003 0.0465 -0.1334 0.0465 28616 1 d[4] -0.1106 0.0004 0.0601 -0.2289 0.0053 23642 1 d[5] -0.1517 0.0005 0.0763 -0.3028 -0.0022 22117 1 d[6] -0.4746 0.0006 0.0998 -0.672 -0.2797 23850 0.9999 27
  28. 28. ● 生成量を使って, 可能性のある組み 合わせすべてのオ ッズ比を出す(リ ファレンスの効果 を仮定できれば, リスク差,NNTも 出せる) ● 間接比較はできる が,直接比較は Acc t-PAとだけの TNKの組み合わせ は確信区間広め 28
  29. 29. 一対比較とネットワークメタ分析の比較 ● 一対比較の固定効 果モデルにおける オッズ比の推定値 (赤)より,固定 効果ネットワーク メタ分析のオッズ 比の方が事後分布 の幅が狭い →間接効果も考慮す ることで精度が向 上! pair mean 2.50% 97.50% Pairwise Acc t-PA vs PTCA 0.7967 0.6257 0.9974 Network Acc t-PA vs PTCA 0.7311 0.601 0.8796 29
  30. 30. ランキングの計算 ● 生成量を使って,ランキングの計算もできる。 ● MCMCサンプリングの1回のサンプリングのサン プル(リファレンスはd0に0を代入して追加)でラ ンク付けをして,順位のところに1を返すことを サンプル数分繰り返す(平均すると特定の順位の 確率が計算できる)。 30
  31. 31. 治療ランキングのプロット →PTCAが1位! 31
  32. 32. Multi-Arm試験の場合 ● Multi-Armの試験は,Arm間の治療効果に相関があ るので,それを調整する。 ● 以下のように,多変量正規分布を考える ● WinBUGSでは代数表現できない(らしい)ので, 以下の式にすることもできる(らしい) 32
  33. 33. モデルフィット ● 解析結果からの予測がデータと適合しているか検 討する必要がある。MCMCのサンプルごとの尤度 を基に以下が算出できる。 ①逸脱度の事後平均(-2*モデルの尤度):小さいほど良 く適合。モデル適合の検討に使える ②残差逸脱度(モデルの逸脱度の事後平均 - 飽和モ デルの逸脱度の事後平均):小さいほど良く適合。モ デル比較の検討に使える ③DIC(逸脱度の事後平均+有効パラメータ数):小さ いほどよく適合。モデル比較の検討に使える。 『Network Meta-Analysis for Decision-Making』 33
  34. 34. モデルフィット ④Leverage plot(個々のデータ がモデルパラメータに影響す る程度を可視化):x軸に残差逸 脱度,y軸にLeverage,半円は 『Network Meta-Analysis for Decision-Making』 ● 『Network Meta-Analysis for Decision-Making』はDIC推 し。しかし,DICは統計モデルが真の分布を含みかつ事後 分布が厳密に正規分布の場合に使える。そうでない場合 は,渡辺先生のWAICが良い。WAICはStanで尤度の計算 をしておけばlooパッケージなどで算出できる http://watanabe-www.math.dis.titech.ac.jp/users/swatanab/waic2011.html DICへの影響性も表している(DIC=3より外は適合悪い) 34
  35. 35. 一般化線形モデルによる拡張 ● データを生成する確率分布と線形モデルをパラメー タに合わせるリンク関数を変えれば様々なデータに 拡張が可能(例. 単位時間あたりのイベント発生数だとポ アソン分布&Logリンク関数,連続変数を正規分布など) ● 線形モデルは以下を使う 固定効果:g(γ) = θik = μi + dt_i1,t_ik ランダム効果:g(γ) = θik = μi + δik; δik~normal(dt_i1,t_ik,σ2) ※iはtrial番号,kはArm番号,g()はリンク関数,γがパラメータ, θは線形予測子,μiはtrial iのArm 1に特有の効果, dt_i1,t_ikは, trial iのArm 1に対するArm kの効果,ランダム効果では,平均d, 標準偏差σ2の正規分布からδが生成 35
  36. 36. 一般化線形モデルによる拡張手順 1. ランダム効果か固定効果か選択(その汎用コードを選 ぶ) 2. データ生成プロセスを最も記述する確率分布を選 ぶ(汎用コードを選んだ確率分布に合わせて変更) 3. 線形予測子とパラメータをつなぐリンク関数を選 択(汎用コードにリンク関数を追加) 4. ランダム効果モデルは,研究間の標準偏差につい ての適切な事前分布を選ぶ(Gelman priorを参照。汎用 コードに事前分布を追加) 5. 生成量を利用するコードの追加(モデル適合のための 対数尤度,オッズ比などの適切な尺度で相対効果,NNTな どの絶対効果などを計算コードを追加) 『Network Meta-Analysis for Decision-Making』をStan用アレンジ 36
  37. 37. 非一貫性と異質性 ● 右図の場合,直接効果A-BとA-Cから得 た間接効果B-Cが,直接効果BCと不一 致した場合が非一貫性の例 →トライアングルが単位となる(非一貫 性の自由度:ノードの数-(治療数-1)) A B C D ● 非一貫性:同じ比較における直接効果と間接効果 間の不一致 ● 異質性:同じ比較内での推定値の変動のしやすさ →非一貫性は,ネットワーク構造に関連した異質性 の一種ともいえる 37
  38. 38. Local Inconsisitency ● 直接効果と間接効果の差が0と帰無仮説と するZ検定を実施(|Z|>1.96で5%水準で有 意な非一貫性) ● 全体を評価する場合は,Bucher法の反復, Node-splitting(特定ノードを直接比較のみの事 後分布と残りの全ての間接比較の事後分布に分け て推定し比較し,ベイジアンp値を算出)など A B C D ● Bucher法:(1)一対比較メタ分析を実施(直接効果), (2)間接効果を計算して,以下の指標を計算 38
  39. 39. Global Inconsistency ● Local Inconsistencyを全体に適用する方法では,複 雑なネットワークは大変・・・ ● 一貫性を仮定しないモデル(Unrelated mean effects model; 間接効果は推定せず,それぞれの比 較を独立に行う)を作成して,一貫性を仮定するネ ットワークメタ分析のモデルと比較して検討 ● 2つのモデルで推定値に大きな差はないか,モデ ル比較から一貫性の仮定が妥当かを検討する 39
  40. 40. まとめ ● ネットワークメタ分析は,3群以上の比較を可能 する手法であり,同質性,類似性,一貫性が仮定 されている。 ● 一対比較のベイジアンメタ分析からまず理解を深 めるとわかりやすい。 ● ネットワークメタ分析の原理は,引き算になる。 ● 一般化線形モデルを使って様々なデータに適応可 能になる。 ● ネットワーク構造をしっかり把握することが大切 になり,非一貫性に注意する。 40
  41. 41. おまけ:Dockerで解析環境を再現! ● Stanなどの複雑なソフトを使っていると,データ と解析コードが共有されていても解析がうまく再現 できなことが・・・データと解析コードだけでなく, 解析環境自体の共有も重要! →コンテナ型の仮想環境を提供するDockerが便利! →以下にネットワークメタ分析を行う場合に使うパッ ケージ(rstan,rjags,rjagsのGeMTCなど)を含んだ Dockerファイルを置いています(DL時間を除けは数 分で解析開始できます)。 https://hub.docker.com/r/ykunisato/netmeta-r/ 41
  42. 42. 参考文献 ● 『Network Meta‐Analysis for Decision Making』(Dias, S.他 著 John Wiley & Sons Ltd., 2018年) ほとんどこの本を基に作成した。 ● 『Network Meta-Analysis: Evidence Synthesis With Mixed Treatment Comparison』(Biondi-Zoccai, G編 Nova Science Pub Inc, 2014年) 応用例もありわかりやすくまとまっている。 ● 『Meta-Analysis with R』(Schwarzer, G他編, Springer, 2015年) ネットワークメタ分析のRパッケージが紹介されている42

×