ベクトルで理解する相関係数correlation coefficient

フランス滞在も残り少なくなってきました。松浦です。
最近マルシェ(朝市)に行くと、牡蠣を売っている陽気な兄ちゃんや、八百屋のかわいい子や、人の良いチーズ屋のオッチャンなんかが声をかけてくれたり、雑談したりと、地元にもだいぶ馴染んできました。来月お別れかと思うと少々寂しい感じもします。

今日は相関係数をベクトルで捉える考え方を紹介します。2つの集合にどの程度の相関があるか数値的に知る際に、相関係数が有用です。しかし、相関係 数の理解が曖昧なケースが研究ゼミ等で散見されます。相関係数はcosθなんだ、と一旦出来れば相関係数の性質を誤ることは無いと思い、スライドにまとめ てみました。

各々の集合を多次元の1点(多次元のベクトル)と捉え、二つのベクトルの関係を示しているのが相関係数なのだとみなせば、簡潔に性質を理解できると思います。スライドはslide shareに上げました。参考にして下さい。

ベクトルで理解する相関係数 from Satoshi MATSUURA
相関係数は静的なデータ解析はもちろんのこと、動的にパラメータチューニングを行う際に用いられたりと、様々な所で利用されています。

ここでは、例としてパラメータチューニングについて、簡単に述べておきます。例えば、サーバが5台あったとしましょう。この5台は処理過程で複雑な 依存関係があるとします。またボトルネックはCPUとします。最初に、CPU負荷を計測しておきます。ここから任意の2台を選ぶと、経過時間に沿って2つ の集合が得られ、その相関係数を求めることが出来ます。組み合わせを考えると10通りのペアが存在し、各々の相関係数が得られます。

ここで新しいリクエストが来た場合にどのサーバにリクエストを振り分ければ良いでしょうか。もちろんCPU負荷を見て、負荷の低いサーバに割り振る でしょう。しかし、高負荷のサーバとこの低負荷のサーバの相関係数が1に近かったら、その判断は正しいと言えるでしょうか。低負荷かつ、高負荷なサーバと の相関係数が低いサーバを選択することが良さそうです。

これはベストフィットアルゴリズムに相関係数の考えを持ち込んだと見なせるでしょう。システムのモデリングが困難であったり、動的な要素が多く依存 関係が複雑な場合に、相関係数を用いてある程度の当たりをつけると有用なことがあります。色々な応用を探るヒントになれば幸いです。

by MATSUURA Satoshi