多重共線性

pirika.comで化学
>チャピエモン-3rd Pirika Origin (CPO)
> ハンセン溶解度パラメータ (HSP)
> 化学全般
>
情報化学  >物性化学 >高分子化学 >化学工学 >その他の化学 >昔のもの
>情報化学ツール >MAGICIAN養成講座 >STEAM
>Pirika ツール群
ブログ
業務案内
お問い合わせ

情報化学 > 情報化学ツール > 重回帰法 > 多重共線性

[1.概要]

機械学習の基本、重回帰法を使う時最も注意しなければならないのは多重共線性の問題だ。大学入試の情報でも扱う。簡単には説明変数間に相関がある時には重回帰は使えないということだ。ブログ:「科捜研の女」榊まりこさんにAI機械学習を相談した。これをこちらに移植

[1. 重回帰法]

CasePriceOrangeAppleBanana
1300220
2180301
3360412
表1果物組み合わせの値段。2列目は値段、3列目はミカン、4列目はりんご、5列目はバナナの個数

果物の詰め合わせが売っている。この連立方程式を解いて、各果物の値段を求めてください。小学生でも筆算で解ける子はいるだろう。
これは、機械学習の一番シンプルな例題だが、とても誤解を生む。
解いた答えが各果物の値段なので、重回帰法の答えは(多少の誤差はあるとしても)一つに求まると勘違いしてしまう。

そして、値段(係数)の大きい果物(成分)を増やせば、トータルの値段(例えば薬の活性)は高くなると勘違いしてしまう。

次の場合はどうだろうか?
バーガーが4種類、ポテトが4種類、飲み物が5種類あって、各グループの中から1つを選んでセットを作る。その3つの値段がpriceになる。各バーガーとポテト、ドリンクの値段を重回帰法で求めよ。

NoPriceBurger1Burger2Burger3Burger4Potato1Potato2Potato3Potato4Drink1Drink2Drink3Drink4Drink5
1145 0001001000001
2165 0100001000001
3111 0001010000001
4130 0100010000001
577 1000010000001
6114 0100010000010
760 1000010000010
8132 0100100000010
9175 0100000101000
10121 1000000101000
11111 0001001001000
1295 0010001001000
13130 0100001001000
1477 1000001001000
1577 0001010001000
1660 0010010001000
1796 0100010001000
1895 0001100001000
19114 0100100001000
2060 1000100001000
21132 0100010010000
22150 0100100010000
23199 0100001000100
24145 1000001000100
25165 0100010000100
26111 1000010000100
27183 0100100000100
表2 2列目組み合わせの値段、バーガーが4種類、ポテトが4種類、飲み物が5種類

変数が13個で式が27個あるので、連立方程式を解けばよい。Excelにデータをコピーして、分析(必要に応じてAdd-inをインストールしなければならないが)回帰計算を行えば良い。

図1Excelの分析ツールを用いた重回帰計算

重相関係数 R=1で、各値段がわかる。

Burger1Burger2Burger3Burger4Potato1Potato2Potato3Potato4Drink1Drink2Drink3Drink4Drink5
-17.99 35.98 0.00 16.45 -60.91 -78.90 -44.45 0.00 174.95 138.97 207.86 156.96 173.41 
表3 Excelで求めた各々の値段

値段が0円とかマイナスのものが現れてしまう。
しかし、16.45*burger4 + -44.45*Potate3 + 173.41*Drink5 =145になるので式はどれも正しい。ものの値段なので0円とかマイナスは困るので、係数を0以上という制限をつけて計算してみる。(手頃なソフトが見つからなかったので、自作のソフトで探索した。)係数は次のように求まる。

Burger1Burger2Burger3Burger4Potato1Potato2Potato3Potato4Drink1Drink2Drink3Drink4Drink5
20.71 74.71 38.76 55.68 32.72 14.72 48.72 93.69 42.57 6.60 75.57 24.57 40.60 
表4 自作ソフトで求めた各々の値段

この2種類の係数をプロットしてみると全く異なる系列であることがわかる。ExcelではDrink類が高価だったが、自作ソフトではそうでもない。
同じバーガーだけで見ても、値段はExcelでは4>3>1>2であるが、自作のソフトでは、2>4>3>1になる。
つまり、解の精度がほぼ同じような係数の組みは幾つでも見つかることになる。

[3. 多重共線性]

この重回帰法の問題点を見ると、統計をよく知っている人は、多重共線性の問題があるのではないかと言う。

表5 Excel 分析ツール 相関行列

多重共線性とは相関行列を計算し、説明変数間(バーガー、ポテト、飲み物)に0.9程度の相関がある場合に起こると言われている。しかしこの例では大きな相関係数を持つ列はない。

[4. 物性推算式の構築]

実を明かせば、このテーブルはハロゲン置換のプロピレンタイプの化合物を表している。値段は分子量(MW:Molecular weight)だ。

MWCH3CF3CH2FCH2ClCF=CH=CCl=CBr=CF2=CH2=CCl2=CHF=CHCl=
PriceBurger1Burger2Burger3Burger4Potato1Potato2Potato3Potato4Drink1Drink2Drink3Drink4Drink5
表6 原子団寄与法による分子量計算。重回帰係数が不定

CX3とCX=と=CX2の組み合わせで分子量は一つに決まる。
当たり前の事だが、CH3, CF3, CH2F・・・・・の分子量は1つに決まっている。ところがこの場合重回帰法では原子団の分子量を定める事ができない。

単品値段(係数)の大きい果物、バーガ成分(成分)を増やせば、トータルの値段(例えば薬の活性)は高くなる。
これが成り立たない事がある。つまり逆設計には使えない。

多重共線性を見てもわからない。
リッジ回帰でもLASSO回帰でも、主成分分析(PCA)でもPLSでもなんでも良い。
情報化学の総力を上げて、一番悪さをするやつから最低限、序列ぐらいは正しくなる係数を求める方法を教えてほしい。
また、多重共線性のように、「説明変数間に0.9以上の相関がある場合には気をつけな」というようなガイディング・プリンシプルが欲しい。

係数の値が不定になるのかは、小学生と同じように変数消去してみればわかる。
CF3-CH3=54
CF3-CH2F=36
CF3-CH2Cl=19.5
CF3がどんな値を取ろうとも、それに合わせたCH3, CH2F, CH2Clが決まるのでグループ内では不定になる。

大学での研究のように対象が限定されず幅広い時にはこの問題が出てくることは少ないが、系を絞って最後のスクリーニングのような企業の研究では思わぬ落とし穴になりうる。

[5. Pirika内リンク]

ブログ:「科捜研の女」榊まりこさんにAI機械学習を相談した。からの移植


Copyright pirika.com since 1999-
Mail: yamahiroXpirika.com (Xを@に置き換えてください)
メールの件名は[pirika]で始めてください