臨床予測モデル(CPM)についての知見を深めていきます。おそらく実際のところ、問題はサンプルサイズ(アウトカム数)が少ないのに、予測因子候補が多すぎることに集約されるのではないでしょうか?とりあえず数字が出るので、何でもかんでもStepwiseに放り込んで、α=0.05をカットオフにして、強引に数個の因子に選抜してAUC0.8だ!みたいな論文がとても多いです。でもoverfitの塊で実用性ゼロ、ということがわかっている人は(査読者ふくめて)かなり少数派なのが現実…

というわけで、解析で少しはマトモなことはできないかな?と困ったときのBMJ様のResearch Methods & Reportingを渉猟し、めぼしいものを読んでみます。Penalised regressionのお話。自分の興味があるところを自分の都合のいいようにまとめている点はご容赦を。

How to develop a more accurate risk prediction model when there are few events

【はじめに】
・少ないイベントで開発されたCPMは、だいたい外的検証でこける
 - 開発集団に含まれたノイズがモデルに反映される
 - Overfittingの問題
 - 予測確率が低い人を過小評価、高い人を過大評価する
 - のでdecision makingに悪影響
・本記事ではridgeとlassoについて解説します
 - TRIPODでも推奨されてるよ

【サンプルサイズの問題】
・経験的に、イベント数/予測因子数(EPV)≥ 10が必要とされる
 - 変数選抜する際は、選抜前の因子数で計算すること
・CPM作るときはまず文献レビューと専門家の意見
 - 普通EPV ≥10はムリ
・なので、単変量解析の一次選抜か、Stepwise選抜が用いられる
 - いずれにしろ、変数選抜が不安定であることが大問題
 - ちょっとデータがかわっただけで選抜される変数がかわる

【Shrinkage methods】
・通常の回帰では係数に制限はない
 - ので、イベント少ないと回帰係数の幅が大きくなる
 -  結果としてoverfittingをもたらす
・Shrinkage methodsはoverfitingの問題を緩和する可能性がある
 - 回帰係数を0に向かって縮小する
・一番シンプルなのは、標準回帰で推定後に共通の値で縮小する
 - 例えば20%(bootstrappingで決めれる)
 - でもEPVが小さすぎるとうまくいかない
 - ので本記事ではこれ以上触れません

【Penalised regression】
・Penalised regressionはEPV < 10でも効果的
・Penalised regressionは以下の手順を行う
 - まずモデルを決める(logistic、Cox回帰など)
 - データから回帰係数を算出する
 - その際に回帰係数に制限を設ける
・Penalised regressionにはいくつかの方法がある
 - 本記事ではridgeとlassoを紹介する
 - どちらもRやSPSSで使える(STATAは!?)

<Ridge regression>
・回帰係数の二乗和が閾値を超えないという制限を設ける
・閾値はcross valodationで算出する
 - データセットをk群に分割する
 - (k-1)群でモデルを開発し、除外した1群で検証する
 - 除外群を毎回かえて、k回試行する
・通常lassoよりこっち
<Lasso regression>
・回帰係数の絶対値の和が閾値を超えないという制限を設ける
・Ridgeと異なり、最終モデルから効果的に予測変数を除外できる
 - 一部の回帰係数を0にして除外?
 - より単純なモデルにしたければ、ridgeよりこっち

【実例紹介】
・機械弁患者3118人を対象に、弁の故障をイベントとした予測モデル
 - イベント56でリスク因子10(EPV5.6 < 10)
 - ロジスティック回帰、ridge、lassoの回帰係数と較正能を比較
 - Backwards stepwise (BS: α<0.15)も含めた4方法の性能を内的検証で比較
・ridge > lassoで回帰係数が縮小された
 - とくに高リスク者の予測確率が小さくなった
・各モデルのcalibration slopeは以下で、ridgeとlassoが優秀
 - ロジスティック回帰 0.76 (0.65, 0.99)
 - ridge  1.01
 - lasso 0.94
 - BS 0.77
・各モデルのAUCはだいたい同じ
 - 3モデルのAUCはすべて0.80 (0.78, 0.82)、BSも0.795

【まとめ】
・イベント数が少ない場合は、通常の単変量での選抜やStepwiseは避けるべき
 - 低リスク群と高リスク群を誇張する
 - のでpenalised regressionを使用すべき
・既存エビデンスが利用できるなら、penalised regressionよりいいかも
・極端に発生が少ない予測因子があるなら、penalised regressionも不適当かも
 
【コメント】
うーん単変量&BS選抜した予測モデル投稿してます…かなり丁寧に作ったので、既存モデルよりは優れている自信があります。が、低リスクと高リスクを効果的に識別できる!というよくばり結論はアウトに近い…まー兎に角外的検証の結果次第ですが。外的検証→性能もひとつなら前向き作り直し→更に外的検証、という一連の流れをやらないと無責任なんですね…どんだけ大変なん…脊椎領域でそれやってるの1つもみたことない…

あと私の愛用するSTATA15ではlasso&ridgeはできない(STATA16から搭載)模様。研究費獲ったらそれでup gradeするというケチ根性で、とりあえずpackageで対応できないか探してみます。結局lassoなら変数選抜できるってことか。この記事ではわからなかったので、更に勉強しなければ…普通に臨床しながらやることじゃ〇△✕