過学習回避!多変量解析の変数選択術【ChatGPT統計解析】

過学習回避!多変量解析の変数選択術【ChatGPT統計解析】 | 統計解析 - ChatGPT・Python・エクセルを使った講義で最速マスター

セミナー詳細                    解析ご相談                    LINEでお友達

過学習回避!多変量解析の変数選択術【ChatGPT統計解析】

過学習回避!多変量解析の変数選択術【ChatGPT統計解析】
多変量解析において、説明変数が増加するとモデルは過学習のリスクに直面し、これを避けるために変数選択が重要となる。変数選択の手法には大きく二つのアプローチがある。一つ目は、偏回帰係数の統計的検定を使用し、有意でない変数をモデルから除外する方法である。二つ目は、自由度調整済み決定係数、AIC(赤池情報量規準)、CPなどのモデル選択基準を利用して、モデルの良さを判断する方法である。これらの規準は、モデルの複雑さを考慮しつつ、予測精度や適合度を評価する。変数選択法は、過学習を避け、予測精度の高いモデルを構築するために不可欠である。


 

説明変数が増えると過学習に陥りやすい

 

説明変数の選択は、多変量解析における重要な問題の一つです。

 

その変数が目的変数の変動をよく説明するのかが、推定以前にはっきりとわかっていない場合は、いくつかの説明変数の候補から最良と思われる組み合わせを選んで、最終的に1つの回帰式を得ます。

 

重回帰モデルでは、説明変数が増えれば増えるほど当てはまりは良くなります(決定係数の値が1に近づきます)が過学習に陥りやすくなります。余分な説明変数は推定精度や予測精度を落としてしまう原因になります

 

偏回帰係数の検定による変数選択

 

変数選択の方法の一つは、>偏回帰係数に関するt検定の結果を利用するものです。

 

例として、galaデータセット(ガラパゴス島の動物種のダイバーシティのデータ)を使います。

 

過学習回避!多変量解析の変数選択術【ChatGPT統計解析】

 

回帰診断で得られた結果をもとに、目的変数Speciesは平方根をとり、Isabelaを外れ値として取り除いておきます。

 

最小2乗推定量とt検定の結果、最も有意性が低い変数はt検定の結果Nearestで、Nearestの回帰係数を0と判定します。

 

残りの4つの変数を用いて重回帰モデルを再度あてはめます。

 

同様にここではScruzの回帰係数を0と判定します。

 

残りの3つの変数について重回帰モデルを当てはめます。

 

残りの3つの変数はいずれもt-検定の結果が有意となったので、これ以上は取り除きません。

 

すなわち、Area、Elevation、Adjacentの3変数モデルが選択され、

 

√Species=3.56+0.008×Area+0.011×Elevation−0.0031×Adjacent

 

という重回帰モデルが得られました。

 

この例のように、候補となるすべての変数を含む重回帰モデル(フルモデル)から出発し、偏回帰係数に関するt検定の結果から有意性が低い変数を順次取り除く方法を、変数減少法(後退消去)といいます。

 

逆に、定数項だけのモデルに、変数をひとつ加えたときの偏回帰係数のt検定の有意性が最も高くなるものを順次加えていく方法は、変数増加法(前進選択)とよばれます。

 

また、変数減少法で一度取り除いた変数を再度モデルに含めることまで検討する変数減増法や、逆に一度モデルに取り込んだ変数を再度取り除くことを検討する変数増減法など、さまざまなバリエーションがあり、これらをまとめて逐次選択法とよびます。

 

いずれの方法でも、基準となるp値の境界は5%である必要はなく、15%から20%程度に設定するのが適当です。

 

 

選択規準を用いた変数選択

 

変数選択のもう一つの方法は、モデルの良さをはかる規準を用いる方法です。代表的な選択規準には、自由度調整済み決定係数、赤池情報量規準(AIC)、CPなどがあります。

 

自由度調整済み決定係数は、決定係数R2=1−Se/St を自由度で調整したもので、

 

R2=1−((Se/(n−p−1))/(St/(n−1))

 

と定義されます。

 

ここで、nはサンプル数、pは説明変数の数、Seは残差平方和、Stは全平方和です。

 

AICは、誤差の正規性の仮定のもとで、AIC=nlog(Se/n)+2(p+1)と定義されます。

 

右辺第1項はモデルの最大対数尤度の−2倍であり、モデルの適合度を表します。

 

第2項は母数の増加に対する罰則を表します。

 

AICの小さいモデルほど望ましいモデルです。

 

CPは、CP=Se/s2+2(p+1)−n と定義されます。

 

ただし、s2は、候補であるすべての説明変数を含むモデル(フルモデル)の誤差分散の不偏推定量であり、フルモデルの残差平方和をSe、説明変数の数をpとすると、
この推定量は、s2=Se/(n−p−1)となります。

 

AICと同じく、第1項がモデルの適合度を、第2項が罰則を表します。

 

CPが小さいモデルほど望ましいモデルです。

 

可能であればすべてのモデル(説明変数の候補がp個であれば2のp乗通り)に関して、それが無理であれば逐次選択法によって、それぞれの規準を最適にするモデルを選択します。

 

Galaデータセットでは、説明変数の候補は5個ですから、2の5乗で32通りのすべてのモデルについて選択規準の値を計算することができます

 

計算の結果、Ra2、AIC、CPのいずれの規準においても、t-検定と同じ、Area、Elevation、Adjacentの3変数モデルが選択されました。

 

ChatGPTに聞いてみた

プロンプト

あなたは最高のデータサイエンティストです。
多変量解析における変数選択について解説してください。
#制約条件:
サルでもわかる平易な日本語で
文字数は300字程度

ChatGPTの回答

多変量解析って、いっぱいデータを使って、何かを予測したり分析したりする手法のことだよ。でも、データが多すぎると、予測するモデルが「過学習」という状態になってしまって、新しいデータに対してうまくいかなくなるんだ。だから、大事なのは「変数選択」。これは、本当に必要なデータだけを選んで、モデルを作ること。方法は二つあって、一つ目は「これは大事!これはいらない!」とデータを選ぶやり方。二つ目は、特別な計算方法を使って、「この組み合わせが最高!」っていうのを見つけるやり方だよ。どちらも目的は同じ、予測力の高いシンプルなモデルを作ること。これができれば、予測もバッチリ、過学習も防げるってわけ!

 

 

過学習回避!多変量解析の変数選択術【ChatGPT統計解析】


セミナー詳細                    解析ご相談                    LINEでお友達

過学習回避!多変量解析の変数選択術【ChatGPT統計解析】

過学習回避!多変量解析の変数選択術【ChatGPT統計解析】