【活動報告】Pythonを使ったデータ解析ハンズオン勉強会を開催しました
活動報告
先日、麻酔科スタッフ・後期研修医・PAN/PAME のメンバーが集まり、観察研究の交絡調整をテーマにしたハンズオン勉強会を開きました。ほとんどのメンバーがプログラミング初心者であったため、スライドで概念を学ぶだけでなく、実際の解析コードを手元で動かしながら「なぜその手法を使うのか」を体感することを目的にしました。
勉強会の課題
術中低血圧の評価指標としてよく使われるMAP≤65 AUC(mmHg·min) を主要アウトカムとして、専攻医が管理した場合と麻酔専従看護師(PAN)が管理した場合で差があるのかという臨床疑問を解決することとしました。
当院では専攻医とPANがともに全身麻酔を担当しています。誰が担当するかは手術内容や合併症に応じて違ってきます——この「症例配分の偏り(交絡)」を無視したままでは、単純な群間比較に意味はありません。
そこで今回は 傾向スコアを用いたOverlap Weightingを用い、「専攻医にも PANにもなり得た患者層」に焦点を当てた公平な比較を試みました。
当院では専攻医とPANがともに全身麻酔を担当しています。誰が担当するかは手術内容や合併症に応じて違ってきます——この「症例配分の偏り(交絡)」を無視したままでは、単純な群間比較に意味はありません。
そこで今回は 傾向スコアを用いたOverlap Weightingを用い、「専攻医にも PANにもなり得た患者層」に焦点を当てた公平な比較を試みました。
ハンズオンの流れ
1. データ読み込みと前処理
電子カルテから抽出した症例データを読み込み、BMI 計算・ASA-PS の数値化など整備を行います。
2. 傾向スコア(PS)の推定
今回は年齢・BMI・ASA-PS・診療科(29科)をもとにロジスティック回帰で PS を推定しました。PS は「この患者が専攻医担当になる推定確率」を表します。
3. Overlap Weight(OW)の計算と可視化
Overlap weightingではPS が 0.5 付近——つまりどちらの担当者でもあり得た症例——に大きな重みがかかります。勉強会では、この重みの構造をグラフで可視化し、「なぜ重なり集団に注目するのか」を直感的に理解してもらいました。
4. バランス診断:Love Plot
重み付けの前後で共変量のバランスを確認するのが Love plot です。
• Before weighting:診療科の SMD が最大 0.347 など、多くの変数で群間差が大きい
• After overlap weighting:全変数で SMD < 0.1 を達成
調整前後で背景差を可視化すると、重み付けが機能していることが一目瞭然です。
• Before weighting:診療科の SMD が最大 0.347 など、多くの変数で群間差が大きい
• After overlap weighting:全変数で SMD < 0.1 を達成
調整前後で背景差を可視化すると、重み付けが機能していることが一目瞭然です。
5. 結果
患者背景で調整した後に、専攻医とPANの低血圧指標を比較してもらいました。結果はここでは伏せますが、意外な事実に驚きを覚えたメンバーもいました。
参加スタッフの反応
「プロペンシティスコアという言葉は知っていたけどこのように計算されているとは知らなかった」「Love plot を自分でコードから生成できるとは思わなかった」などのコメントがありました。プログラミング初心者の方も全員が無事最後まで解析を進めることができました。スライドの講義と実装がつながったことで、論文を読む目線も少し変わったのではないかと思います。
おわりに
今回の勉強会は、「PAN vs 専攻医 術中血圧管理比較」という我々にとって身近なデータを教材に使った実践的な内容でした。解析手法を学ぶだけでなく、自分たちの症例データを可視化することが、スタッフのモチベーション向上にもつながったと感じています。当科では臨床はもちろん研究教育にも力を入れています。今後も定期的に研究の勉強会を企画していきます。