時間依存性ROC曲線
(Time-dependent ROC)
解説
時間依存性ROC曲線とは
時間依存性ROC曲線 (Time-dependent ROC Curve) は、生存データにおけるバイオマーカーや予測スコアの予測精度を、特定の時点ごとに評価するための手法です。
通常のROC曲線はアウトカムが二値(発症/非発症)の場合に適用しますが、生存解析では観察打ち切りが生じるため、通常のROCをそのまま使うことはできません。時間依存性ROCは、この打ち切りを考慮したうえで、各評価時点における感度・特異度を推定します。
本アプリでサポートする機能
AUC の推定
- 指定した複数の評価時点ごとの AUC 計算
- AUC の 95% 信頼区間(Bootstrap; iid 法)
- AUC の時間推移プロット
ROC 曲線
- 各マーカーの ROC 曲線プロット(第1評価時点)
- 複数マーカーの ROC 曲線重ね合わせ図
最適カットオフ値
- Youden index (感度 + 特異度 - 1 が最大となる点) によるカットオフ算出
- カットオフに対応する感度・特異度の表示
複数マーカーの比較
- 全マーカーの AUC 推移を1グラフに重ねて比較
- マーカー間の AUC 差の統計的検定(timeROC::compare())
- delta AUC・p 値・優位マーカーの一覧表示
ROC タイプの選択
- C/D (Cumulative/Dynamic): 時点 t までにイベントが起きた人を陽性と定義(論文での標準)
- I/D (Incident/Dynamic): 時点 t ちょうどにイベントが起きた人を陽性と定義
データの準備
- 観察期間: 追跡開始からイベント発生または打ち切りまでの時間(連続変数)
- イベント変数: イベント発生・打ち切りを示す変数。値はユーザーが自由に指定(例: 1/0、死亡/生存)
- マーカー変数: 予測能を評価したい連続変数(複数可)
- サンプルサイズの目安: 最低10件以上(信頼区間の安定には50件以上を推奨)
結果の解釈
AUC
- AUC = 0.5:ランダムと同等(予測能なし)
- AUC > 0.7:許容できる予測能
- AUC > 0.8:優れた予測能
AUC の時間推移
- 時点によって AUC が変動する場合、マーカーの予測能が時間とともに変化することを意味します
- 特定の時点で AUC が高いマーカーは、その時点でのイベント予測に有用です
最適カットオフ (Youden index)
- 感度と特異度のバランスが最も良い点。臨床的な判断基準として参照できます
- カットオフはあくまで統計的な基準であり、臨床的妥当性の検討が必要です
マーカー比較検定
- delta AUC > 0: 左側マーカーの AUC が右側より高い
- p < 0.05 (*) / p < 0.01 (): AUC 差が統計的に有意 * 信頼区間(Bootstrap 回数 ≥ 500 を推奨)が設定されている場合のみ検定が実行されます ==== ROC タイプについて ==== * C/D (Cumulative/Dynamic): 時点 t までの累積イベント発生者を陽性とする定義。打ち切りを IPCW(逆確率重み付け)で補正。論文での標準的な選択 * I/D (Incident/Dynamic)**: 時点 t ちょうどで発生したイベントを陽性とする定義。特定時点での予測に焦点を当てる場合に使用
注意事項
- 時間依存性ROCは探索的手法であり、マーカーの臨床的有用性の確認には別途検証データが必要です
- 評価時点はデータの観察期間の範囲内で設定してください(範囲外の時点は推定が不安定)
- サンプルサイズが小さい場合や打ち切り割合が高い場合、AUC推定が不安定になります
- Bootstrap CI の計算は時間がかかります。0 を指定すると CI なしで高速に実行できます
- マーカー比較検定には Bootstrap(iid=TRUE)が必要です
アプリ
Reactive stat ロゴ について
ログインしていただければロゴは表示されなくなります
{{title}}
{{title}}
{{ item.full }}
{{title}}
{{group}}
{{title || 'カラム選択'}}
{{title || 'カラム選択'}}
{{ title }} カテゴリー変数を選択してください。複数選択すると組み合わされます
...(選択肢が多すぎます)
それぞれに設定する値を入力してください。異なる分類に同じ値を設定することもできます。順位の数値を入れれば、順序カテゴリカル変数として扱えるようになります。
| 分類内容 | 値 | |
| {{ item.tag }} |
データの取り扱い
- データインポート
- データの読み込みは、ブラウザ内で完結し、外部へのデータ送信は発生しません。
- データ保持
- 読み込んだデータはブラウザ内に保持されます。
- ブラウザのセッションが終了または全てのタブが閉じられると、保持していたデータは自動的に破棄されます。
- データの安全性
- ブラウザがクラッシュした場合でも、10分経過すれば次回の起動時にデータは安全に消去されます。
- 共用のPCでの使用も考慮し、データの外部漏洩のリスクを最小化しています。
クラウド R を利用する時のデータ送信
- 最小限のデータ送信
- 外部のRサーバーへ送信されるデータは、数値計算に必要な最小限のセットに制限されています。
- 送信データは解析に必要なサブセットのみに限られます。
- ユーザーコントロール下のデータ送信
- 送信前に、どのデータが外部サーバーへ送信されるのか内容を確認することが可能です。
- データの送信はユーザーの操作により行われ、自動的な送信は行いません。
- クラウド R 出力結果の保持
- クラウド R からの出力結果は、将来の自動翻訳や自動解説の機能実現のため、サーバーがデータベースに保持します。
- その際に、送信者の情報や、計算元となるデータなど、プライバシーに関わる情報は保持しません。
- 通信経路も全て暗号化していますので、たとえプライバシーに関わる情報が含まれていたとしても、通常は漏洩する恐れはありません。
AI による解説を利用する時のデータ送信
- 最小限のデータ送信
- 外部のAIサーバーへ送信されるデータは、クラウド R の出力結果と、用いた統計手法の徐放です。
- ただし、クラウド R の出力結果に連続した数値データが含まれる場合は、AI にデータ形式を認識させる目的で、連続データの最初の行のみを送信します。
- クラウド R 出力結果の保持
- AI による解説内容は、将来の品質向上などのため、サーバーがデータベースに保持します。
- その際に、送信者の情報や、計算元となるデータなど、プライバシーに関わる情報は保持しません。
新しい列 (カラム) 名:
ここで設定した値に完全一致するデータを欠損値として扱います。
新しい列 (カラム) 名:
Reactive stat において、統計データの変数は、通常の数値や文字列として扱われます。 したがって、日付や時間の概念は直接的にはサポートされていません。
統計計算を行う際には、日付や時間の差分を数値として事前に用意しておく必要があります。
計算結果プレビュー:
新しい列 (カラム) 名:
チェックされた行が削除対象となります
削除対象の行
データ入力
{{ errorMessage || dataStatus + 'です'}}
設定とオプション
AI による R コードの解説
R の出力結果
R出力図形
AI による R 出力結果の解説
変換設定:
(
変換元の単位:
変換先の単位:
)
変換結果プレビュー:
新しい列 (カラム) 名:
計算式の入力:
数式:
- データ: カラム名 (列名) をそのまま記述するか、"列名" のようにダブルクォートで挟んで指定
- 算術演算子: +, -, *, /, ()
- 基本関数: abs(), sqrt(), pow(), exp(), log(), log10()
- 三角関数: sin(), cos(), tan(), asin(), acos(), atan()
- 丸め関数: round(), floor(), ceil()
体重 / pow(身長, 2), "体重" / ("身長" * "身長")
利用可能なカラム:
{{ column }}
変換結果プレビュー:
{{ errorMessage }}
新しい列 (カラム) 名:
区切り文字の選択:
欠損値の処理:
プレビュー:
{{ preview }}
新しい列 (カラム) 名:
確認
変換結果プレビュー:
新しい列 (カラム) 名:
{{title}}
データがありません
{{title}}
...(選択肢が多すぎます)
{{filteringText}}
{{ title || '対象データ' }}
({{ matchedRowCount }}件 / 元データ{{ originalRowCount }}件)
除外レコードあり
ダウンロード(CSV)
{{group}}
データ
設定
分析設定
評価時点 (カンマ区切り)
AUCを計算したい時点を入力してください。
ROC タイプ
C/D: 時点 t までにイベントが起きた人を陽性と定義。I/D: 時点 t ちょうどにイベントが起きた人を陽性と定義。
Bootstrap 回数 (信頼区間)
0 を指定すると信頼区間を計算しません。500 以上を推奨。計算に時間がかかります。