mcpField
A
analyze-stats

analyze-stats

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

analyze-stats について

再現可能なPythonまたはRの解析コードを生成・実行し、論文用の表、図、結果文を作成する医学研究者向けClaude Skillです。データのプライバシー確認、解析計画の承認、生成コードの品質確認をワークフローに含みます。

主な機能

  1. 01PythonまたはRの解析コード生成と実行
  2. 02論文用の表・図・結果文の作成
  3. 03PHI確認と変数の評価
  4. 04分離問題とコード品質の検査

活用シーン

  1. 01匿名化済み医学研究データの解析
  2. 02再現可能な統計結果と図表の作成
  3. 03論文の結果・方法文の下書き

インストール

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

$npx skills add https://github.com/aperivue/medsci-skills --skill analyze-stats

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

同梱ファイル

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

references/
analysis_run_workflow.md
references/analysis_guides/
agreement_reliability.md
burden_decomposition_forecasting.md
calibration.md
diagnostic_accuracy.md
health_economic_evaluation.md
mediation.md
mendelian_randomization.md
meta_analysis.md
missing_data.md
multiplicity.md
network_meta_analysis.md
nhis_icd10_mapping.md
polygenic_risk_score.md
propensity_score.md
regression.md
repeated_measures.md
survey_weighted.md
survival.md
test_selection.md
references/style/
figure_style.mplstyle
theme_publication.R
references/table-standards/
table-standards.md
references/table-standards/journal-profiles/
ajr.yaml
european_radiology.yaml
jama.yaml
lancet.yaml
nejm.yaml
radiology.yaml
references/table-standards/table-types/
agreement.md

詳細

統計解析スキル

医療研究の解析に使用する再現可能なコード(Python を推奨し、必要に応じて R)を生成して実行し、その出力から論文投稿に適した表や図を作成します。

データのプライバシー確認

データファイルを読み込む前に、保護対象保健情報(PHI)が含まれている可能性がないか確認します。

  1. 作業ディレクトリに *_deidentified.* ファイルがある場合は、それを使用します。
  2. 生の CSV/Excel ファイルのみがある場合は、データに患者識別情報(氏名、国民 ID/RRN、連絡先)が含まれているかどうかをユーザーに確認します。含まれている場合は、まず /deidentify で匿名化するよう依頼します。
  3. データが匿名化済み、または PHI を含まないことをユーザーが確認した後に作業を進めます。
  4. 生の PHI 値(氏名、電話番号、RRN)を出力に表示してはいけません。コンソール出力はトランスクリプトや草稿にコピーされるためです。該当する値を見つけた場合はユーザーに警告し、/deidentify を提案します。

参考ファイル

  • ${CLAUDE_SKILL_DIR}/references/templates/ — 再利用可能な解析スクリプトです。コードを生成する前に、該当するテンプレートを確認します。
  • ${CLAUDE_SKILL_DIR}/references/analysis_guides/ — 方法論ガイドです。Phase 2 の表を参照し、読むべきガイドを確認します。
  • ${CLAUDE_SKILL_DIR}/references/table-standards/ — table-standards.md(共通ルールと AMA ルール、脚注の順序、gtsummary パイプライン)、journal-profiles/(各ジャーナルの YAML:radiology、jama、nejm、lancet、european_radiology、ajr)、table-types/(表の種類ごとのテンプレート)、tool-comparison.md(R/Python の表作成ツール)。
  • ${CLAUDE_SKILL_DIR}/references/style/figure_style.mplstyle — 図のスタイルです。

ワークフロー

Phase 1:データの評価
  1. データファイルを読み込みます(CSV、Excel、TSV、その他の表形式)。
  2. ユーザーに報告します:データの形状(行数 x 列数)、列名と推定データ型(連続、カテゴリ、順序、二値、日時)、列ごとの欠損値(件数と割合)、先頭 5 行、カテゴリ列ごとの一意な値の数。
  3. 解析単位を特定します:患者、検査、病変、画像、評価者、研究などです。
  4. 変数名またはコーディングが不確かな場合は、[VERIFY: variable_name] と記載し、データ辞書に照らして確認するようユーザーに依頼します。列名やコーディングを推測してはいけません。
フェーズ 2:解析計画

観察研究デザイン(コホート研究、症例対照研究、横断研究、レジストリ、調査)では、計画の前に、/define-variables で作成された variable_operationalization.md(または同等の、コードブックに基づく定義表)を探します。存在しない場合はユーザーに警告し、まず /define-variables を実行するよう推奨してください。データディクショナリから場当たり的に曝露・アウトカム・共変量の定義やカットオフ値を考案することは、査読者が観察研究を却下するよくある理由だからです。これは警告であり、進行を妨げるものではありません。ユーザーの明示的な確認を得て進め、成果物が利用できなかったことを記録してください。

解析計画を提案します。研究課題とエンドポイントはユーザーが決定します。確認できなかった臨床的定義、カットオフ値、診断基準、ガイドラインに関する主張には [VERIFY] を付けてください。

  1. Analysis-Specific Guidelines の表から解析の種類を判定するか、ユーザーの指定を受け入れます。

  2. 実施する具体的な検定を列挙します。

  3. 主要および副次エンドポイントを特定します。

  4. 確認する仮定(正規性、等分散性、独立性)を示します。

  5. 必要なデータクリーニング(再コード化、外れ値の処理、欠測データの方針)を記します。

  6. 推定対象を研究課題に結び付けます。

    • 交互作用、相乗作用、効果修飾:主要な推定対象は交互作用パラメーターそのものです(交互作用項の尤度比検定、または明示した尺度での交互作用 OR/HR)。主効果の OR の信頼区間を「相乗作用なし」と解釈することではありません。公衆衛生上または生物学的な相乗作用の主張は加法尺度に基づくため、乗法的な積項だけでなく、信頼区間を付けて RERI、AP、または S を報告してください(R の interactionR/epiR、Knol & VanderWeele の報告指針)。乗法的交互作用が有意でなくても大きな加法的交互作用があり得る(その逆も同様)からです。共同カテゴリー(高値/高値 対 低値/低値)は共同関連を示すものであり、交互作用を示すものではありません。別々の層別推定値から「A では B より強い」とするのは有意差の差の誤謬です。正式な交互作用項を報告してください。
    • 同等性または非劣性:許容限界を事前に宣言してください(TOST 手順、または事前に定めた MCID と信頼区間の比較)。許容限界を設定せず、差が有意でないことを同等性とみなすことはできません。
  7. 適合を行う前に、すべてのカテゴリカル/二値予測因子について分離をスクリーニングします。 アウトカムを完全に予測する予測因子では有限の MLE が得られませんが、この失敗は表面化しません。glm は 0 に近い(または非常に大きい)オッズ比、p ≈ 0.99、そして最終的に表に載る AUC を返します。T2-FLAIR ミスマッチ、string sign、halo sign などの病理診断的画像所見は、これを日常的に引き起こします。特異度 100% では、構造上、空のセルが生じるためです。

    python3 "${CLAUDE_SKILL_DIR}/scripts/check_separation.py" \
      --data cohort.csv --outcome idh_mutant --auto --strict
    

    COMPLETE_SEPARATION(空のセル)と QUASI_SEPARATION(疎性の下限を下回るセル)は、どちらも計画を停止させます。予測因子が 2 つ以上ある場合、スクリプトはそれらを同時に検定します(単独ではアウトカムを分離しない場合でも、線形結合によって分離することがあります)。この検定には scipy が必要で、利用できない場合は、同時検定を実施しなかった旨がレポートに記載されます。対処法は計画段階で決定する研究デザイン上の判断です。Firth の罰則付き尤度を使えばモデルを 1 つに保てます。一方、2 段階ルール、すなわち符号陽性の症例を直接分類し、符号陰性の症例だけをモデル化する方法は、病理診断的な所見では通常、臨床的に意味のある選択です。符号陽性の患者は、すでに診断が確定しているためです。

計画を提示し、実行する前にユーザーの承認を待ってください。

フェーズ 3:実行

Python(推奨)または R のスクリプトを生成して実行します。報告するすべての数値は、必ず実行結果に基づく必要があります。推定したり手入力したりしてはいけません。スクリプトで再現できない数値は検証できないためです。

スクリプトの構成

すべてのスクリプトの冒頭に、再現性ヘッダーを記載します。

"""
Analysis: {description}
Date: {YYYY-MM-DD}
Random seed: 42
Python: {version}
Key packages: {package==version, ...}
"""
import numpy as np
import pandas as pd
np.random.seed(42)
実行ルール
  1. 乱数シード:常に np.random.seed(42) または set.seed(42) を使用します。
  2. 図のスタイル:常に matplotlib のスタイルファイルを読み込みます。
    import matplotlib.pyplot as plt
    style_path = os.path.join(os.environ.get('CLAUDE_SKILL_DIR', '.'), 'references/style/figure_style.mplstyle')
    if os.path.exists(style_path):
        plt.style.use(style_path)
    
  3. 出力ファイル:入力データと同じ場所、またはユーザー指定の出力ディレクトリに保存します。
  4. 表:CSV と、印刷用の Markdown 版を出力します(「出力規約」を参照)。図:PDF(ベクター形式)と PNG(300 DPI)で出力します。
  5. コンソール出力:結果セクションにそのままコピー&ペーストできる形式で、本文に記載するすべての数値を含む要約を出力します。
仮定の確認

事前検定ではなく、デザインと分布に基づいて要約方法と検定を選択します。

  • 分布形状:QQ プロット/ヒストグラムと歪度で確認します。Table 1 では、|skewness| > 1 の場合は中央値(IQR)と順位検定を、そうでない場合は平均値(SD)を用います(table-types/table1_demographics.md)。Shapiro-Wilk 検定や KS 検定の P 値を判定基準にしてはいけません。大標本ではごくわずかな逸脱を検出し、小標本では実際の逸脱を見逃し、検定を繰り返すことで第 I 種過誤が増加するためです(Rochon et al. 2012)。
  • 不等分散:Levene 検定を判定基準にせず、原則として Welch の t 検定/Welch ANOVA を使用します。Mann-Whitney 検定は異なる仮説を検定するもので、不等分散を解消するものではありません。選択した方法とその理由を方法のセクションに記載します。
層別および順序トレンドの報告
  • 層の相互排他性の確認(順序トレンド検定の前に実施):Cochran-Armitage トレンド検定(または層を順序付きの分割として扱う分析)を実施する前に、層が相互排他的かつ網羅的であることを確認します。つまり、sum(n per stratum) == unique N および sum(events per stratum) == total events であることを確認します。重複または網羅的でない層に対するトレンド検定は無効です。層ごとの N/イベント数の表と照合結果を出力します(/self-review の check_cohort_arithmetic.py における PARTITION_OVERLAP の分析側での対応)。
  • 副次的な層別 HR/OR:それぞれについて、(a)参照対比(参照カテゴリ)、(b)各層のイベント数、(c)いずれかの層のイベント数が少ない(< 10 では不安定)場合の疎な層に関する注意書きを報告します。参照カテゴリとイベント数を示さない「痩せ型の参加者で HR 1.55」という記載は、解釈できません。
  • 割合の信頼区間の下限をクランプ:すべての下限を max(0, lower) にクランプします。イベントがゼロの場合、Wilson/スコア区間の下限は負の値やごく小さな指数表記(例:3.47e-16)として表示されることがありますが、これは表示上のアーティファクトです。0(または 0.0%)と報告し、イベント数がゼロまたはほぼゼロのセルには正確な(Clopper-Pearson)区間を優先します。
出力マニフェスト

すべての分析が完了したら、references/analysis_run_workflow.md に記載された形式で、出力ディレクトリに _analysis_outputs.md を保存します。これにより、/make-figures と /write-paper は問い合わせることなく出力を確認できます。

独立した単位に対する事前指定の二値予測には、このファイルに記載された同梱の scripts/run_analysis.py run ワークフローを使用します。このワークフローは、データ/設定/コード/出力のハッシュ、正確な件数、指標ごとの分母、再現コマンドを同じマニフェストに記録します(audit は記録済みのバージョンを確認しますが、書き換えません。compare は宣言されたコンテキストおよび数値の一致と、バイト単位の差異を区別します)。閾値の選択、研究の妥当性の確認、プライバシー上の許可、再利用権の確認は行いません。合成データの例: python3 ${CLAUDE_SKILL_DIR}/scripts/demo_analysis_run.py --out demo-project

フェーズ 3.5:生成コードの品質ゲート

スクリプトを最終版として報告する前に、出力したすべての .py/.R ファイルを lint します。

python3 ${CLAUDE_SKILL_DIR}/scripts/check_generated_code.py {script.py} --strict
# or scan a whole output directory:
python3 ${CLAUDE_SKILL_DIR}/scripts/check_generated_code.py --code-dir {analysis_dir} --strict

スクリプトを報告する前に、すべての Major を修正します。対象は、MISSING_SEED(シードを設定していない乱数処理)、HARDCODED_DATA_LITERAL(read_csv()/read.csv() と部分集合の抽出を使わず、テーブル形式のデータを手入力している)、HARDCODED_ABS_PATH(移植性がなく、PII のリスクがある)、および INPLACE_SOURCE_OVERWRITE(入力として読み込んだパスへの書き込み。生データは変更せず、派生出力は新しいパスに書き込みます)です。整理の際には、DEBUG_LEFTOVER と UNUSED_IMPORT のフラグも修正します。 Minor は Python のみです。API_DEFAULT_STUDENT_T(equal_var を指定せずに scipy の ttest_ind を使用すると Student の t 検定になります。Welch を明示するか、Student を使う理由を記載します)および API_DEFAULT_PENALIZED_OR(coef_ を指数変換するファイルで、LogisticRegression に penalty、C、l1_ratio のいずれも指定していない場合)です。R の t.test() はデフォルトで Welch の検定を使用します。

フェーズ 4:報告

実行後、スクリプトの出力から、論文原稿にそのまま使用できる文章を作成します。

  1. 結果の段落:具体的な数値を含む 3~8 文とし、次の形式にします。
    • 連続変数:「平均値 +/- SD」または「中央値(IQR)」
    • 比率:「n/N(XX.X%)」
    • 検定結果:「統計量 = X.XX、p = 0.XXX」
    • 効果量:「Cohen の d = X.XX(95% CI:X.XX-X.XX)」
    • AUC:「AUC = 0.XXX(95% CI:0.XXX-0.XXX)」
  2. 表/図のキャプション:表番号/図番号を参照するキャプションを作成します。
  3. 方法の抜粋:方法セクション用に、統計手法を説明する 2~3 文を作成します。DOI/PMID が /search-lit で確認できた文献のみ引用し、それ以外の文献には [UNVERIFIED - NEEDS MANUAL CHECK] を付けます。

統計結果を報告し、臨床的意義の判断はユーザーに委ねます。このスキルの対象外となるデザイン(適応型試験またはベイズ試験、複雑な多層モデルまたは因果媒介モデル)については、その旨を伝え、結果を報告する前に生物統計学者のレビューを受けるよう推奨します。

統計報告ルール(常に適用)

  1. 正確な p 値:不等号ではなく正確な値を報告します(例:p = 0.034)。0.001 未満の場合は、p < 0.001 と報告します。
  2. 信頼区間:主要評価項目について、必ず 95% CI を報告します。
  3. 効果量:すべての p 値とともに、適切な効果量(Cohen の d、イータ二乗、オッズ比、リスク比など)を報告します。
  4. 多重比較:同じデータセットに対して 3 件以上の検定を行う場合は、Bonferroni 法または Benjamini-Hochberg 法で補正し、手法を明記したうえで、補正前と補正後の両方の p 値を報告します。
  5. サンプルサイズ:各群・各解析の n を明記します。
  6. 欠測データ:除外した症例数とその理由を報告します。
  7. 小数点以下の桁数:p 値は小数点以下 3 桁、割合は小数点以下 1 桁、平均値/SD は測定精度に合わせて報告します。
  8. デザイン/検出力の統計値はコードの出力とし、手計算しないでください。 原稿に記載する最小検出可能効果(MDE)、事前検出力、必要サンプルサイズは、手法と入力値(各群の n、有意水準、検出力、割り付け比、片側/両側)とともに、コミット済みのスクリプトで必ず出力してください。G*Power やオンライン計算ツールなどの別ツールで計算して貼り付けることは避けてください。スクリプトで再現できない原稿中の数値は検証できないためです。一貫して同じ手法群を使用してください(例:statsmodels の TTestIndPower または scipy の nct による正確な非心 t 分布)。一部の値に正規近似を、別の値に正確な t 分布を混在させないでください。事後(観測)検出力は報告しないでください。これは p 値の関数であり、追加情報をもたらしません(Hoenig & Heisey 2001)。代わりに効果量の CI を報告してください。
  9. 推定対象と CI の出力要件。 分位点の推定対象(T25、イベント発生までの時間の中央値)、プールされた割合、サブディストリビューション HR も含め、すべての主要な点推定値には 95% CI を付けてください。OR/HR/AUC だけに限りません。/self-review では、CI のない主要指標を不備として扱います。出力 CSV では、区間を明示的な列(estimate, ci_lower, ci_upper)で保持するか、推定値 (下限–上限) の形式で 1 つのテキスト列にしてください。点推定値だけを区間なしで記載してはいけません。OR/HR/sHR は小数点以下 2 桁、AUC/C 統計量は小数点以下 3 桁に丸めてください。
効果量の実世界向け換算

主要な結果が相関係数、標準化係数、回帰傾き、OR/HR/RR、または Cohen の d である場合は、効果量(ルール 3)に加えて、統計の専門家でない人が行動に移せる平易な言葉による単位変化としても報告してください。これは、連続的な曝露とアウトカムの関連(Spearman の rho、Pearson の r、標準化傾き)、対象者が絶対リスクを把握する必要のある相対指標、読者調査や専門家への意見聴取、臨床的有用性の枠組み、抄録、図のキャプションにも適用されます。

  1. 曝露について、基準となる対比を選びます。1 単位の変化ではなく、デフォルトでは 25 パーセンタイルから 75 パーセンタイルまでとし、両端の値には元の単位を使います。
  2. アウトカムの尺度に換算します。
    • 元の単位で表した回帰傾き b の場合:delta_outcome = b * (x_p75 - x_p25)。符号はそのまま保ちます。b が負の場合は減少です。
    • 曝露を標準化した 1 SD あたりの傾きの場合:delta_outcome = beta * (x_p75 - x_p25) / SD_x。完全標準化 beta の場合は、さらに SD_outcome を掛けます。
    • 相関係数は傾きではありません。Pearson の r は、同じデータにおける単回帰の傾きに換算できます(b = r * SD_outcome / SD_x)。これは関係が線形の場合に限り、単位あたりの平均変化を表します。Spearman の rho は、アウトカムの単位で表される変化には換算できません。アウトカムを曝露に回帰して、その傾きを換算してください(Spearman を使った理由が外れ値である場合は Theil-Sen 法を使います)。単調ではあるものの曲線状の関連では、代わりに x_p25 と x_p75 における当てはめたアウトカムを報告します。
    • 次のように報告し、その背後にある線形性の仮定を明記してください:「{x_p25} から {x_p75} {units} に変化すると、平均して約 {delta_outcome} {outcome units} の変化が関連します」。
  3. 主張の範囲を明確にします。対比、仮定、係数の CI を報告し、粗推定値や未調整推定値から因果関係を示唆しないでください。

出力要件(臨床的有用性はデフォルトであり、任意の追加項目ではありません):

  • OR/HR/RR が主要アウトカムの場合 → 相対指標と、明示したベースラインにおける絶対リスク、絶対リスク差、NNT = 1/ARR(または NNH = 1/ARI)を報告し、ベースラインリスクを明記します。相対指標だけの見出しでは不十分です。
  • 連続アウトカムの場合 → 効果量の下に、IQR または臨床的に基準を定めた「実世界向け換算」の行を記載します。
  • 予測/分類モデル(医療 AI を含む)の場合 → AUC だけでは不十分なため、識別能とあわせてキャリブレーション(Brier スコア、キャリブレーションプロット、またはキャリブレーション傾き/切片)を報告します。該当する閾値でのディシジョンカーブ/ネットベネフィットの評価も標準的な出力です。増分効果を主張する場合は、新しいモデル単独の AUC ではなく、新しい項に対する追加価値の検定(ネストモデルにおける尤度比/Wald 検定)、ΔC 統計量とその CI、および既存の臨床モデルに対するΔネットベネフィットを報告します。NRI はイベント/非イベントで分けるカテゴリカル版に限り、IDI は慎重に扱います。references/table-standards/table-types/incremental_value.md および make-figures の decision_curve の例(描画済みの曲線については render_core_figures.py)を参照してください。

エラー処理

  • スクリプトが失敗した場合は、考えられる原因(パッケージの不足、データ形式の不一致、列名の誤り)を診断し、修正方法を提示してください。スクリプトを変更するかユーザーに確認することなく、同じスクリプトを 2 回以上再実行しないでください。
  • R パッケージを利用できない場合は、install.packages() を提案し、ユーザーの確認を待ってください。

出力規約

コード、表、図、コンソール出力は英語で記述します。

表

論文掲載用の表を作成する前に、必ず以下を読み込んでください。

  1. 対象の雑誌が決まっている場合は、${CLAUDE_SKILL_DIR}/references/table-standards/journal-profiles/{journal}.yaml(脚注記号、P 値と CI の表記、タイトルと略語の順序を指定します)
  2. 表の種類に対応する ${CLAUDE_SKILL_DIR}/references/table-standards/table-types/{type}.md
  3. 雑誌が指定されていない場合は、AMA スタイル(Radiology プロファイル)をデフォルトとして使用します

出力形式(必ず 3 種類すべてを生成してください):CSV ファイル(後続処理とアーカイブ用)、コンソール用の Markdown 表示(ユーザー確認用)、R の gtsummary コード(Word/LaTeX エクスポート用)。gtsummary パイプラインと脚注の配置順(一般注、略語、個別注、確率に関する注)については、${CLAUDE_SKILL_DIR}/references/table-standards/table-standards.md を読んでください。

検証チェックリスト(表を確定する前に実施してください)。

  • 縦罫線なし — 横罫線のみ(上端、ヘッダー下、下端)
  • 二値変数は 1 つの水準のみ表示します(例:男性のみ)
  • 単位はセルではなく見出しに記載し、列ごとの小数点以下の桁数を統一します
  • ばらつきの尺度を明記します:平均(SD)または中央値(IQR)
  • 統計検定名を記載します(脚注または一般注)。正確な P 値を記載し、「NS」は使用しません
  • 効果量は臨床的に意味のある単位ごとに示します(1 年ごとではなく 10 年ごと)
  • カテゴリ予測因子の参照カテゴリを明記します
  • 略語は脚注で定義し、各表だけで内容が完結するようにします
図

PDF(ベクター)+ PNG(300 DPI)。figure_style.mplstyle(Arial、色覚多様性に配慮したパレット)でスタイルを設定します。幅は 3.5 インチ(1 段組)または 7.0 インチ(2 段組)とし、軸ラベルには単位を記載します。

分析に関する個別ガイドライン

いずれかの行についてコードを生成する前に、その行に記載されているファイル(${CLAUDE_SKILL_DIR} からの相対パス)を読みます。これらのファイルには、このファイルで繰り返していない手法上のルールが記載されています。

分析の種類コード生成前に読むファイルテンプレート
表1(人口統計学的特性)references/table-standards/table-types/table1_demographics.mdreferences/templates/table1_demographics.py
診断精度(Se、Sp、PPV、NPV、AUC)references/analysis_guides/diagnostic_accuracy.mdreferences/templates/diagnostic_accuracy.py
ベースラインモデルを超える付加価値(ΔAUC、NRI/IDI、純便益)references/table-standards/table-types/incremental_value.md—
読影者研究(MRMC)references/table-standards/table-types/reader_study.md—
予測モデル(意思決定に使用するリスクを出力)references/analysis_guides/calibration.md—
評価者間一致度(カッパ、ICC、Bland–Altman)references/analysis_guides/agreement_reliability.md、references/table-standards/table-types/agreement.mdreferences/templates/agreement_analysis.py
メタアナリシス(ペアワイズ、単群割合、DTA)references/analysis_guides/meta_analysis.mdreferences/templates/dta_meta_analysis.R(DTA)
ネットワークメタアナリシス(3 つ以上の介入)references/analysis_guides/network_meta_analysis.md—
医療経済評価(CEA、CUA、予算影響)references/analysis_guides/health_economic_evaluation.md—
アンケート/リッカート(順序尺度の評価尺度)以下の「アンケート/リッカート」のセクションreferences/templates/likert_summary.py
生存時間、競合リスク、区間打ち切りイベントreferences/analysis_guides/survival.md、references/table-standards/table-types/survival_results.mdreferences/templates/survival_analysis.py(ネストされた単位には --cluster <id>)
群間比較、相関references/analysis_guides/test_selection.md—
ロジスティック回帰または線形回帰references/analysis_guides/regression.mdreferences/templates/regression.py(regression_type = "logistic" または "linear")
傾向スコア(PSM、IPTW、SIPTW、オーバーラップ重み付け)references/analysis_guides/propensity_score.mdreferences/templates/propensity_score.py
調査ウェイトを用いた分析(KNHANES、NHANES、KCHS)references/analysis_guides/survey_weighted.mdreferences/templates/survey_weighted_analysis.py
NHIS のレセプトに基づく研究(ICD-10 定義)references/analysis_guides/nhis_icd10_mapping.md—
反復測定(LMM、GEE、RM ANOVA)references/analysis_guides/repeated_measures.md;欠測データについては references/analysis_guides/missing_data.md を参照してください(LMM は MAR のもとで観測済みのアウトカムをすべて使用するため、アウトカムの欠測だけを理由に MICE を行う必要はありません)references/templates/repeated_measures.py
媒介分析references/analysis_guides/mediation.md—
多重検定、多数の曝露を対象としたスキャン(ExWAS/EWAS)references/analysis_guides/multiplicity.md—
メンデルランダム化references/analysis_guides/mendelian_randomization.md—
ポリジェニックリスクスコアreferences/analysis_guides/polygenic_risk_score.md—
疾病負荷、分解、予測references/analysis_guides/burden_decomposition_forecasting.md—

モデルの比較:同じ患者の 2 つの独立したスコアには、対応のある DeLong 検定を使用します。同じデータで適合・評価したネストされた「ベースライン+新しい項」のモデルでは、DeLong 検定は付加価値の検定にはなりません。項を検定し(尤度比)、ΔAUC とその CI を報告してください。

以下のルールには、個別のガイドはありません。

調査/リッカート尺度
  • 項目ごとの記述統計:中央値、IQR、度数分布。群間比較:マン・ホイットニー検定 またはクラスカル・ウォリス検定(順序データ)。可視化:発散型積み上げ棒グラフ。
  • 内的一貫性:項目合計相関を用いたクロンバックのアルファ。
  • 逆転項目のコーディング確認(信頼性の計算前に実行):尺度合計またはクロンバックのアルファを計算する前に、否定的な表現の項目をすべて (min+max) - x で再コーディングします。逆転項目を再コーディングしないと、項目残余相関が 負 になり、アルファが負になることがあります。これはコーディングのバグであり、 多次元構成概念の証拠ではありません。多次元構成概念として正当化しないでください。likert_summary.py は項目ごとの項目残余相関を出力し、負の値を逆転コーディングの候補として示し、アルファが負の場合は警告し、--reverse-items E3 ... で再コーディングを適用します。クリーニング時にスクリーニングするには、 python3 "${CLAUDE_SKILL_DIR}/../clean-data/scripts/check_reverse_coding.py" を実行します。
共変量に関する注意点:構造的ゼロと用量/期間変数

カテゴリ別曝露に紐づく用量/期間変数(喫煙状況における喫煙年数、飲酒における週あたりのグラム数、元喫煙者における禁煙期間)を用いた、多変量調整(ロジスティック回帰/線形回帰/Cox回帰/傾向スコア/調査ウェイト)のすべてに適用されます。

  • 構造的ゼロの確認(補完しないでください):非喫煙者の pack_years は、欠損ではなく、カテゴリの定義上0であることが既知の構造的ゼロです。これを補完(MICE/MNAR)すると、非曝露者に架空の用量が割り当てられ、曝露の対比が損なわれます。用量/期間の列を補完する前に、該当するゼロを明示的に設定し(IF status == 'never' THEN dose = 0)、曝露者のうち本当に欠損している残余だけを補完します。/clean-data は、用量が NULL の never 行にフラグを立てます(scripts/check_structural_zero.py)。
  • 完全症例分析による対象者数の急減(用量ではなく状況を調整):ゼロが NULL として格納されている場合、完全症例モデルに用量変数を含めると非曝露層全体が除外され、n が(多くの場合40~60%)減少し、サブグループの推定値が歪みます。カテゴリ別の状況 (never/former/current)で調整し、連続値の用量は曝露者のみの二次分析に使用します。モデル適合前後の n を報告し、分母がいつの間にか急減していないことを確認します。
共変量の選択:横断的なアウトカムモデルにおける過剰調整

横断的/単一時点のアウトカム回帰に適用します(時間的な順序は観察されません)。共変量は統計的ではなく、因果関係に基づいて選択してください。

  • アウトカムの結果または媒介因子では調整しないでください — これは過剰調整/コライダーバイアスにあたり、検討対象の効果の一部を取り除いてしまいます。典型例:アウトカムがeGFRの場合、血清尿酸は腎臓から排泄されるため(eGFRが低いほど尿酸値が上昇します)、交絡因子ではなくアウトカムの結果です。血圧やHbA1cも同様に下流に位置することがよくあります。各候補共変量をDAGに照らして、交絡因子/媒介因子/アウトカムの結果/コライダーに分類し、主要モデルには交絡因子のみを残してください。
  • 「表1で差がある」は、交絡因子の選択基準ではありません。 群間の不均衡は、変数を 検討する 根拠にはなりますが、どれほど不均衡であっても、媒介因子やアウトカムの結果は除外したままにしてください。
  • 問題のある共変量に関する感度分析とVIFを報告してください。 倹約的な、既往歴/研究デザインに基づくモデルを主要モデルとし、問題のある共変量を除外(または追加)した、より詳細なモデルを感度分析として報告して、主要な推定値が変化するかを示してください。VIFと実際にモデルに適合させたnを出力してください。共変量を除外すると推定値が大きく変わる場合は、その結果を抄録と結論にも反映してください。
  • 調整済みと未調整のモデルは、同じ解析対象で比較してください。 共変量を追加した調整によって欠測が生じると、解析対象のnが減少し(例:イベント数が84から49に減少)、その推定値を全対象の未調整推定値と比較した場合、調整の影響と除外対象の違いが交絡します。完全ケース数が減った対象に未調整モデルを再適合し、その対象における未調整と調整済みの推定値を、全対象での推定値と並べて報告してください。異なる対象間の比較から「調整によって推定値が変わった」と説明してはいけません(または、多重代入を用いてすべてのモデルで対象を統一してください)。

コメント