もふもふ技術部

相関係数ってなんぞ? – エンジニアが学ぶなんちゃって統計学


sokan_eye
論文を読んでたら因子分析とか相関行列とかそういう言葉がたくさん出てきて色々わからなくなってきました。こういうとき、もっと学業をちゃんとやっとけば良かったと思うことはしばしばです。

言葉の一つ一つを正しく理解しないと文章を正しく読み取ることが出来ません。そういうわけでちょっと統計的な分野を少しだけ学んでみようかと、ちょっと気まぐれに思いついたのです。

今日は「相関係数」を調べてみます。技術ブログだしコードでも書きながら理解してみようという試みを。

相関係数の公式

相関係数の公式
sokan_01

ファッ!?
(;゚д゚) ・・・

(つд⊂)ゴシゴシゴシ

(;゚Д゚) …!?

なんだこれ・・・
シグマとか上線とか昔にやったような気がするけどなんだったかしら・・・。
確か数列をあらわす記号だっけか。

3つの値に分割する

公式を眺めていてもわからない。かれこれ2時間くらい公式とにらめっこしていたかもしれません。(嘘
わからなければGoogle先生と相場は決まっているのでちょっと聞いてみます。

こちらのサイトが非常にわかりやすかったです。
http://wwwhum.meijo-u.ac.jp/labs/hh002/excel/content/corrstep.html

どうやら公式を3つのパーツに分解するらしいです。

(1)Xの偏差とYの偏差の積の合計
sokan_02

(2)Xの偏差の2乗の合計。
sokan_03

(3)Yの偏差の2条の合計。
sokan_04

相関係数計算を表現したプログラム

ではプログラムにしてみましょう。ここんところRubyづくめの日々なので今回も例によってRuby1.9.3でやってみます。

使用するデータはニート数とサラリーマン平均年収の推移。
世間の年収が下がりすぎて働く気が失せてしまってニートになる、というストーリーを想像して相関関係を調べてみます。
sokan_05

Excelデータを扱うコードはめんどくさいので、適当にyamlに変換する。

sokan_02

sokan_03 sokan_04

最後にこれらを公式にあてはめて計算してみます。
sokan_01

相関係数 r = -0.7697950010240482 という結果になりました。

これはかなり強い負の相関を示しています。要するに、サラリーマン年収が下がるとニートが増えるという相関関係が存在することを示すことになります(データ量少なすぎるけど)。

ちなみに相関係数はExcelのCORREL関数は使えば3秒で計算できます。さすがExcelさんは優秀ですね!関数のパワーは絶大。

そして何よりみんな大好きExcel方眼紙!

全コード、参考までに。

The following two tabs change content below.
原田 敦

原田 敦

日本CAWのエンジニア。もふもふ部の部長。得意分野はRuby on Railsを使った小規模WEBアプリケーションを高速で開発すること。週末の楽しみは一人お菓子パーティー。三度の飯より小動物をもふもふするのが好きです。