初めに
非線形相関分析というのはとても難しい問題です。
何故なら多くのパターンがあり、それを見分けなくてはならないからです。
タイトルでは"万能か?"と書きましたが実際に万能な非線形相関分析は現在存在しない(存在していたら研究が終わっている)ため、MICがどこまで使用可能かを検証したいと思います。
test
線形(正規分布ノイズ)
まず、線形が出来ないと話になりません、そこで線形を検証したいと思います。
サンプル数は1000個です
0<=x<=100\\
サンプル数は1000個\\
y=2*x+1+N(0,10)
これはどちらも問題無いようです。
結果
MIC:0.96635278923073
相関係数:0.9849755611746215
線形(対数正規分布ノイズ)
では対数正規分布の時はどうか?
0<=x<=100\\
サンプル数は1000個\\
y=2*x+1+lognormal(1,2)
MIC:0.9055543552706471
相関係数:0.7196100545913859
指数関数(正規分布ノイズ)
0<=x<=100\\
サンプル数は1000個\\
y=\exp(x)+N(0,10)
結果
MIC:1.0000000000000002
相関係数:0.24246752108964334
やはり、相関係数は非線形では使用出来ないようです。
sin波(正規分布ノイズ)
0<=x<=100\\
サンプル数は1000個\\
y=\sin(x)+N(0,0.3)
結果
MIC:0.7474931153267849
相関係数:-0.045197656184598076
MICは、sin関数は得意ではないようです
sin波(分散の大きい正規分布ノイズ)
0<=x<=100\\
サンプル数は1000個\\
y=\sin(x)+N(0,1)
結果
MIC:0.29054446304410836
相関係数:-0.05035333156386222
上手くいきませんでした。
tanh関数(正規分布ノイズ)
0<=x<=100\\
サンプル数は1000個\\
y=\tan(x)+N(0,1)
グラフを誤って上書きしてしまいました
結果
MIC:0.4646033589341278
相関係数:0.026627230647174878
シグモイド関数(正規分布ノイズ)
-10<=x<=10\\
サンプル数は1000個\\
y=1/(1+\exp(-x))+N(0,0.1)
結果
MIC:1.0000000000000002
相関係数:0.9137437197125787
こちらは相関係数でも上手くいきました
正規分布(正規分布ノイズ)
正規分布の確率密度関数そのものでもやってみました。
-2<=x<=2\\
サンプル数は1000個\\
y=normal(x,mean=0,\sigma=1)+N(0,0.05)
結果
MIC:0.8289557320644945
相関係数:0.005338872881598092
自己回帰(正規分布ノイズ)
0<=i<1000\\
サンプル数は1000個\\
y[0]=100\\
y[i+1]=0.5*y[i]+1+N(0,0.1)
結果
MIC:0.22676923525337073
相関係数:0.0775566558512887
結論
これを見ると必ずしも、MICが万能ではないことが分かります。
何事も過信は良くありませんね。