勉強の記録

機械学習、情報処理について勉強した事柄など

多変量解析における説明変数の選び方(私見)

多変量解析における説明変数(特徴量,共変量などとも)の選び方についての私見.統計の専門家でもないし,機械学習の専門家でもないが,ざっと勉強したところをまとめる.(統計)のところは,いわゆる統計的機械学習ではなく基礎的な統計を想定.cross validationはせず,データすべてを主に重回帰(回帰問題)or ロジスティック回帰(分類問題)によるモデルに投入するようなアプローチ.(機械学習)のところは,モデルはMLPでもXGBoostでも何でも良いが,画像や自然言語系ではなく各説明変数が特徴量として入力できるような状況を想定している.

ここは違うぞ,などあればぜひぜひコメントをください. 投稿から時間が経っていても構いません.

tl;dr

・予測したいとき: overfitしにくい数まで絞り込むための機械的変数選択はNG.モデルの性能が過大評価される. leakageにも注意.

・特定の説明変数が有効か知りたいとき: 因果ダイアグラムを描いて,投入すべき説明変数を吟味する. 目的とした係数のp値が小さくなるような,操作的変数選択は絶対NG.

・どの説明変数が有効か知りたいとき: どうしても探索的にならざるを得ず,再現性が微妙. test setを分けるか,追試により検証する.

なんのためにモデルを組むか.

1. 予測がしたい

なにかターゲットとなる値(目的変数)があって,それが予測できれば良いという場合.つまり,予測モデルを組むとき.

【統計】モデル評価としてはresidual devianceやAICなどをみる.投入できる変数の数としてはサンプルサイズに対して経験的な数がわかっており,その程度に収める.既知の予測因子を許される数だけ入れる,というのが基本(研究計画から立てるなら,本来は投入したい因子の数が先にあって,それを満たすだけサンプルを集めるというアプローチが王道).外部データで検証しないのでoverfitに弱い.多数の説明変数を用意してステップワイズ法などの機械的な変数選択を行なうと,過大評価された説明変数が選択され,モデルの予測性能が過大評価される.ステップワイズ法が悪とされるのはここ. 予測のみに興味があって各変量の係数には全く興味がない場合,多重共線性は気にする必要がない.ただし,単純に予測だけできれば良いという局面はあまりなく,各係数にも興味がある場合が多いのでその場合は多重共線性があると該当変数の係数同士が不安定になる.該当変数同士以外の係数にはあまり影響ないので,それが許容されるならok.

※投入できる説明変数の数については諸説あるようだが,例えば以下に一覧となっている.

医学書院/週刊医学界新聞(第2933号 2011年06月20日)

機械学習機械学習の主戦場.最終的にtest setを用いて外的妥当性を確保するため,特に制限はない.モデルとしてロジスティック回帰モデルや線形回帰モデルを用いても良いし,ステップワイズ法を用いても良い.ただ,その場合は投入する変数の数をハイパーパラメータなどとして最適化することが必要.GBDTなど決定木系はモデルの内部で変数選択がなされている.交互作用項などについても,特徴量(説明変数)を創ってみて,dev setなどで予測性能が上がるかを評価して入れる入れないを判断すれば良い.このあたりはむしろ特徴量エンジニアリングとしてどのように特徴量を創ってモデルに投入すべきかという文脈で語られることが多い.変数選択を行なう目的としては①計算資源の問題,②関係ない特徴量を入れることによる汎化性能の悪化,あたりか.機械学習領域の変数選択ガイドラインとしては[Guyon+ 2003]が有名.

読書日記: 読了:Guyon & Elisseeff (2003) 変数選択入門

【共通】どの時点で予測したいのか.予測したい時点で判明している変数のみをモデルに含める.結果変数を予測にいれてしまってないか(=leakage)に注意. 有効な予測因子についての事前知識があれば,それをモデルに組み込むべきというのは両者共通.

2. 説明したい

どちらかというと統計の場面ではこちらのケースが多い.機械学習でもモデルの説明可能性や解釈性が求められるようになってきた.

2-1. ある個別の説明変数が,関連しているか知りたい.

関連の有無を知りたいときも,因果関係を推論したいときも含める.なお,直接効果を見たいのか,間接効果を見たいのか.例えば塩分摂取量と心筋梗塞リスクを知りたいときに,高血圧のような媒介因子を調整するか否かで大きく意味が変わってくる.

【統計】各変数の係数を見れば良い.多重共線性があるとその変数間での係数が不安定になるため目的の変数と強く相関する説明変数は省く.変数選択については上記のように何をみたいか,何を調整したいかで変わってくる.そのためには因果ダイアグラムを描いてみるのが良い.

『バックドア基準の入門』@統数研研究集会

相関と因果について考える:統計的因果推論、その(不)可能性の中心

私見だが,上記の因果ダイアグラムに則った変数選択の後で行われる場合,「対象としている変数についてのp値が一番低くなるような説明変数のサブセットを選ぶ」ということさえしなければ,機械的な変数選択も別に構わないのではないかと思っている.

なお,調整したい交絡因子があるが,測定できていない・データがないというときはどうするか?その場合は,感度解析を行なう.そうでなくとも,見逃している交絡因子がないか確認する意味で有用.

観察データを用いた因果推論で生じるバイアスの程度を考える:感度分析(Sensitivity analysis) & "E-value"入門 - Unboundedly

機械学習】発展途上.random forestなどのfeature importanceやSHAP valueをみる,など.permutation importanceなども.Uplift modelingというのも一つのキーワードか.ただ,重回帰やロジスティック回帰と比べると,個々の変数がどうモデルのアウトプットに影響しているかを可視化するのは難しい.

2-2. 何が重要な説明変数かしりたい

いわゆる探索的研究である.事前研究がなく,何が関連しているか・因果関係があるかさっぱり分からないとき.

【統計】科学的知識,背景知識からなんとか因果ダイアグラムを描くが,説明変数の候補が増えてしまいがち.どうしようもないので,相関の強い説明変数は一方を省いたり,ある程度機械的な変数選択に頼る.FDRなどの多重検定の補正を行なったとしても再現性は低く,このような解析から「××には,●●が関連していた」と主張する論文は,test setを分けるか上記2-1.のような追試で検証される必要がある.

Bonferroni法、Holm法、False Discovery Rate | 大阪大学腎臓内科

機械学習機械学習タスクとして設定されることは少ないかもしれない.二段目のモデルに投入すべき特徴量を選択する一段目の解析として実施されることはありうる.logistic regressionのp値で評価しても良いし,2.1同様にrandom forestなどのfeature importanceやSHAP value,permutation importanceなどをみても良い.cross validationでそれらの値のばらつきを見る.

まとめ

ざっと,現時点での自分の理解をまとめてみた.

ここはおかしい・間違っているなどあれば,ぜひご指摘ください.

参考ページ

www.slideshare.net

www.igaku-shoin.co.jp

www.igaku-shoin.co.jp

参考書籍