calc-sample-size について
臨床研究者向けの Claude スキルです。決定木でサンプルサイズの手法を選び、研究パラメーターを確認してコードと定型レポートを作成します。一般的な検定に加え、予測モデル、読影者研究、セグメンテーションの設計にも対応します。
主な機能
- 01決定木による検定の選択
- 02パラメーターと既定値の説明
- 03R と Python の計算コード生成
- 04レポートと IRB 文書の作成
- 05後ろ向き研究の根拠整理
- 06対象外の研究デザインの明示
活用シーン
- 012群の割合比較のサンプルサイズ設計
- 02予測モデルの開発・検証規模の推定
- 03AI 読影者研究やセグメンテーション評価の設計
- 04後ろ向き研究のサンプルサイズ根拠の作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ aperivue/ medsci-skills --skill calc-sample-sizeインストール後、Claude Code で/calc-sample-sizeを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
skill.ymlreferences/formulas.mdjustification_examples.mdmrmc_reader_study_sample_size.mdmulti_model_comparison_sample_size.mdobservational_cohort.mdprediction_model_sample_size.mdsegmentation_acceptability_sample_size.mdsegmentation_metric_sample_size.mdtests/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 半幅を求める場合 |
| 2 | ICC の一致度(Walter 1998 検定、Bonett 2002 CI 幅) | 連続測定値(腫瘍サイズ、角度)に関する評価者間/評価者内の一致度 |
| 3 | Kappa の一致度(Donner & Eliasziw 1992。特性の有病率が必要) | カテゴリ評価(BI-RADS カテゴリ、病変の有無)に関する一致度 |
| 4 | 2 割合の比較(カイ二乗検定) | 独立した 2 群(AI と従来法の検出率) |
| 5 | McNemar 検定(対応のある割合) | 対応のある二値アウトカム(同じ症例を対象とする 2 人の読影者、介入前後) |
| 6 | 独立 t 検定 | 独立した 2 群の平均値(病変サイズ、悪性と良性) |
| 7 | 生存分析/ログランク検定(Schoenfeld のイベント数から患者数を算出) | 2 群間のイベント発生までの時間 |
| 8 | 一元配置 ANOVA | 3 つ以上の独立した群の平均値 |
| 9 | ロジスティック回帰(Peduzzi EPV + Hsieh 1998、連続または二値の予測因子) | 多変量二値アウトカム、単一予測因子の仮説検定 |
| 10 | 非劣性/同等性 | 新しい方法が、事前に定めたマージンを超えて標準法より劣らないこと、またはその範囲内で同等であることを示す場合 |
| 11 | Cox 回帰の 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:研究内容の把握
- 研究の概要(デザイン、主要アウトカム、グループ)を簡潔に説明するようユーザーに依頼します。
- デシジョンツリーに沿ってテストを選び、先に進む前にユーザーに確認します。
フェーズ 2:パラメーターの収集
- 選択したテストのパラメーターテーブルを提示します。
- ユーザーから値が提示されていないパラメーターについて、それぞれ説明し、デフォルト値を提案します。
- 先行研究(参考文献を尋ねます)またはパイロットデータから効果量を推定します。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: 計算と報告
- 参照式に基づき、R コード(主)と Python コード(代替)を生成します。
- Bash 経由で R コードを実行します。報告する N は手計算ではなく、コードが出力した数値です。
- 以下の出力形式で結果を提示してください。方法論の出典として引用できるのは、
formulas.mdまたは検定の参照ファイルに限ります。それ以外の出典は、/search-litで DOI/PMID を確認する必要があります。確認できない場合は[UNVERIFIED - NEEDS MANUAL CHECK]と記してください。確認できなかった効果量、臨床上の定義、または閾値には[VERIFY]と記してください。 - プロジェクトでは、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.