« 読了:Kuhn (2008) R の caret パッケージ | メイン | 読了:Abalo, Varela, Manzano (2007) 属性の重要性ランキングで重要性を測りましょー »
2015年5月 7日 (木)
Gromping, U. (2009) Variable importance assessment in regression: Linear regression versus random forest. The American Statistician, 63(4), 308-318.
「重要性についての論文をしみじみ読む会」、本年度第3弾(おいおい... 予定ではとっくに第50弾のはずだったのに)。回帰における重要性と、ランダム・フォレスト(RF)における重要性を比較する。
1. イントロ。先行研究:
- 回帰において、説明変数に重要性を与えるというアイデア自体に対する批判: Ehrenberg(1990 AS) [←一橋大の暗い書庫でこのごく短いコメントに出会ったのが、重要性の問題に関心を持ったきっかけであった...思えば長い時間が経ってしまった]; Christensen(1992 AS); Stufken(1992 AS)
- Gromping(2007 AS): 線形回帰における分散分解ベースの重要性についてレビュー
- Chevan & Sutherland (1991 AS): 階層パーティショニング
- Theil & Chung (1988 AS): 情報量ベースのアプローチ
さて、ご存じのように最近ではRFが広く使われている。RFベースの重要性については:
- van der Laan (2006 Int.J.Biostat.): 因果的効果に基づく重要性概念[←ぎゃー、これ読まなきゃ]
- Ishwaran(2007 ElectronicJ.Stat.): MSEの縮減を、BreimanらのCARTのRFにおいて理論的に扱う。ちょっと修正すると閉形式で解ける、云々[←えええ?]
- Strobl et al.(2007 BMC Bioinfo.): 説明変数が無相関のとき、RF-CARTの変数重要性が不偏でないことを示し、代替案を提出
- Strobl et al.(2008 BMC Bioinfo.): 説明変数が無相関でないとき、上記の代替案がうまくいかないことを示し、「条件つき重要性」を提案[←たぶんこれのことだろう]
なお、RFは分類や生存モデルにも使えるけど、以下では回帰の文脈に絞る。またデータサイズが変数の数よりも十分大きい状況に絞る(そうしないと回帰と比較できないから)。
2.データセット説明。swiss fertility データ。Rについているswissというデータセットの元になったデータだそうである。
3.線形回帰と重要性。説明変数が無相関でない限り、R二乗を説明変数に分配しようとすると、説明変数の投入の順序によって変わってしまう。そこで...
- Lindeman, Meranda, & Gold (1980 書籍), Kruskal(1987 AS): 変数の数を$p$として、$p!$通りの順序すべてについてR二乗を分配し平均。以下LMGと呼ぶ。Budescuのdominance analysisも、Lipovetsky & Conklin のシャープリー値も、みんなこれと同じだ。[←そ、そうなんですか? ちょっとは違うじゃない? うーん、でも他ならぬGrompingさんの仰ることだからなあ...]
- Feldman(2005)のPMVD。[←数年前にFeldmanさんにお問い合わせしたことがあるのだが、査読論文にはしてない由であった]
というわけで、以下ではLMGとPMVDを比較する。
4.回帰のためのRF。まず回帰木について。ここでは二分木についてのみ扱う。アルゴリズムとして、
- BreimanらのCART。ノード中心からの偏差平方和が最小化されるように大きく育ててから枝を刈る。変数の型とかカテゴリ数とかでバイアスがかかっちゃう。
- Hothorn, Hornik, & Zeileis (2006 J.Comp.GraphicalStat.) のmultiplicity-adjusted conditional tests。各ノードについてまず育てていいかどうかの大域的検定をやって、それにパスしたらはじめて変数選択する。
でもって、RFについて。
- 一番有名なのはBreimanによるCARTのRF化(以下RF-CART)。RだとrandomForestパッケージ。
- Hothornらのconditional treeのRF化もある(Strobl et al., 2007 BMC Bioinfo., 以下RF-CI)。Rだとpartyパッケージのcforest関数。
ふつうはRF-CIのほうが個々の木が小さくなるんだけど、まあパラメータ次第である。
さて、重要性をどうやって測るか。まず、分類木ならばジニ係数、回帰木ならこれに類したaverge impurity reductionという手がある[←式が書いてないよ... どこかで読んだような気もするけど]。でもこれはバイアスがかかる。で、ある変数をpermuteしたときのMSE減少を使おうという路線が出てくる。これはもともとBreimanが出したアイデアで[←へー]、彼は結局使わなかったけど、現在ではこれが主流になっている。えーと、それぞれの木$t$について下式のOOB MSEを求め
$OOBMSE_t = \frac{1}{n_{OOB, t}} \sum_{i \in OOB_t}^n (y_i - \hat{y}_{i,t})^2$
$X_j$をpermuteしたときの上式の値との差を求めて、木を通じて平均する。単に$X_j$を用いたときのMSEと用いなかった時のMSEの差ではないことに注意。また、R二乗を分解してるわけじゃない点に注意。
5.swiss fertilityデータにすべての指標を適応。説明変数は5個。線形モデル(二次効果をふたついれる)のPMVDとLMG, {RF-CART, RF-CI}x{mtryを1,2}の4通り、計7通りについて重要性を求めた。mtryってのは枝分割のためにランダムに選ぶ候補変数の数のことね。
結果。LMGとPMVDはだいたい同じ。一か所、すごく違うところがあるんだけど(他と相関が高い変数の重要性)、そこのPMVDの信頼区間はやたらに広い。4種類のRFはLMG-PMVDともお互いとも違っている。RF-CIはmtryに強く影響される[←おー、なるほどー]。
... なんだかんだいっても実データでは何が起きてるかわからんわけで、本命は次節である。
6. シミュレーション。説明変数は4つ。期待値0, 分散1の多変量正規分布に従う。で、2変数$j, k$間の相関を$\rho^{|j-k|}$とし、$\rho$を-0.9から+0.9まで0.1刻みで動かす[←たとえば$\rho=-0.9$ならば、$X_1$と$X_2$の相関は$-0.90$, $X_1$と$X_3$の相関は$+0.81$, $X_1$と$X_4$の相関は$-0.73$ということであろうか。不思議な相関行列だ]。で、目的変数はこいつらの線形和に正規誤差が乗ったものとし、真の係数ベクトルを7つ用意する。たとえば$(4,1,1,0.3)'$とか。$R^2=0.5$となるように正規誤差を乗せる。こうしてサイズ1000のデータをつくり、重要性の算出を100回試行し平均する。手法はさきほどと同じく7通り。
結果。まずLMGは、真の係数が大きい説明変数の重要性が、相関の増大とともに低下する。いっぽうPMVDと相関との関係は複雑で、あんまり変動しないこともあればすごく変動することもある。
RF-CARTはLMGに近い。RF-CIはmtry=1のときはLMGにやや近いが、mtry=2になるとPMVDに接近する。とかなんとか。
RFのmtry依存性について。Breimanはmtryを$\sqrt{p}$にすることを薦めている。しかし回帰木ではもうちょい多めに$p/3$としたほうがよいとも言われておるし、$p$にしちゃえという説もある。本研究によれば、OOB-MSEを最小化するmtryは、モデルと相関構造によって変わるようだ。
重要性の指標もmtry次第で変わる。その事情は部分的には説明できるけど[略]、全容はいまだ不明。RF-CARTの結果がmtryによってあんまり変わらなかったのは木の数が多かったからであろう。云々。まあとにかく、RFベース重要性の挙動にはまだいろいろわからんことが多い。
7.変数重要性という概念について。そもそも変数重要性という概念自体がきちんと定義されていない。これまでの提案はアドホックなもので、重要性指標が目指すべきだとされる特性もいろいろである。たとえば、R二乗を非負に分配すべし、とか。昔は単相関の二乗とか(marginal路線)、標準化回帰係数の二乗とか(conditional路線)が用いられていた。Johnson&Lebreton(2004 ORM)がおおまかに定義した変数重要性概念に沿っているのがLMGとPMVD。LMGはのちにシャープリー値として正当化された。PMVDは開発者Feldmanさんいうところのexclusion特性を持っていて(真の係数が0だったら重要性も0だという特性)、conditional寄りである。
marginal路線とconditional路線はどっちが良いとも決めがたい。たとえば$X_2$→$X_1$→$Y$という因果関係がある場合も、$X_2$←$X_1$→$Y$という因果関係がある場合も、線形モデルで$X_2$の係数は0, つまりconditionalには重要性ゼロである。予測的観点からはそうだろう。ところが説明や因果の観点からは、前者の因果関係における$X_2$の重要性がゼロだということに同意できない人も多かろう。
RFの変数重要性は変数選択に用いられることが多い。変数選択も、説明・因果的観点からなされる場合と予測的観点からなされる場合とがある。説明・因果的観点に立つ人が「$X_2$→$X_1$→$Y$のときに$X_2$を選択したい」というならば、どのみち矢印の向きはデータからはわかんないんだから、$X_2$←$X_1$→$Y$のときに$X_2$を選んじゃうことも覚悟しないといけない。
説明・因果的観点からの変数選択という課題のために生まれたのがelastic netである。強く相関している変数のグループがあったとき、lassoではそのなかの代表選手だけが選ばれるが、elastic netではグループ全体が選ばれる。
話を戻すと、conditional極(LMGはこちら)とmarginal極があるとして、RFはmtryが小さいときにはconditional極の近く、mtryが大きくなるとちょっとmarginal側に動くわけである。Strobl et al.(2008)はconditional極に立って考えているので、RF-CIベースのパーミュテーション重要性を推す。でもmtryがpより小さい限り、重要性は完全にはconditionalにはなれないんですよ? [←なるほどねえ...]
RFとLMG, PMVDはいずれも、Achen(1982)いうところのdisperson重要性であって、反応のdispersionに基いている。説明変数によって引き起こされた分散は係数と説明変数間相関の両方に依存するから、dispersionに基づく重要性指標は説明変数間の相関に依存してしまう。つまり、相関している説明変数の重要性は高くなることを覚悟しないといけない。もしそれが嫌なら、相関の影響を取り除くという長い旅路に出る羽目になる。PMVDのようにデータに依存する込み入ったウェイトを導入するとか、Strobl et al.(2008)のようにconditional permutation という枠組みを導入するとか。あるいは全然異なる基盤を見つけるようとすることになるかもしれない。たとえば線型モデルの標準化係数とか。残念ながら、変数の数がデータサイズより多いときにはそういうのを見つけるのは無理だけどね。云々。
... 最後の考察が大変勉強になった。重要性の話を読んでいて一番イライラするのは、なぜ説明係数の分配というような特徴にこだわり、「こんな因果構造があったらこの重要性指標はこうなる」という話にならないのだろう、という点であった。なぜDAGから出発しないのか、と。その点、この著者の書いていることはいちいち腑に落ちる。
テクニカルな教訓としては、RFの重要性指標がなかなか安定しないという点。木の数が十分かどうか、気をつけないといけない。cforestの重要性がmtryにすごく影響されちゃうという点も全然気がつかなかった。
論文:データ解析(2015-) - 読了:Gromping (2009) 変数の重要性の評価: 線形回帰 vs. ランダム・フォレスト