Metaforパッケージ:バイアスと感度の診断


9

複数の結果を持ついくつかの記事を含むマルチレベルのメタ分析を行っています。そのため、rma.mv()関数を使用しています。コード例:

test.main = rma.mv(yi,vi,random = ~1|ID, data = data) 

2つの質問があります。

  1. 私は以前に読んクエリ使用している場合があることrma.mv()ranktest()ファンネルプロットの非対称性の信頼性テストではありません。ただし、サンプル分散がモデレーターとして元のモデルに追加された場合、このモデルはエッガーの検定に似ています。

    test.egger = rma.mv(yi,vi, mod = vi, random = ~1|ID, data = data)
    

    このコードはそのガイダンスの正しい解釈ですか?また、ファンネルプロットも(多かれ少なかれ)rma.mv()モデルのツールとして役に立たないのですか?

  2. また、モデルの結果の感度を評価するためにleave1out()trimfill()機能しませんrma.mv()rma.mv()Rの熟練した理解を必要としないモデルで現在利用可能な他の感度分析ツールはありますか?

回答:


8

1:はい、viモデレーターとして追加することは、Eggerのテストをより複雑なモデルに拡張する論理的な方法です。

実際、モデレーターとしてサンプリング分散を使用することは、「ファンネルプロットの非対称性の回帰テスト」を実行する1つの可能性にすぎません。他の人は、モデレーターとしてサンプリング分散の逆数または標準誤差(サンプリング分散の平方根)またはそれらの逆数または合計サンプルサイズ(またはその一部の関数)を使用することを提案しています。どの予測因子が「最良の」選択であるかは完全には明らかではありません(これは、メタ分析に使用する結果指標に依存する場合があります)。たとえば、一部のメジャーでは、サンプリング分散を近似/推定するために使用する方程式は、実際には観測された結果の関数であり、出版バイアス(または「小規模研究バイアス」)がなくても2つの間の関係を自動的に作成します。または私たちがそれを呼び出したいものは何でも)。その場合、

しかし、要点は次のとおりです。はい、モデルに適切なモデレーターを追加することで、より複雑なモデルを操作するときに回帰テストを簡単に適用できます。

データの基礎となるマルチレベル/多変量構造がある場合、ファンネルプロットが役立つかどうかは議論の余地があります。たとえば、ポイントのセットは統計的な依存関係(適切なマルチレベル/多変量モデルを使用するときに考慮される)のためにクラスター化する可能性がありますが、ファンネルプロットでは、ポイントはそれだけです:ポイントの束。(異なる色や記号を使用して追加の手順を実行しない限り)それらの固有の依存関係を確認できないため、ファンネルプロットの解釈がより困難になります-ほとんどの人(私自身を含む)は、最も単純なものでもファンネルプロットの解釈に長けているわけではありませんケース(それを実証する実証研究があります!)。

2:はい、一連のポストモデルフィッティング関数は現在rma.mvモデルオブジェクトでは機能しません。私はこれを実装することに慣れていないだけで、これのいくつかは実際にいくつかの思考を必要とします。たとえば、leave1out()一度に1つのスタディを削除します-単変量のコンテキストでは、これは観測された各結果を一度に削除することと同じですが、マルチレベル/多変量データについてはどうでしょうか?また、観察された各結果を一度に削除しますか?またはポイントのセットを削除しますか?または、さまざまなオプションを利用できるようにしますか?トリムアンドフィルに関して(この方法が実際にどれほど役立つかという問題は別として):この方法をマルチレベル/多変量データに拡張すると、論文全体を書く価値があります。

したがって、感度分析を実行することは素晴らしいことですが、現時点では、これを手動で行う必要があります。リーブワンアウト分析は、単純なforループを使用して「1」が何であるか(たとえば、観察された各結果、各クラスター/研究)を注意深く考えることで簡単に実行できます。あなたは回帰テストを行うことができ、多分今のところはトリムアンドフィルのままにすることができます。標準化された残差はを介して利用rstandard()できるため、潜在的な外れ値のデータを調べることができます。hatvalues()(対角線に沿ったてこ比またはハットマトリックス全体)を介してハット値を取得できます。これにより、どの点が結果に強い影響を与えるかがわかります。このコンテキストでのもう 1つの非常に役立つ測定は、クックの距離です。これcooks.distance()は、rma.mvオブジェクトについてもを介して取得できます。


2
うわー!丁寧で丁寧な回答ありがとうございます。あなたが示唆するように、私はforループのコードの使い方を理解しようと試みます。
chabeck 2015年

1
これが便利だと聞いてうれしいです。など、さまざまなモデルフィッティング機能rma.mv()していsubsetますが、簡単に(のセット)をドロップするためのループと一緒に使用することができるという主張は、結果を観察しました。
Wolfgang

4
ヴォルフガング、あなたの提案の産物はここで見ることができます:aobpla.oxfordjournals.org/content/7/… ありがとうございます!
chabeck
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.