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のバージョンアップの後、今まで使っていたパッケージをすべてインストールしたい場合などに便利だと思います。