tooluniverse-meta-analysis について
複数研究の効果推定値を統合し、研究間の一貫性を評価する ToolUniverse スキルです。研究結果を抽出済みのメタ分析担当者向けで、尺度変換と結果解釈の注意点も扱います。
主な機能
- 01報告値を効果量と標準誤差に変換
- 02固定効果・ランダム効果で統合
- 03信頼区間と異質性指標を出力
- 04テキスト形式のフォレストプロット
- 05エビデンス品質とバイアスの確認を案内
活用シーン
- 01複数コホートの推定値の統合
- 02システマティックレビューの結果集約
- 03再現実験間の一致度評価
- 04複数コホート GWAS の関連結果の検討
MCP 対応
MetaAnalysis_run などの ToolUniverse ツールを使い、推定値の統合と異質性評価を行います。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mims-harvard/ tooluniverse --skill tooluniverse-meta-analysisインストール後、Claude Code で/tooluniverse-meta-analysisを入力して読み込まれたか確認します。
同梱ファイルscripts/meta_analysis.pytest_meta_analysis.py
詳細
メタ分析とエビデンス統合
複数の研究の定量的な結果を1つの推定値に統合し、研究間の一貫性を評価します。これはシステマティックレビューの統計部分です(文献収集部分については tooluniverse-literature-deep-research を参照してください)。
いつ使うか
- 2件以上の研究/コホートの効果量があり、統合推定値と信頼区間(CI)を求めたい場合。
- システマティックレビュー、再現実験、複数コホートのGWAS、または複数データセットの関連性を統合する場合。
- 研究間で結果が一致している(異質性が低い)のか、食い違っている(異質性が高い)のかを判断する場合。
研究を探すためには使用しないでください。その場合は tooluniverse-literature-deep-research または文献ツールを使い、抽出した数値をここに持ち込んでください。入力する研究を信頼する前に、Crossref_check_retraction で確認することを検討してください。
ワークフロー
1. Extract (effect, SE) per study ← THE ERROR-PRONE STEP
2. Pick fixed vs random effects
3. Pool: MetaAnalysis_run
4. Read heterogeneity (I², Q, τ²)
5. Forest plot + interpret
ステップ1 — 各研究を (effect_size, se) に変換する ← 慎重に行ってください
統合には、加法スケールの効果量とその標準誤差が必要です。比率指標(OR/RR/HR)は、まず対数変換する必要があります。報告される数値の多くはSEではなくCIです。CIからSEを導出してください。
| 論文で報告されているもの | effect_size | se |
|---|---|---|
95% CI [L, U] 付きの OR / RR / HR | ln(point) | (ln(U) − ln(L)) / (2 × 1.96) |
| p値(CIなし)付きの OR / RR / HR | ln(point) | ` |
SE付きのGWAS / 回帰 β | β(報告値) | 報告されたSE |
| 2群の平均値 + SD + n₁,n₂ | Hedges' g(スクリプトを参照) | gのSE(スクリプトを参照) |
単一割合 p、n | logit(p)=ln(p/(1−p)) | sqrt(1/(np) + 1/(n(1−p))) |
Pearson相関 r、n | Fisher z = atanh(r) | 1 / sqrt(n − 3) |
重要なルール
- 比率指標は対数変換してください。 生のORを統合するのは誤りです。
ln(OR)を統合して、統合結果を指数変換して元に戻してください。スクリプトがこの処理を行います。 - 効果の方向をそろえてください。 すべての研究で効果の方向が同じであることを確認してください(例:「曝露によってリスクが増加する」)。反対方向でコーディングされた研究は、符号を反転するか比率を逆数にしてください。
- 同じ効果指標を使ってください。 1つの統合でORとHRと平均差を混在させないでください。
2 × 1.96は95% CIを前提としています。90%には2 × 1.645、99%には2 × 2.576を使用してください。
補助スクリプトがこれらの変換を行うため、手計算よりもこちらを優先してください。
python skills/tooluniverse-meta-analysis/scripts/meta_analysis.py --input studies.csv
# studies.csv columns (use the set that matches your data):
# name, or, ci_low, ci_high (ratio + CI)
# name, beta, se (already on log/linear scale)
# name, mean1, sd1, n1, mean2, sd2, n2 (two-group means -> Hedges' g)
# name, r, n (correlation -> Fisher z)
ステップ2 — 固定効果とランダム効果
| 固定効果を使う場合 | ランダム効果を使う場合 |
|---|---|
| 研究が同じ真の効果を推定している場合(例:完全な再現実験、施設別に分割した1件の試験) | 研究間で対象集団/デザイン/用量が異なる場合(現実にはこちらが一般的です) |
| I²が低い(<25%)場合 | I²が中程度~高い場合、または研究間に臨床的な異質性がある場合 |
判断に迷う場合は、ランダム効果(DerSimonian–Laird)を主要解析として報告してください。これは保守的な既定値であり、研究間分散を反映してCIを広げます。
ステップ3 — MetaAnalysis_runで統合する
tu run MetaAnalysis_run '{"method":"random","studies":[
{"name":"Smith 2019","effect_size":0.41,"se":0.12},
{"name":"Lee 2021","effect_size":0.67,"se":0.18},
{"name":"Garcia 2023","effect_size":0.33,"se":0.10}]}'
pooled_effect、pooled_se、pooled_ci_lower/upper、pooled_z、pooled_p_value、heterogeneity ブロック(Q、Q_df、Q_p_value、I_squared、tau_squared)、および研究ごとの重みとCIを含む per_study を返します。
スケールに関する落とし穴 — 必ずお読みください。
MetaAnalysis_runは渡されたスケールのまま統合するため、入力値が比率であることを認識しません。OR/RR/HRの場合は、ステップ1で求めた対数変換済みのeffect_sizeとseを必ず渡してください(例:1.42ではなくln(1.42)=0.351)。生の比率を渡すと、エラーが出ないまま誤った統合値が生成されます。また、文章形式のinterpretation文字列を含め、返される値はすべて同じ対数スケールです。そのため、比率指標ではツールのinterpretationフィールドを無視し、報告する前にpooled_effectとCIの上下限を自分でexp()してOR/RR/HRのスケールに戻してください。補助スクリプトを使えば、この問題をすべて回避できます。生のORを受け取り、スケールを追跡して、逆変換済みの結果を出力します。
ステップ 4 — 異質性を解釈する(結論を左右します)
| I² | 異質性 | 意味 |
|---|---|---|
| 0–25% | 低い | 研究間でおおむね一致しているため、固定効果モデルを採用できます |
| 25–50% | 中程度 | ランダム効果モデルを優先し、ばらつきに言及します |
| 50–75% | かなり大きい | ランダム効果モデルを用い、サブグループ解析やメタ回帰で原因を調べます |
| >75% | 非常に大きい | 統合は適切でない可能性があります。代わりに、研究間で結果が異なる理由を説明します |
Q_p_value < 0.10→ 異質性は統計的に有意です(Q 検定は検出力が低いため、0.05 ではなく 0.10 を用います)。tau_squaredは効果量スケールにおける研究間分散です。> 0の場合、固定効果モデルに対してランダム効果モデルが加える要素となります。- I² が境界域(≈25–50%)で Q 検定が有意でない(
Q_p_value ≫ 0.10)場合、特に研究数が少ない場合: 固定効果モデルとランダム効果モデルの結果は近くなります。主解析にはランダム効果モデルを報告し、固定効果モデルでも同様の結果だったことを記します。統合推定値がほぼ同じなら、モデルの選択に悩みすぎる必要はありません。
ステップ 5 — フォレストプロットと報告
スクリプトはテキスト形式のフォレストプロット(研究ごとの効果量、CI、重み%、統合値を示すダイヤモンド)を出力します。次の順で報告します。
- 統合推定値 + 95% CI + p 値(解釈可能なスケールで示します。比の場合は指数変換して元に戻します)。
- 研究数と総 N。
- 異質性:I² + Q 検定の p 値 + 選択したモデルとその理由。
- 方向性と一貫性:すべての研究で効果の方向は同じですか?
例:「3つのコホート(N=4,210)全体で、統合 OR は 1.51(95% CI 1.33–1.72、p=3.4×10⁻⁶)であり、ランダム効果モデルを用いた。異質性はかなり大きく(I²=55%、Q p=0.11)、そのためランダム効果モデルの結果を報告した。3つすべての研究で効果の方向は同じだった。」
正直に限界を示す
- 入力の質が悪ければ、出力の質も悪くなります。 メタ解析で一次研究のバイアスを解消することはできません。まず入力研究の質(および
Crossref_check_retractionによる撤回状況)を確認してください。 - 出版バイアス。 公表された研究のみから得られた統合推定値は、過大評価されている可能性があります。研究数が 10 以上の場合は、ファンネルプロットや Egger 検定を確認してください(スクリプトがその旨を示します)。10 未満の場合は、小規模研究バイアスを評価できないと明記してください。
- 生態学的な問題/集約の問題。 研究レベルの要約値を統合することは、個々の患者データを統合することとは異なります。
- 過度な統合は避けてください。 I²>75% で研究間の臨床的な違いも大きい場合、単一の数値では誤解を招く可能性があります。代わりにばらつきを説明してください。
関連スキル
tooluniverse-literature-deep-research— 入力する研究を見つけ、評価します。tooluniverse-statistical-modeling— 単一研究の回帰、Cox、OR(HR の抽出については../tooluniverse-statistical-modeling/references/cox_regression.mdを参照してください)。tooluniverse-gwas-study-explorer/tooluniverse-gwas-finemapping— GWAS に特化した複数コホート解析。