序章
“The problems are solved, not by giving new information, but by arranging what we have known since long.”
– Ludwig Wittgenstein, Philosophical Investigations
こ の世界を観察していて複雑であると気づくのは、ごく当たり前のことである。科学研究も例外ではなく、多くの研究分野において、一見すると乗り越えられないような先行研究群に直面することがある。また、異なる研究からの証拠は矛盾していることがあり、様々な情報源から意味を見出すことが困難な場合もある。
そのため、社会科学、医学、生物学、計量経済学など、多くの分野でエビデンス合成の手法が重要な役割を担っている。メタ分析は、様々な研究や分析の結果を組み合わせるために用いられる統計的手法であり、多くの研究分野において不可欠なツールとなっている。メタ分析は、特に実用的な意思決定や将来の研究努力の指針となる場合、非常に重要な意味を持つことがある。そのため、多くの応用研究者はメタ分析のスキルを「統計のツールボックス」の中に入れているが、一方で、自分の研究分野でメタ分析を行う方法を学びたいと考えている研究者もいる。メタ分析は非常に一般的なものとなっており、多くの大学院生や学部生がすでにカリキュラムの一部としてメタ分析の実行方法を学んでいる(その熱心さは様々であるが)。
メタ分析の実行方法は、統計計算全体と同様に、この数十年で大きな変化を遂げた。これは、主に R Statistical Programming Language and Environmentという形で、オープンソースで共同開発された統計ソフトウェアの台頭と大いに関係がある。 R のエコシステムにより、世界中の研究者や統計学者が独自のパッケージを構築し、誰でも無料で利用することができるようになった。このため、 R 言語用の統計ソフトは目を見張るほど増えている。これを書いている間にも、CRAN Task View には、メタ分析専用パッケージだけでも130以上リストアップされている。
R では、文字通り何でも可能である。完全なプログラミング言語なので、必要な関数が見つからなければ、自分で簡単に書くことも可能である。しかし、メタ分析では、もうほとんどその必要はない。それほど多くない R パッケージのコレクションで、現在の「最先端」のメタ解析プログラムに見られるすべての機能を無料で提供しているのである。さらに言えば、現在 R でしか適用できない新しいメタ分析手法もたくさんある。要するに、 R 環境は研究者に多くのメタ解析ツールを提供している。最良のケースでは、データからより確かな結論を導き出すことができ、その結果、意思決定により良い情報を提供することが可能である。
ここで、なぜ誰もがメタ分析に R を使わないのかという疑問が湧いてくる。私たちは、主に2つの理由があると考えている。利便性と不安(そして時にはその両方が混在している)である。どちらの理由も非常に理解しやすいものである。メタ分析者の多くは応用研究者であり、統計学者やプログラマではない。不明瞭で複雑に見えるプログラミング言語を学ぶことを考えると、それが抑止力として働くことがある。メタ分析の手法も同様で、特別な理論的背景、無数の分析的選択肢、正しく解釈する必要のあるさまざまな統計学がある。
このガイドでは、これらの懸念の多くが杞憂であること、そして R でのメタ分析の方法を学ぶことは努力に値することを示したい。このガイドが、 R でのメタ分析プロジェクトをマスターするために必要なスキルの習得の一助となれば幸いである。また、このガイドによって、いつどのようなメタ分析手法を適用するかだけでなく、なぜその手法を適用するかも簡単に理解できるようになることを期待している。最後になるが、このガイドは、メタ分析手法と R プログラミングが単なる不便なものではなく、魅力的なトピックであることを示す試みであると考えている。
対象者は普通の人
このガイドは、メタ分析の専門家や統計学者向けに書かれたものではない。また、メタ分析手法に関する特別な背景知識を持っていることを前提としていない。必要なのは、基本的な数学的・統計的概念に関する基礎知識だけである。例えば、「平均」「標準偏差」「相関」「回帰」「\(p\)値」「正規分布」などは聞いたことがあるだろう。これらの用語にピンとくるのであればもう大丈夫。本当にゼロから始めるのであれば、まず Robert Stinerock の統計学ビギナーズガイド (Stinerock 2018) を読み、 R での実践例を含む徹底的な紹介を受けると良いだろう – あるいは他の統計学入門書でも構わない。
数式や統計表記を使うことがあるが、なるべく最小限にとどめるようにした。しかし、慌てないように。数式やギリシャ文字は一見するとわかりにくいが、メタ分析手法の背後にある考え方を的確に表現するための非常に優れた方法であることが多いのである。これらの数式を見て、それが何を表しているのかを知ることで、この先読みすすめるより高度な文章を理解することも容易になる。もちろん、ある記号や文字が何を表しているのか、特定の数式が何を伝えようとしているのか、常に詳しく説明するように努める。この本の付録には、記号のリストと、それが何を表しているのかが書かれている。この後の章、特に上級者向けの手法の章では、応用技術の背後にある考え方を説明するために、少し専門的になる必要がある。それでも、これらの章で使用される数学的、統計的概念に関する背景情報を常に含めるようにする。
R (または一般的なプログラミング)の予備知識は必要ない。このガイドでは、独自のメタ分析をコーディングするために必要な R の基本的なスキルを優しく紹介するように努めている。また、学習を継続するための適切なリソースへの参照も提供する。さらに、PC や Mac で R を便利に使用できる無料のコンピュータプログラムをセットアップする方法を紹介する。
タイトルにあるように、本書はメタ分析を「行う」部分に焦点をあてている。本書は、 R を使った分析を始めたいと考えている応用研究者、学生、データサイエンティストのニーズを満たす、アクセス可能なリソースとなることを目的としている。しかし、メタ分析は広大で多面的なトピックであるため、このガイドですべてをカバーできないのは当然である。本書では、特に3つの領域について制限を設けている。
各トピックについて簡単な入門を提供するが、研究課題を定義する方法、系統的に研究を検索してメタ分析に含める方法、そして研究の質を評価する方法については詳細には説明しない。トピック一つ一つはそれぞれ独自の書籍に値するものであり、幸いにも多くの有用なリソースが少なくとも英語では既に存在している。そこで、メタ分析用のデータを収集する際の重要な検討事項や落とし穴について概要を説明し、詳細については適切なリソースを紹介する。
このガイドの第二の限界は、技術的なレベルに関するものである。この本は、明らかに「人間」向けに書かれている。本書の目的は、特定のメタ分析技術をいつ、どのように、そしてなぜ適用するのか、その落とし穴も含めて紹介することである。また、本書で扱う技術について、簡単にアクセスでき、概念的な理解を得られるように努め、このミッションに役立つ場合のみ、より技術的な詳細に言及する。当然ながら、専門家レベルのメタ分析や統計学者が望むような技術的な内容を深く掘り下げることは、このガイドの一部には含まれないことになる。それでも、各章にはより高度なリソースや出版物への参照を設け、関心のある読者のために配慮している。
書籍の内容は、常に著者の経歴や経験をある程度反映している。本書で取り上げる手法は、幅広い研究領域や専門分野に適用でき、関連性があると確信している。しかし、本書の著者4名は、主に心理学、精神医学、医学、介入研究の最新の研究に精通している。そのため、本書で取り上げる「実世界」での使用例や事例も、私たちが熟知しているトピックに集中している。メタ分析の手法は、(これから説明するいくつかの前提条件を満たせば)データがどのような研究分野に由来しているかにはほとんど関係なく、さまざまな種類の結果指標に使用できることは良いニュースである。しかし、このガイドをできるだけ多くの応用研究分野に広く適用しようと最善を尽くしているが、本書で取り上げる方法が特定の分野に強く関連する可能性もある。
本書で扱うトピック
このガイドでは、特に以下のトピックについて説明する。
メタ分析とは何か、そしてなぜメタ分析が発明されたのか。
メタ分析の利点と一般的な問題点。
メタ分析のリサーチクエスチョンをどのように設定し、どのように研究のための検索を行うことができるのか。
R の設定方法と、 R を便利に使うためのコンピュータ・プログラムである。
メタ分析のデータを R にインポートする方法と、コードで操作する方法。
効果量とは何か、どのように算出するのか。
固定効果メタ解析とランダム効果メタ解析における効果量のプール方法。
メタ分析における異質性の分析方法、およびサブグループ解析とメタ回帰を用いた探索方法。
選択的成果報告の問題点、およびその取り組み方。
マルチレベルメタ解析、メタ解析的構造方程式モデリング、ネットワークメタ解析、ベイズメタ解析などの高度なメタ解析手法の実行方法。
メタ分析の結果をどのように報告し、再現性を持たせるか。
本書の使い方
作業の流れ
本書は「直線的」に読み進めることを意図している。メタ分析と R の基本に関する最初の章から始めて、1章ずつ読み進めていくことを勧める。すぐに実践的な章に飛びつくのは魅力的かもしれないが、一般的には勧めない。学生や研究者に初めてメタ分析を行う方法を教える場合、この手法や R Studio 環境に関する基本的な知識は、後々挫折しないための必要悪であることがわかるようにする。特に、メタ分析と R プログラミングの経験がない場合には、このことが当てはまる。 R の経験者は、 R と R Studio を紹介する章を読み飛ばしても構わないが、復習のために読んでおいても損はないだろう。
すべての章はほぼ自己完結しているが、前の章で扱ったトピックを参照することがある。特に高度なメタ解析手法の章では、以前に扱った理論的な概念に慣れていることを前提としている。
本書の最後のセクションで、メタ分析に役立つツールを紹介している。しかし、これらのツールはメタ分析を行う際に考慮すべき最後の事柄であるということではない。主にメタ分析プロジェクトのための参考文献として役立つものとしてこれらの章を最後に置いただけである。本書では、テーマごとに関連するセクションで、これらのツールにリンクしている。
コンパニオン R パッケージ
本書には {dmetar} というコンパニオン R パッケージが付属している。このパッケージは主に2つの機能を提供する。まず、快適に R に親しむことを目的としている。 R には、メタ解析のための素晴らしい パッケージがすでにあり、その機能は多岐にわたるが、少なくとも初心者が R で使うのは現状では簡単ではない落とし穴もある。
{dmetar} パッケージは、この落とし穴を埋めることを目的として、問題解決を容易にする関数を提供する。さらに、このパッケージには、本書で紹介する実践的な例で使用するすべてのデータセットも含まれている。Chapter 2.3 では、{dmetar} パッケージを詳しく紹介し、パッケージのインストール方法を順を追って説明する。大きな変更はないが、{dmetar} は現在も活発に開発されているので、時々パッケージのサイトを見て、メタ解析に使える新機能や改良がないか確認しておくとよいだろう。
{dmetar} パッケージのインストールを推奨するが、必須ではない。本書で {dmetar} を使用する場合、その関数の生のコード、または使用するデータセットのダウンロードリンクも提供する。
テキストボックス
本書全体を通して、テキストボックスのセットを使用している。
一般的な注意事項
一般的なメモには、関連する背景情報、洞察、逸話、考察、または主題に関連するテイクホームメッセージが含まれている。
重要なお知らせ
このボックスには、注意点、問題点、欠点、落とし穴などの情報が記載されている。
質問
各章の終わりには、このボックスの中にいくつかの質問があり、あなたの知識を試すことが可能である。これらの質問の答えは、巻末の付録Aに掲載されている。
どのように報告すればよいのだろうか?
このボックスには、論文や研究記事で R 出力を報告する方法についての推奨事項が記載されている。
凡例
この本では、いくつかの表記法を使っている。
\[~\]
{package}
すべての R パッケージは太字で書かれ、中括弧(波括弧)でくくられる。これは R のコミュニティでは一般的なパッケージ名の書き方である。
\[~\]
R code
R のコードや R で定義するオブジェクトは、すべてこの等幅フォントで書かれている。
\[~\]
## R 出力
R のコードを実行した後に受け取る出力にも同じ等幅フォントが使用されている。ただし、 R の入力と区別するために2つの番号記号(シャープ記号)を使っている。
\[~\]
\(Formula\)
セリフフォントは、数式や統計など、数学的な表記をするときに使う。
行き詰まったら
R でメタ分析を行うための道は、時に険しい道であることは否めない。これは時に誇張されていると思うこともあるが、 R の学習曲線は険しい。統計学は難しいものである。本書では、 R を使ったメタ分析の実行方法を学ぶ際に、できるだけ苦痛を感じないようにするために最善を尽くす。しかし、それでも、時には挫折することがある。これは当然といえば当然なのである。私たちは皆、どこかでゼロから始めなければならないのである。私たちの経験から、 R やメタ分析のやり方を学べなかった人に会ったことがないと断言できる。必要なのは練習と、いつまでも「学び続ける」ことなのである。私たちはあなたを信じている。
このモチベーションメッセージよりももう少し実用的なものとして、このガイドでは答えられないようなことにつまずいたときにできることをいくつか紹介する。
パニックにならない
R の最初の一歩を踏み出すとき、多くの人は最初の赤いエラーメッセージが出始めると恐怖を感じるが、恐れる必要はない。誰でもエラーメッセージは頻繁に出ている。パニックになったり、コンピュータを窓から投げ捨てたりするのではなく、深呼吸をしてエラーメッセージをよく読もう。少し手を加えるだけで、エラーメッセージが消えることはよくある。コードのスペルを間違えていないか?括弧を閉じたり、引用符で囲んだりするのを忘れていないか?
また、出力が実際に エラーであることを確認する(訳注:訳者は初心者に R の使い方を教えることがあるが、 R のメッセージは赤字かつ英語であるため、初学者はエラーでないものも「エラーが出た」と勘違いすることが多い。)。 R は「エラー (Error)」、「警告 (Warning)」、「メッセージ」を区別している。エラーは、コードが実行されなかったことを意味する。警告は、コードは実行されたが、何か問題が発生した可能性があることを意味する。メッセージは、コードが完全に実行されたことを意味し、通常、関数が内部で行ったことに注意を向けさせたいときに表示される。このため、これは診断メッセージとも呼ばれている。
あるソフトウェア開発者の友人が、ソフトウェア開発者についてこんなジョークを言ったことがある。「プログラマとは、一般人よりもグーグル操作がうまい人のことだ」。この言葉は、 R プログラミングにも当てはまる。もし、エラーや警告のメッセージの意味が分からない状況に陥ったら、迷わずコピー&ペーストして、Googleで検索する。その際、「R」をつけると検索結果が良くなることがある。インターネット上のほとんどのコンテンツは英語で書かれているので、 R のエラーメッセージが他の言語で書かれている場合は、 Sys.setenv(LANGUAGE = "en")
を実行してから、もう一度コードを実行してみよう。
世の中には大きな R コミュニティがあり、以前同じ問題に直面した人がいる可能性は非常に高い。また、データに対して何か特別なことをしたいが、そのためにどのような R コマンドを使用できるかがわからない場合にも、Google は役に立つ。専門家であっても、 R のコードを書くときに Google を数十回使うことはよくある。あなたも困ったときは、迷わず Google を使おう。
StackOverflow と CrossValidated
Google で R 関連の質問を検索すると、最初にヒットするリンクが StackOverflow というサイトが多いことがすぐに分かる。StackOverflow は、プログラミングに関連する一般的な質問のための大規模なコミュニティベースのフォーラムである。StackOverflow では、(あなたを含む)すべての人が質問をしたり回答したりすることが可能である。
インターネット上の他の多くのフォーラムとは対照的に、StackOverflow で得られる回答は、通常、目標指向で役に立つものである。Google で検索しても問題が解決しない場合は、そこで対処するのが良い解決策になるかもしれない。ただし、いくつか注意しなければならないことがある。まず、質問をするときは、どのプログラミング言語について話しているのかがわかるように、常に [R]
というタグを付けてみよう。また、 R で sessionInfo()
を実行し、得られた出力を質問に添付する。これにより、あなたが使っている R とパッケージのバージョンを知ることができ、問題の所在を突き止めるのに役立つこともある。
最後に、圧倒的な優しさを期待しないことである。StackOverflow のユーザーの多くは経験豊富なプログラマで、特定の解決策を教えてくれるかもしれないが、誰かがあなたの代わりに問題を解決してくれると思うべきではない。また、誰かがこのトピックはすでに他の場所で扱われていることを伝え、リンクを送り、次に進むこともあり得る。とはいえ、StackOverflow を使用することは、通常、あなたが対処している特定の問題に対する質の高いサポートを得るための最良の方法である。
ちなみに StackOverflow は、主にプログラミングに関する質問をするところである。統計学的な背景もある質問であれば、代わりに CrossValidated を利用するとよいだろう。CrossValidated は StackOverflow と同じように機能しているが、主に統計学や機械学習の専門家が使用する。
問い合わせ
もし、疑問がこのガイド自体と関係があるように感じられるのであれば、私たちに連絡することも可能である。特に、このガイドの付属の R パッケージである {dmetar} の問題に関係している場合がそうである。パッケージのインストールや機能の使用に問題がある場合、私たちのウェブサイトで問題を報告する方法を見つけることができる。特定の問題が頻繁に発生する場合、私たちは通常その問題を調査し、解決策を探している。既知の問題は、オンライン版ガイドの「修正・備考」セクションにも表示される(ワークフローセクションを参照)。ご質問に対する回答がない場合や、回答までに時間がかかる場合もあるが、ご容赦いただきたい。メタ分析やパッケージに関する質問は毎日多数寄せられており、ひとつひとつに直接お答えすることができない場合もある。(訳注:日本語訳に関することは、日本語版の githubに報告していただきたい。)
謝辞
David Grubbs と Chapmann & Hall/CRC Press には、私たちのオンラインガイドを印刷された書籍にするという素晴らしいアイデアをいただき、また編集面で貴重なご支援をいただいたことに感謝する。
2018年末にオンライン版の予備的な執筆を始めて以来、多くの研究者や学生が本書で作業した感想や経験を私たちと共有してくた。このフィードバックは非常に貴重であり、本書を読むもののニーズに合わせてさらに調整するのにかなり役立っている。皆さまに感謝する。
このガイドで紹介する R メタ分析基盤の開発に携わったすべての研究者に感謝する。しかし、何よりもまず、{meta} と {metafor} パッケージのメンテナである Guido Schwarzer と Wolfgang Viechtbauer に、それぞれお礼を申し上げる。このガイドは、 R メタ解析コミュニティ全体と同様に、彼らの努力と献身なしには存在し得なかった。
さらに、本書のコンパニオンサイトにある バイアスリスクの可視化に関する追加章を執筆してくれた、豪華な {robvis} パッケージの著者である Luke McGuinness に特に感謝を捧げたい。Luke、私たちはこのプロジェクトに対するあなたの継続的なサポートにとても感謝している。
最後になるが、本書の作成と編集をサポートしてくれた Lea Schuurmans、Paula Kuper、Antonia Sprenger に感謝する。
エアランゲン、アムステルダム、京都、ミュンヘン
Mathias, Pim, Toshi & David