mcpField
C
calc-sample-size

calc-sample-size

github.com/aperivueデータ・データベース353123 回インストール1 日前に更新
リポジトリ

calc-sample-size について

臨床研究者向けの Claude スキルです。決定木でサンプルサイズの手法を選び、研究パラメーターを確認してコードと定型レポートを作成します。一般的な検定に加え、予測モデル、読影者研究、セグメンテーションの設計にも対応します。

主な機能

  1. 01決定木による検定の選択
  2. 02パラメーターと既定値の説明
  3. 03R と Python の計算コード生成
  4. 04レポートと IRB 文書の作成
  5. 05後ろ向き研究の根拠整理
  6. 06対象外の研究デザインの明示

活用シーン

  1. 012群の割合比較のサンプルサイズ設計
  2. 02予測モデルの開発・検証規模の推定
  3. 03AI 読影者研究やセグメンテーション評価の設計
  4. 04後ろ向き研究のサンプルサイズ根拠の作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/aperivue/medsci-skills --skill calc-sample-size

インストール後、Claude Code で/calc-sample-sizeを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

skill.yml
references/
formulas.md
justification_examples.md
mrmc_reader_study_sample_size.md
multi_model_comparison_sample_size.md
observational_cohort.md
prediction_model_sample_size.md
segmentation_acceptability_sample_size.md
segmentation_metric_sample_size.md
tests/
test_worked_examples.py

詳細

Calc-Sample-Size Skill

Decision Tree

回答を仮定せず、ユーザーにこのツリーの質問を一度に一つずつ提示してください。読影者研究、セグメンテーション研究、モデル比較デザインはこのツリーの対象外です。Tests 14–17 を参照してください。

What is your primary outcome?
|
+-- Binary (yes/no, positive/negative)
|   |
|   +-- Paired data (same subjects, two methods)?
|   |   +-- YES --> [5] McNemar test
|   |   +-- NO  --> How many groups?
|   |       +-- 2 groups, superiority     --> [4] Two-proportion comparison (chi-square)
|   |       +-- 2 groups, non-inferiority --> [10] Non-inferiority / equivalence
|   |       +-- Multivariable model       --> single-predictor hypothesis test? --> [9] Logistic regression
|   |                                     --> clinical prediction / AI model for use?
|   |                                         +-- developing the model  --> [12] Prediction-model development (Riley)
|   |                                         +-- externally validating  --> [13] External-validation (Riley)
|   |
+-- Continuous (measurement, score)
|   |
|   +-- How many groups?
|       +-- 2 groups  --> [6] Independent t-test
|       +-- 3+ groups --> [8] One-way ANOVA
|
+-- Time-to-event (survival, recurrence)
|   |
|   +-- Two groups, unadjusted      --> [7] Log-rank test
|   +-- Multivariable / adjusted HR  --> [7] Log-rank (Schoenfeld) + [11] Cox EPV
|
+-- Agreement (inter-rater, reproducibility)
|   |
|   +-- Continuous measurements --> [2] ICC
|   +-- Categorical ratings     --> [3] Kappa
|
+-- Diagnostic accuracy (Se, Sp, AUC precision)
    |
    +--> [1] Diagnostic accuracy (precision-based)

Tests 1–11

検定を選んだら、${CLAUDE_SKILL_DIR}/references/formulas.md § Test N を確認してください。デフォルト値を含むパラメータ表、効果量の解釈、数式、R/Python コード、方法論上の参考文献が記載されています。

#Test使用する場面
1診断精度 — Se/Sp の精度感度または特異度の 95% CI 半幅を求める場合
2ICC の一致度(Walter 1998 検定、Bonett 2002 CI 幅)連続測定値(腫瘍サイズ、角度)に関する評価者間/評価者内の一致度
3Kappa の一致度(Donner & Eliasziw 1992。特性の有病率が必要)カテゴリ評価(BI-RADS カテゴリ、病変の有無)に関する一致度
42 割合の比較(カイ二乗検定)独立した 2 群(AI と従来法の検出率)
5McNemar 検定(対応のある割合)対応のある二値アウトカム(同じ症例を対象とする 2 人の読影者、介入前後)
6独立 t 検定独立した 2 群の平均値(病変サイズ、悪性と良性)
7生存分析/ログランク検定(Schoenfeld のイベント数から患者数を算出)2 群間のイベント発生までの時間
8一元配置 ANOVA3 つ以上の独立した群の平均値
9ロジスティック回帰(Peduzzi EPV + Hsieh 1998、連続または二値の予測因子)多変量二値アウトカム、単一予測因子の仮説検定
10非劣性/同等性新しい方法が、事前に定めたマージンを超えて標準法より劣らないこと、またはその範囲内で同等であることを示す場合
11Cox 回帰の EPV多変量 Cox モデルで安定した推定値を得るのに十分なイベント数
  • Test 9:Peduzzi EPV ≥ 10 は、単一予測因子の仮説検定に限った最低限の基準です。臨床予測/医療 AI モデルを開発して使用する場合、EPV-10 は古く、査読で問題視されるおそれがあります。開発には Test 12、検証には Test 13 を使用してください。Peduzzi と Hsieh の両方を必ず報告し、大きい方の N を推奨してください。
  • Test 10:NI のアルファは片側です(通常 0.025)。差の向きは、新しい方法が優れている場合に > 0 となるように設定してください。同等性は TOST で、両方の検定を同時に満たす検出力が必要です。マージンには臨床的な根拠が必要です(formulas.md § Margin selection を参照)。
  • Test 11:EPV はモデルの安定性を確保するものであり、特定の HR に対する検出力を保証するものではありません。HR が得られる場合は、Test 7(Schoenfeld)も実行し、大きい方の N を推奨してください。

テスト 12〜17(専門的な設計)

各テストには個別のリファレンスファイル(パラメーター、方法、報告)が用意されています。テストを選択したら、そのファイルを参照してください。

  • テスト 12 — 予測モデルの開発(Riley)。 臨床予測/分類モデル(そのようなモデルとして評価される医療 AI モデルを含む)を開発して使用する場合です。EPV-10 は適用されません。N は、すべての Riley 基準を満たす値のうち最大のものです。二値またはイベント発生までの時間を扱うアウトカムでは基準が 3 つ、連続アウトカムでは 4 つです(R の pmsampsize)。
  • テスト 13 — 外部検証(Riley)。 既存の予測/AI モデルを検証する場合です。C 統計量、較正傾き、O:E、および(主張する場合は)純便益の CI 幅に基づいてサンプルサイズを決めます(R の pmvalsampsize)。イベント数 100 件以上、非イベント数 100 件以上は最低限にすぎません。 テスト 12〜13 では ${CLAUDE_SKILL_DIR}/references/prediction_model_sample_size.md を参照してください。
  • テスト 14 — MRMC 読影者研究(Obuchowski–Rockette)。 AI の有無で読影者を比較する場合、または AI が読影者に対して非劣性であることを検証する場合です。読影者がランダム効果であるため、テスト 1 ではサンプルサイズが不足します。パイロットデータ/文献の分散成分から、読影者数 J × 症例数を RJafroc/MRMCaov/iMRMC で算出してください(OR の代数を独自に計算しないでください)。J × N の検出力グリッドを報告してください。 ${CLAUDE_SKILL_DIR}/references/mrmc_reader_study_sample_size.md を参照してください。
  • テスト 15 — セグメンテーション指標の精度(Dice/HD95/NSD)。 アウトカムは割合ではなく症例ごとのスコアです。症例ごとの Dice のパイロット SD を使い、最悪の構造に基づいて n ≈ (1.96·SD/δ)² とします。CI は患者単位のブートストラップ(BCa)で算出します。これは精度の評価です。比較はテスト 16 です。 ${CLAUDE_SKILL_DIR}/references/segmentation_metric_sample_size.md を参照してください。
  • テスト 16 — モデル間比較。 モデル A が B、C などを上回るかを検証します。各モデルの精度ではなく、症例ごとのペア差に基づいて検出力を算出します。n = ((z₁₋α/₂ + z₁₋β)·SD_Δ/Δ)² とします(ゼロをわずかに除外する CI の場合、検出力は約 50%です)。モデルが 2 つを超える場合は、主要な対比を 1 つ事前に指定するか、ファミリーワイズ補正を適用してください。ランキングを主張するには複数のシードが必要です。 ${CLAUDE_SKILL_DIR}/references/multi_model_comparison_sample_size.md を参照してください。
  • テスト 17 — セグメンテーションの実用性。 臨床医が使用できるかを評価します(受容率、重大な失敗の上限、編集時間)。受容率は構造クラスごとに割合としてサンプルサイズを決めます。DE ≈ 1 + (m−1)ρ が成り立つのは、各症例にそれぞれ異なる読影者がいる場合に限られます。すべての症例を同じ読影者が評価する交差デザインでは、読影者の項が加わるため、症例数を増やしても縮小できません。失敗率を 1%以下とするには、クリーンな症例が約 300 件必要です(3 の法則)。 ${CLAUDE_SKILL_DIR}/references/segmentation_acceptability_sample_size.md を参照してください。

対象範囲外

適応的試験(群逐次法、サンプルサイズ再推定)、クラスター無作為化試験(デザイン効果、ICC に基づく上乗せ)、ベイズ的サンプルサイズ決定、クロスオーバー・デザイン、多重エンドポイント補正は計算しないでください(質問された場合は Bonferroni に言及してかまいませんが、補正後のサンプルサイズは計算しないでください)。この設計はこのスキルの対象範囲外であると伝え、G*Power(無料、https://www.psychologie.hhu.de/gpower)、PASS、または生物統計学者を案内してください。

ワークフロー

フェーズ 1:研究内容の把握
  1. 研究の概要(デザイン、主要アウトカム、グループ)を簡潔に説明するようユーザーに依頼します。
  2. デシジョンツリーに沿ってテストを選び、先に進む前にユーザーに確認します。
フェーズ 2:パラメーターの収集
  1. 選択したテストのパラメーターテーブルを提示します。
  2. ユーザーから値が提示されていないパラメーターについて、それぞれ説明し、デフォルト値を提案します。
  3. 先行研究(参考文献を尋ねます)またはパイロットデータから効果量を推定します。Cohen の慣例は最後の手段としてのみ使用し、慣例に基づく推定は精度が低いことを明記してください。
Phase 2b: 後ろ向き研究

データセットがすでに存在する場合、正式な検出力分析は実施が難しいことがよくあります。次の方法を提示してください。

  • 固定抽出:${CLAUDE_SKILL_DIR}/references/observational_cohort.md を読み、前向きの募集を前提とした検出力計算を無理に行う代わりに、イベント数の予算または信頼区間の精度を報告します。
  • 経験に基づく根拠づけ(IRB および多くのジャーナルで認められます):
    • 施設の検査件数:期間中の検査総数 × 有病率 × (1 − 除外率) = 予想N。 該当するモダリティの年間検査件数、研究期間、有病率、除外率を尋ねてください。これにより、現実的な N の上限を見積もれます。
    • 先行研究:類似する公表済み研究 3~5 件の N を報告し、引用してください。ユーザーの N は同程度以上である必要があります。
    • いずれの場合も、IRB テンプレートは ${CLAUDE_SKILL_DIR}/references/justification_examples.md § Retrospective にあります。

前向きに登録する対象者のサブセットがある場合、主要解析が単なる推定ではなく仮説を検証する場合、ジャーナルの投稿規定で検出力分析が求められる場合、または IRB が求める場合は、後ろ向き研究でも正式な計算(Phase 3)を行ってください。

Phase 3: 計算と報告
  1. 参照式に基づき、R コード(主)と Python コード(代替)を生成します。
  2. Bash 経由で R コードを実行します。報告する N は手計算ではなく、コードが出力した数値です。
  3. 以下の出力形式で結果を提示してください。方法論の出典として引用できるのは、formulas.md または検定の参照ファイルに限ります。それ以外の出典は、/search-lit で DOI/PMID を確認する必要があります。確認できない場合は [UNVERIFIED - NEEDS MANUAL CHECK] と記してください。確認できなかった効果量、臨床上の定義、または閾値には [VERIFY] と記してください。
  4. プロジェクトでは、IRB の説明文を protocol/sample_size_justification.md に、スクリプトを protocol/sample_size_calc.R / .py に保存します。/write-protocol と /write-paper はその文章をそのまま埋め込むため、数値を再入力する必要はありません。
Phase 4: 感度分析(任意)

パラメーターが不確実な場合や効果量の推定が曖昧な場合は、その旨を明記し、妥当な値の範囲における N の表を提示してください(例:効果量を変化させる、または検出力を 0.80 から 0.90 まで変化させる)。

出力形式

最終出力は必ず次の形式にしてください。

## Sample Size Calculation Report

### Study Design
[1-2 sentence summary of the design and test selected]

### Parameters
| Parameter | Value | Source |
|-----------|-------|--------|
| ... | ... | user / literature / convention |

### Result
- **Required sample size**: N = [value]
- **With [X]% attrition adjustment**: N_adj = [value]

### R Code (Reproducible)
```r
# [complete, self-contained R script]
# Dependencies: [list packages]
# Run: Rscript sample_size_calc.R
Python コード(代替)
# [complete, self-contained Python script]
# Dependencies: [list packages]
# Run: python sample_size_calc.py
IRB 説明文

[効果の説明]を検出するには、[alpha]の[片側/両側]有意水準で[power]%の検出力を得るために、[N]人の参加者が必要です。[主要な仮定]を前提としています。 脱落率を[X]%と見積もり、[N_adj]人の参加者を登録する予定です。 この計算は、[式/方法の出典]に基づいています。

効果量の解釈

[Cohen の基準による分類+本研究における臨床的な意味]


The IRB text must state N; name the test and its formula source; give every assumed parameter
(effect size, alpha, power); state the attrition adjustment and final enrollment target; cite the
methodological reference (e.g., "Schoenfeld, 1981"); and use formal, third-person language. Read
`${CLAUDE_SKILL_DIR}/references/justification_examples.md` for per-design exemplars when writing it.

コメント