Keele大学の予測モデルの講義で学んだこと、その5です。あと6講義もあるのか…本日は手術日ですが手術が入らなかったので、救急対応がなければ割と時間とれます。明日までの課題はいくつかありますが、自分を追い込むためにもまず講義の復習。ハンドアウトみるだけより直接講義聴き直した方が勉強になるので、オンデマンド配信の間にしっかり聴き直して復習しておかないと。あくまで自分用なので、新しく学んだことや、復習になったことだけかいつまんで記載する点(とあやしい点も)ご容赦くださいませ。次は内的検証とshrinkage。
<まずはじめに>
・開発したモデルは手元にあるdataにoverfitしている(optimistic)
- とくにstepwise selectionすれば(単変量事前選抜はもっとやばい)
- ので、他のセッティングでは使えない
・平均への回帰を目指す
- 予測のshrinkageもしくpenalization
・内的検証はabsolutely essential
- ちゃんとしてるのは稀だけど…
<内的検証>
・Split sample validation
- データをtrainingとtestingに分ける
- ランダムに、時点の前後で、地理的に…
- データ=精度なので、よほど十分なdata(EPV >100)がない限り非推奨
- いいvalidationを得るために恣意的にsplitできるし…
- かわりにre-sampling methodsを
・k-fold Cross-varidation
- 開発は全てのdataを使って行う
- データを例えば10に区切り、9で開発1で検証、を繰り返す
- 得られた性能の平均が、開発したモデルの外的性能の目安に
- 10-foldがよい模様
・Bootstrapping
- Cross-varidationもいいけど、もうちょっとよい
- dataからリサンプリングして同サイズのdataを作成する
- 具体的なやり方は昔の記事ご参照
- 回数は例えば1000回 *点推定値で200、信頼区間で1000回と耳にしたことあり
- 興味のある全ての性能尺度に対し行う
- dataが大きければoptimismは小さい
・Bootstrappingでmodel instabilityがわかる
- 構成する因子や非線形のモデリングの妥当さ
・多重補完とBootstrappingを組み合わせる場合
- dataに多重補完してからBootstrapping
- Bootstrappingしてから、各BSに多重補完
- 後者がよさそうだが、結論はまだ出ていないので、現状以下を提案
① まずbootstrappingでBSを抽出
② 各BSに多重補完してモデル開発(因子選択するならそれも含めて)、
結果を統合し1つのBMを完成し、BPを算出
③ BMを多重補完したOSに適応し、結果を統合しTPを算出
④ BP - TP = Optimism
⑤ ①ー④を繰り返して④の要約値を算出
<モデルのOptimism調整>
・算出したOptimismを用いてUniform shrinkage(re-calibration)を行う
- 開発したモデルの回帰係数に均一のshrinkage factor (S)をかける
- S = optimism-adjusted calibration slope *Sは1未満になるので、shrinkage
- 切片 α も再計算される(CITLも改善される)
・Heuristic shrinkage factor = (model χ^2 - df) / model χ^2 を用いる方法も
・Optimismを調整したmodelがfinal model
【コメント】
講義5つ目はやっとある程度知識があったのでそう苦労せず聴くことができました。Optimismの話は点推定値だけで、信頼区間までは踏み込んでなかったのは意外。Uniform shrinkageを使ったre-calibrationには感動しました。あと相当面倒だけど、多重補完×Bootstrappingもやらなきゃいけないんですね…以前私がやった「因子選択→モデル開発→スコアリングシステム開発」のように複雑なアルゴリズムだと全く対応できない涙。スコアリングシステムを作る場合は、兎に角いいスコアリングシステム作りたい!という願いからは迂回してしまいますが、まずはベースとなる予測モデルをしっかり作り込んで、そこからオマケ程度にスコアリングシステムに落とし込むようにしないと、最新の手法は使えないようです。でも、それよりなにより材料となるdataがちゃんとしてないと、どれだけいい解析しても無駄です。解析を勉強すればするほど、dataの質の重要さが身に染みてきました。ソコは臨床研究で一番無視されている気がする…にしても、自腹で8万で英語の講義聴いて必死で復習するって、なんでこんなことになってしまったのか自分でも意味不明…
<まずはじめに>
・開発したモデルは手元にあるdataにoverfitしている(optimistic)
- とくにstepwise selectionすれば(単変量事前選抜はもっとやばい)
- ので、他のセッティングでは使えない
・平均への回帰を目指す
- 予測のshrinkageもしくpenalization
・内的検証はabsolutely essential
- ちゃんとしてるのは稀だけど…
<内的検証>
・Split sample validation
- データをtrainingとtestingに分ける
- ランダムに、時点の前後で、地理的に…
- データ=精度なので、よほど十分なdata(EPV >100)がない限り非推奨
- いいvalidationを得るために恣意的にsplitできるし…
- かわりにre-sampling methodsを
・k-fold Cross-varidation
- 開発は全てのdataを使って行う
- データを例えば10に区切り、9で開発1で検証、を繰り返す
- 得られた性能の平均が、開発したモデルの外的性能の目安に
- 10-foldがよい模様
・Bootstrapping
- Cross-varidationもいいけど、もうちょっとよい
- dataからリサンプリングして同サイズのdataを作成する
- 具体的なやり方は昔の記事ご参照
- 回数は例えば1000回 *点推定値で200、信頼区間で1000回と耳にしたことあり
- 興味のある全ての性能尺度に対し行う
- dataが大きければoptimismは小さい
・Bootstrappingでmodel instabilityがわかる
- 構成する因子や非線形のモデリングの妥当さ
・多重補完とBootstrappingを組み合わせる場合
- dataに多重補完してからBootstrapping
- Bootstrappingしてから、各BSに多重補完
- 後者がよさそうだが、結論はまだ出ていないので、現状以下を提案
① まずbootstrappingでBSを抽出
② 各BSに多重補完してモデル開発(因子選択するならそれも含めて)、
結果を統合し1つのBMを完成し、BPを算出
③ BMを多重補完したOSに適応し、結果を統合しTPを算出
④ BP - TP = Optimism
⑤ ①ー④を繰り返して④の要約値を算出
<モデルのOptimism調整>
・算出したOptimismを用いてUniform shrinkage(re-calibration)を行う
- 開発したモデルの回帰係数に均一のshrinkage factor (S)をかける
- S = optimism-adjusted calibration slope *Sは1未満になるので、shrinkage
- 切片 α も再計算される(CITLも改善される)
・Heuristic shrinkage factor = (model χ^2 - df) / model χ^2 を用いる方法も
・Optimismを調整したmodelがfinal model
【コメント】
講義5つ目はやっとある程度知識があったのでそう苦労せず聴くことができました。Optimismの話は点推定値だけで、信頼区間までは踏み込んでなかったのは意外。Uniform shrinkageを使ったre-calibrationには感動しました。あと相当面倒だけど、多重補完×Bootstrappingもやらなきゃいけないんですね…以前私がやった「因子選択→モデル開発→スコアリングシステム開発」のように複雑なアルゴリズムだと全く対応できない涙。スコアリングシステムを作る場合は、兎に角いいスコアリングシステム作りたい!という願いからは迂回してしまいますが、まずはベースとなる予測モデルをしっかり作り込んで、そこからオマケ程度にスコアリングシステムに落とし込むようにしないと、最新の手法は使えないようです。でも、それよりなにより材料となるdataがちゃんとしてないと、どれだけいい解析しても無駄です。解析を勉強すればするほど、dataの質の重要さが身に染みてきました。ソコは臨床研究で一番無視されている気がする…にしても、自腹で8万で英語の講義聴いて必死で復習するって、なんでこんなことになってしまったのか自分でも意味不明…