Standardized Mean Difference (SMD)を用いるMeta-analysis

連続変数アウトカムで研究によって測定スケールが異なる場合、そのままではメタアナリシスで統合値を求めることはできません。連続変数アウトカムの場合は、各研究から対照群の平均値と標準偏差(SD)と介入群の平均値と標準偏差の値を抽出して平均値差Mean Difference (MD)の統合値と95%信頼区間を計算しますが測定スケールが共通の場合しか適用できません。

これらの平均値を標準偏差で割り算した値を得ることを、標準化standardizationと言います。もし各群の値を標準化すると平均値は標準偏差を単位とした値になり、標準偏差は1.0になります。それぞれの標準偏差を単位とした値に変換するという意味になり、連続変数アウトカムで、測定スケールが異なる場合、各研究の平均値差=介入群の平均値-対照群の平均値と標準化した平均値差の標準誤差あるいは分散を計算して、メタアナリシスを行い、統合値と95%信頼区間を計算することができます。分散逆数法であれば、分散の逆数を重みとして用い、ランダム効果モデルであれば、研究間の分散の値を平均値差の分散に加算して、その逆数を重みに用います。

得られた標準化平均値差Standardized Mean Difference (SMD)と95%信頼区間の値を、分かりやすい元のスケールに戻して、効果の大きさを評価することが行われます。元のスケールに戻すには、標準偏差の値が必要です。また、SMDが0.2は小さな効果、0.5は中等度の効果、0.8は大きな効果という考え方を用いることも提案されています。

SMDを用いるメタアナリシスの演算は、Keeds JJ, Higgins JPT:Statistical algorithms in Review Manager 5. 2010. Link に記載されている方法に従って行われることが一般的です。計算に用いられる式を図1と図2に示します。

図1. Standardized Mean Differenceとその分散の計算式。
図2.DerSimonian-Laird法によるランダム効果モデルを用いる分散逆数法によるメタアナリシスの計算式。

これらの計算はExcelでもできますし、Rのパッケージmetaforでもできます。また、著者が作成したMeta-analysis IZ Linkあるいは Meta-analysis IZ r Linkでもできます。Meta-analysis IZ rではMindsの評価シートのデータをReformatして、メタアナリシスを実行できます。

metaforはViechtbauer W氏の作成した優れたメタアナリシスのパッケージです。Link 以下のスクリプトはSMDを用いたメタアナリシスのスクリプトの一例です。escalc(), rma(),forest()はmetaforの関数です。

est=escalc(measure=”SMD”, m1i=m1i,sd1i=sd1i,m2i=m2i,sd2i=sd2i,n1i=n1i,n2i=n2i, append=FALSE)
summary(est)
res=rma(yi, vi, data=est, method=”DL”)
summary(res)
forest(res, showweights=TRUE)

m1i 介入群の平均値
sd1i 介入群の標準偏差
m2i 対照群の平均値
sd2i 対照群の標準偏差
n1i 介入群の症例数
n2i 対照群の症例数

method=”DL”でDerSimonian-Laird法、method=”REML”でRestricted Maximum Likelihood (REML)法を指定できます。

なお、このスクリプトではForest plotの細かい設定はしていません。

SMDを用いたシステマティックレビューの論文の一例として、Sekhar P, Tee QX, Ashraf G, Trinh D, Shachar J, Jiang A, Hewitt J, Green S, Turner T: Mindfulness-based psychological interventions for improving mental well-being in medical students and junior doctors. Cochrane Database Syst Rev 2021;12:CD013740. doi: 10.1002/14651858.CD013740 PMID: 34890044 があります。この論文ではDerSimonian-Laird法が使われています。

Rのミラーサイトとパッケージのインストール

Rのプログラムをインストールする場合、The Comprehensive R Archive Network (CRAN)にアクセスし、左サイドバーのMirrorsを開いて、ミラーサイトを選択してからダウンロードします。日本のミラーサイトが現時点2024.07.28では山形大学の一か所だけになっています。(なお、アメリカは8か所、中国は10か所あります)。

以前は、統計数理研究所 https://www.ism.ac.jp/ もミラーサイトのひとつでしたが、それが無くなっています。

Rパッケージのインストールは、Rを起動し、パッケージメニューからCRANミラーサイトの設定を開き、ミラーサイトの一覧から、Japan (Yonezawa) [https:]を選択してOKをクリックし、同じくパッケージメニューからパッケージのインストールを選択して、パッケージの一覧から選択してOKをクリックしてインストールします。

スクリプトで同じ作業をするのであれば、以下のスクリプトを順次実行します。

chooseCRANmirror()
utils:::menuInstallPkgs()

ミラーサイトの一覧が表示されるまで少し時間がかかります。

また、chooseCRANmirror()を実行し、ミラーサイトを設定して、install.packages(“パッケージ名”)を実行することでも可能です。

さて、いくつかのパッケージをまとめてインストールしたい場合、以下のRのスクリプトを利用することもできます。この例では、metafor, forestplot, madaの3つのパッケージを続けてインストールします。packneed変数にインストールしたいパッケージ名をコンマで区切って格納します。この部分を目的に応じて書き換えてください。インストール済みのパッケージを参照して新しいパッケージだけをインストールします。url=””の部分が今までは、https://www.ism.ac.jp/ でもよかったのですが、現時点ではミラーサイトではなくなっているので、そのような設定ではパッケージのインストールができない状況です。以下のスクリプトのように、urlの設定を”https://ftp.yz.yamagata-u.ac.jp/pub/cran/”にしてください。

packneed=c(“metafor”,”forestplot”,”mada”);current=installed.packages();addpack=setdiff(packneed,rownames(current));url=”https://ftp.yz.yamagata-u.ac.jp/pub/cran/”;if(length(addpack)>0){install.packages(addpack,repos=url)};if(length(addpack)==0){print(“Already installed.”)}

このスクリプトは、Rのバージョンアップの後、今まで使っていたパッケージをすべてインストールしたい場合などに便利だと思います。

診断の統計学基礎

表記のタイトルでスライドと解説をまとめました。最後のスライドの解説にはQuizへのリンクも付けてあります。Analytic frameworkでの位置づけ、ベイズの定理、ROC解析、多項ロジスティック回帰分析、共分散による感度の調整、治療検査閾値、などについて解説します。

診断は感度・特異度の世界のままで、実臨床への応用においてはまだまだ未発達だと思います。2つの診断法を比較して、どちらを実施すべきかを決めるために、それぞれの診断法の感度・特異度だけでもいいかもしれませんが、実臨床の場では、複数の診断法を組み合わせるのがノルムで、その場合の感度・特異度はいくつなのかについてはデータがほとんどありません。さらに、陽性・陰性の二値ではなく、診断法の結果は3つ以上のカテゴリの場合も普通です。鑑別診断では疾患がある無しではなく、3つ以上の想定される疾患からどの疾患の可能性が一番高いかを決めるのが普通です。

こちらですLink

四分表 Two-by-two table, 2×2 table

ランダム化比較試験で2つの治療選択肢の効果を比較する場合、ひとつのアウトカムに対して、アウトカムが二値変数Dichotomous variableであれば、いわゆる四分表 two-by-two table、 2×2 tableにデータをまとめます。

四分表はクロス集計表のひとつです。クロス集計表は二つのカテゴリー、例えば、男性と女性でいくつかのカテゴリーに分類される変数、例えば、好きなスポーツ、について度数を集計したような場合に作成されるものです。四分表ではその変数が二つのカテゴリーに分類される場合のクロス集計表に相当することになります。

例えば、このような表です。a, b, c, d, nt, ncは人数を表します。

アウトカム(+)アウトカム(-)症例数
介入群abnt
対照群cdnc

診断精度に関する研究の場合も、対象者が疾患あり、なしの二値変数で分類され、診断検査法の結果が陽性・陰性の二値変数の場合は、同様に四分表で結果を表し、診断能の指標である感度・特異度が算出されます。

陽性陰性症例数
疾患群abnd
対照群cdnc
感度=a/(a + b) = a/nd 特異度 = c/(c+ d) = c/nc

このように四分表はさまざまな分析で活用されますが、単純化され、分かりやすいという利点があります。ランダム化比較試験で介入の効果を表すために効果指標としてリスク比、オッズ比、リスク差などが計算されますが、上記の四分表のデータであれば以下の様に計算されます。

リスク比 = [a/(a + b)]/[c/(c + d)] = (a/nt)/(c/nc)

オッズ比 = (a/b)/(c/d)

リスク差 = a/(a + b) – c/(c +d)

これらの効果指標の95%信頼区間を計算し不確実性の評価ができますし、アウトカム(+)の割合に差が無いという帰無仮説に対するP値を計算することもできます。

四分表は単純化されているという点について少し考えてみましょう。ランダム化比較試験の例について元データはどのようなものか考えてみます。元データは、個人個人のデータを1行に集計します。それを症例数分集めます。上記の四分表のデータからは以下の様な元データが復元できます。アウトカムは1がアウトカム(+)、0がアウトカム(-)を意味します。もし各群で平均値を計算 すると、アウトカム(+)の症例の割合が得られます。

症例番号治療アウトカム
1介入1
2介入0
3介入1

介入群の症例数nt人分の行が続く:           1がa人、0がb人

例えば51対照0
52対照0
53対照1

対照群の症例数nc人分の行が続く:          1がc人、0がd人

さて、治療選択肢とアウトカム以外のそれぞれの個人の属性についてのデータはここでは含まれていません。治療選択肢が2つ、アウトカムが2つの値をとる変数であるため、クロス集計表を作成すると四分表になります。その他の、それらの属性の中にアウトカムに影響を与える因子が含まれているのが普通です。たとえば、年齢はさまざまな疾患で生存を含め、さまざまなアウトカムに影響を与えるはずです。もし年齢が介入群で対照群より若い場合、結果は介入群に有利に働く可能性が高くなります。

実際には元データは以下の様にさまざまな属性のデータを含んでいます。病期、重症度などもアウトカムに影響を与えるでしょう。

症例番号治療アウトカム性別年齢病期重症度その他・・・
1 介入1男性55I1・・・
2介入0女性75II2・・・
3介入1女性62I1・・・

介入群の症例数nt人分の行が続く:  アウトカム1がa人、0がb人

例えば51 対照0 女性 70II 2 ・・・
52対照0男性83II2・・・
53対照1男性74I1・・・

対照群の症例数nc人分の行が続く: アウトカム1がc人、0がd人

これらの因子を無視して介入の効果を証明することは可能なのでしょうか?もし可能だとしたら、ランダム割り付けが適切に実施され、介入群と対照群でこれらの因子、すなわち背景因子についてバランスがとれていることが前提として必要になります。

実際には、ランダム化を危うくするバイアスがあり、例えばコンシールメントがされていない場合がそれに該当します。コンシールメントは担当医が割り付けを予測できないようにすることで、例えば、中央管理で割り付けが通知されるような方法がとられていれば、コンシールメントは守られ、他のバイアスがない場合には、ランダム化が確実になると言えます。

観察研究では背景因子のバランスを取るために、傾向スコア解析Propensity score analysisや操作変数法Instrumental variable methodなどが用いられることがありますが、未知の因子についてはバランスを取ることはできないため、ランダム化の達成には限界があります。

ここでいう背景因子は交絡因子に相当するものです。つまり、割り付けとアウトカムの両方に影響を与える共通因子です。交絡因子の影響はデータ解析の時点である程度調整が可能で、そのためには多変量解析が用いられます。多変量解析では各説明変数間の相関も加味されてそれぞれの変数の介入の効果への関わりの程度を知ることができるとともに、それらで調整された介入の効果を知ることができます。ランダム化比較試験でも多変量解析が意味を持つ場合があります。

四分表を用いて解析をする際には、元データを想像することが重要だと思います。四分表だけを見ているとそれを忘れがちです。

アウトカムが二値変数であれば、異なるアウトカムに対して、それぞれ四分表を作成することができます。しかし、それら四分表のデータから元データの表を復元することはできません。それら因子の間の相関については、個別の四分表からは知ることができません。

相関を知りたい変数のデータが個々の症例について必要になります。データ収集の際にはこの点も認識しておく必要があります。これは複数の診断検査を診断に用いる場合には、個別の診断検査の感度・特異度だけでは不十分であり、それらの共分散(あるいは相関)のデータが必要であるということとも関係しています。

また、アウトカムのカテゴリーが3つ以上、治療のカテゴリーが3つ以上の場合は、2×3や3×3になったりします。2×2は一番単純で、解析もより容易ですが、オールマイティ―というわけではありません。