Alteryxで相関係数を求める

alteryx

こんにちは、小澤です。
小澤と呼ばれてもいまいちピンとこないので、表示名を呼ばれて違和感のない「じょんすみす」に変更しましたが、書き出しの「こんにちは、小澤です。」は今後も続けていきます。

さて、今回はデータ分析を行う上でも比較的最初の方にサクッとみたい相関の話題となります。

相関とは

相関という言葉自体は聞いたことのある人が多いかと思います。 データの中の2種類の特徴が一方が増えれば他方も増える(あるいは減る)という関係性があるような状態の時、「相関がある」と言いますが、どのような定義かは知らずになんとなく雰囲気で使ってる言葉でもあるかもしれません。

ピアソン積率相関係数

この「相関」について、まずピアソン積率相関係数で説明して、alteryxで利用可能な他の手法についても見ていくことにします。 なお、今回は相関や相関係数とはどんなものかの話なので、因果関係や擬似相関などといった話題には触れませんので予めご了承ください。

さて、まずは「相関がある」とはどういう状態なのか考えてみます。下の図のような2つのデータがあるとします。

cor1

ここで2つの図の点は個々のデータ、縦横の軸はなんらかの値(年齢などのデモグラフィック情報や購入金額など)であると考えてください。 左の図では2つの軸のうち、片方が高くなればもう一方も高くなるという関係がありそうですが、右の図にはそのような関係はあまり見られません。 しかし、これは人による主観が入っており、人によっては左の図ほどではないものの右の図にも多少はそういった関係がありそうだと感じる場合もあるかもしれません。

このような時に、2つの値がどの程度関係していそうかというのを数値化したものが相関係数になります。 相関係数の計算は以下のようになります。

latex-image-2

横軸をx, 縦軸をyとした時のそれぞれのデータ点の値と各軸の値の平均値を利用して求めています。 この値は-1 〜 1の範囲となり、1であれば完全に直線に乗る一方が上がれば他方も上がる関係、-1であれば一方が上がればもう一方は下がるというのが完全に直線に乗った状態になります。0の時に2つの値は全く関係ない状態となり、1または-1に近づくほどその関係は強くなります。

cor2

また、相関係数では直線では表せない関係性があるようなデータを扱うことはできません

cor3

スピアマンの順位相関係数

相関係数というと先ほど紹介したものが一般的に利用されるものにものになりますが、alteryxで使える別な計算方法も簡単に説明します。

スピアマンの順位相関係数とは、値が連続的なものではなく大小関係を表す質的変数のような場合によく利用されるものです。 例えばアンケートで「非常に良い」〜「非常に悪い」のような5段階の設問を数値にしたものなどがこの質的変数にあたります。

latex-image-5

RとR'はそれぞれx軸とy軸に相当する設問のi番目のデータの値が全体で何位だったかという順位を表したものになります。

また、alteryxではもう一つHoeffding's D statisticというものもありますが、こちらに関しての解説は割愛します。

Alteryxで使ってみる

さて、相関係数の計算をalteryxでやってみます。今回もサンプルにあるものを例に解説します。

Sample Workflows > Predictive Analytics > 2 Association Analysis

を利用します。
こちらのワークフローは以下のようになっています。

スクリーンショット 2017-02-06 11.08.06

今回使うのは、Association Analysisツールとなります。

スクリーンショット 2017-02-06 11.11.20

サンプルでは同じデータに対して3つのAssociation Analysisツールをつなげています。 これは、このツールで選択可能な3つの相関係数を計算するための手法を全て適用して結果を比較するためです。
このツールの設定は以下のようになります。

スクリーンショット 2017-02-06 11.14.17

Target a field for more detailed analysisにチェックを入れて、Target fieldの値を指定すると、そこで指定した値と、その次に選択したFieldsにとの間の結果をより詳しく見ることができます。
それ以外の値のついては、Feildsで選択した各値の組み合わせに対する相関係数の行列を出力してくれます。

出力は2種類あります。1つは各項目ごとの相関係数をヒートマップ形式で出したものです。 これはサンプルでは直後のBrowseツールとつながっており、マウスオーバーでここの値をポップアップして見ることができます。 ざっくり全体像を使うむ時にはこちらの結果を参照するといいでしょう。

もう1つは数値でレポーティングするための出力結果となります。 サンプルでは、3つの結果をjoinしたものを出力していますが、そのうち1つを取り出すと、以下のようになります。

スクリーンショット 2017-02-06 11.28.41

スクリーンショット 2017-02-06 11.28.56

上から順に

  • Target Fieldで指定した値に対するそれ以外のFiledsとの相関係数など
  • 各Feildsの相関係数の行列
  • 各Filedsの相関係数のP値に関する行列

となります。

最後のP値についてはここまでで解説していませんでした。 ここでは詳細までは解説しませんが、とりあえずはこの値が低いほど信頼性がありそうな結果になっている程度に思っていただければいいかと思います(統計学界隈では最近このP値の扱いに関する議論も活発でここでの説明は正確なものではありませんが、詳細は難しい話となるため割愛します)。

終わりに

今回はalteryxで相関係数を扱ってみました。 相関係数や2変数をプロットした散布図はデータの性質を知るのに有用です。 しかし、相関関係だけで全てを説明することはできないのでその点に注意して利用してください。この点に関しては参考文献にも記載がありますので、やや難しい内容となりますが詳細を知りたい方はそちらも参照ください。

参考文献

AWS Cloud Roadshow 2017 福岡