お、またICUの機械学習文献がJAMAに載ったぞ。
熟読、熟読。
Buell KG, Spicer AB, Casey JD, et al.
Individualized Treatment Effects of Oxygen Targets in Mechanically Ventilated Critically Ill Adults.
JAMA. 2024 Mar 19. Epub ahead of print. PMID: 38501205.
なるほどー。うーん。。。
やっていることは、
Sp02のターゲットを高くするか低くするかのRCTのデータを2つ(PILOTとICU-ROX)使って、
・まずPILOTのデータで28日死亡率を予測するモデルを作って、
・それをICU-ROXに当てはめて、
・この方法でICU-ROXの症例を3群に分けたところ、
・ある群では低SpO2に割り付けた方が6%死亡率が低く、ある群では高SpO2に割り付けた方が13%低かったと。
結論として、こんな感じで酸素化のターゲットを個別化すれば予後は改善するかも、と。
主な研究の問題点(パラレルワールドじゃないんだから無理でしょとか、MEGA-ROXを待とうよとか)については、EditorialでAngus先生がお書きになっている。
なので僕は機械学習的に気になったところを。
まず、PILOTで作ったモデルをICU-ROXに当てはめるためには同じ特徴量(統計用語で言うところの説明変数、ただし細かいことを言うとこの二つは違うという話もある)を作る必要がある。でも使用された重症度スコアが2つの研究で異なる(PILOTはSOFA、ROXはAPACHE II)ので、これを換算する必要があった。いろいろ方法はあると思うけど、この研究では、SOFAを2点ずつ、APACHE IIは5点ずつに群分けして、それぞれの群の実際の死亡率を計算し、その値を"predicted risk of 28-day mortality"という名前の特徴量として利用している。
さて、これは情報のリークではないか?死亡率を使って死亡率を予測しちゃダメなんじゃないか?SOFAとAPACHEの関連を示した研究はいくつかあるだろうから、それを使う方が妥当では?
6つの機械学習モデルから、RBoostというのが選ばれている(XGBoost的なやつらしい、Rの言葉で書いてあるからよく分からない)。ハイパーパラメータをいろいろ調整した結果、このRBoostが一番だったということだけど、パラーメータ調整をするためのデータセットが用意されていない。普通はPILOTのデータを少なくとも二つに分けてパラメータ調整するはずが、どうもやっていないらしい。
この二つはPILOTのデータに対して過学習の原因になりそう。
まあ、それでもROXのデータでも臨床的に妥当な結果(脳損傷では低SpO2の方がいいとか)になっているのでOKでしょう?と言われたら、反論はしにくいけれど。
酸素化のターゲットの話はMEGA-ROXを単に待つ、でいいでしょう。
Nが馬鹿デカいから、それを使っていろいろ遊ぶ人も出るだろうし。
それに、どんな手法で仮説を立てても、結局はその仮説を検証するRCTが必要なわけで、普通のサブグループ解析でも分かる仮説の検証ではなく、複雑な予測による個別化を検証するRCTって、将来的に行われるのだろうか。
やるなら見てみたい気もするけれど。
なんか、批判的吟味的なことをしてしまった。恥ずかしい。
熟読、熟読。
Buell KG, Spicer AB, Casey JD, et al.
Individualized Treatment Effects of Oxygen Targets in Mechanically Ventilated Critically Ill Adults.
JAMA. 2024 Mar 19. Epub ahead of print. PMID: 38501205.
なるほどー。うーん。。。
やっていることは、
Sp02のターゲットを高くするか低くするかのRCTのデータを2つ(PILOTとICU-ROX)使って、
・まずPILOTのデータで28日死亡率を予測するモデルを作って、
・それをICU-ROXに当てはめて、
・この方法でICU-ROXの症例を3群に分けたところ、
・ある群では低SpO2に割り付けた方が6%死亡率が低く、ある群では高SpO2に割り付けた方が13%低かったと。
結論として、こんな感じで酸素化のターゲットを個別化すれば予後は改善するかも、と。
主な研究の問題点(パラレルワールドじゃないんだから無理でしょとか、MEGA-ROXを待とうよとか)については、EditorialでAngus先生がお書きになっている。
なので僕は機械学習的に気になったところを。
まず、PILOTで作ったモデルをICU-ROXに当てはめるためには同じ特徴量(統計用語で言うところの説明変数、ただし細かいことを言うとこの二つは違うという話もある)を作る必要がある。でも使用された重症度スコアが2つの研究で異なる(PILOTはSOFA、ROXはAPACHE II)ので、これを換算する必要があった。いろいろ方法はあると思うけど、この研究では、SOFAを2点ずつ、APACHE IIは5点ずつに群分けして、それぞれの群の実際の死亡率を計算し、その値を"predicted risk of 28-day mortality"という名前の特徴量として利用している。
さて、これは情報のリークではないか?死亡率を使って死亡率を予測しちゃダメなんじゃないか?SOFAとAPACHEの関連を示した研究はいくつかあるだろうから、それを使う方が妥当では?
6つの機械学習モデルから、RBoostというのが選ばれている(XGBoost的なやつらしい、Rの言葉で書いてあるからよく分からない)。ハイパーパラメータをいろいろ調整した結果、このRBoostが一番だったということだけど、パラーメータ調整をするためのデータセットが用意されていない。普通はPILOTのデータを少なくとも二つに分けてパラメータ調整するはずが、どうもやっていないらしい。
この二つはPILOTのデータに対して過学習の原因になりそう。
まあ、それでもROXのデータでも臨床的に妥当な結果(脳損傷では低SpO2の方がいいとか)になっているのでOKでしょう?と言われたら、反論はしにくいけれど。
酸素化のターゲットの話はMEGA-ROXを単に待つ、でいいでしょう。
Nが馬鹿デカいから、それを使っていろいろ遊ぶ人も出るだろうし。
それに、どんな手法で仮説を立てても、結局はその仮説を検証するRCTが必要なわけで、普通のサブグループ解析でも分かる仮説の検証ではなく、複雑な予測による個別化を検証するRCTって、将来的に行われるのだろうか。
やるなら見てみたい気もするけれど。
なんか、批判的吟味的なことをしてしまった。恥ずかしい。
※コメント投稿者のブログIDはブログ作成者のみに通知されます