コンテンツにスキップ

数値列間の相関係数を求める

数値の列どうしの相関係数を出します。似た動きをする列を見つける、説明変数を絞る手がかりにする、といった使い方をします。

入出力

ポート内容
入力データデータ
出力データデータ

つなげる出力は 1 つだけです。 散布図(ペアプロット)は出力ポートにはならず、相関グラフを作成するを on にして実行したあと、プレビューフィールドのロボットのボタンからボニートくんの相関グラフのページで見ます。

Spark エンジンでも動きます。ただし Spark では散布図は作られません。 相関係数の表だけが出ます。

入力の行はそのままでは残りません。 1 つ目の出力は、列の組み合わせを 1 行ずつ並べた別の表になります。

出力の形

1 つ目の出力は、次の 3 列です。

列名内容
変数x組の片方の列名
変数yもう片方の列名
相関係数その 2 列の相関係数

同じ組は 1 行だけです。A と B が出たら B と A は出ません。自分自身との組(係数 1)も出ません。 数値列が n 本なら、行数は n × (n − 1) ÷ 2 になります。

設定項目

「グラフオプション」はチェックを入れるまで中身が出ません。 見出しの横のチェックボックスを on にすると、グループごとに色分けする / グルーピングする列を選択 が出ます。

処理タイプを選択
全数値型間の相関を調べる(既定)か相関を調べる列を指定する。
処理対象列を選択
相関を調べる列を指定するのときだけ出ます。数値の列だけ選べます。複数選べます。
相関グラフを作成する
既定は off。on にすると散布図を作ります。
グループごとに色分けする
相関グラフを作成するが on のときだけ出ます。既定は off です。
グルーピングする列を選択
グループごとに色分けするが on のときだけ出ます。文字列の列だけ選べます。

相関係数の読み方

値関係
1 に近い片方が増えると、もう片方も増える
0 に近い直線的な関係がない
-1 に近い片方が増えると、もう片方は減る

グラフを作ると重くなる

列数が多いとグラフの作成に時間がかかります。 列の数だけ縦横のマス目ができるためです。まず相関グラフを作成するを off で係数だけ見て、気になる列を指定してからグラフを作ってください。

散布図に並ぶのは、相関係数を計算した列だけです。 「相関を調べる列を指定する」で絞れば、散布図のマス目も同じ列だけになります。「全数値型間の相関を調べる」のときは、入力データの数値列すべてが並びます。グループごとに色分けするで指定した列は、色の出し分けに使われるだけでマス目には並びません。

エラーと対処

数値列が足りない

数値の列が 2 本に満たないときに出ます。相関を調べる列を指定するで選んだ列に数値以外が混じっていて、残りが 1 本になった場合も同じです。

最低でも2つ以上の数値型の列を選択してください。

直し方 — 数値の列を 2 つ以上選んでください。相関は 2 列の間の関係なので、1 列では計算できません。数値に見えて文字列型になっている列は、列の型変更で数値にします。

処理対象列を選んでいない

処理タイプを選択で相関を調べる列を指定するにして、処理対象列を選択が空のまま実行したときに出ます。グルーピングする列を選択を空のままにしたときも同じです。

対象の列が選択されていません。

直し方 — 列を選んでください。全列でよいなら処理タイプを選択を全数値型間の相関を調べるに戻します。

選んだ列が入力データにない

前のノードで列名を変えたり列を削ったりして、選んである列がなくなったときに出ます。

対象の列が存在しません。

直し方 — 列を選び直してください。

よく使う例

1. 全体の相関を見る

どの列どうしが似た動きをするかを、まず一覧で知りたいとき。

入力

店舗売上来店数気温
渋谷1200004024.1
新宿800003218.5
池袋400002015.2
上野600002916.8

設定

設定項目値
処理タイプを選択全数値型間の相関を調べる
相関グラフを作成するoff(既定)

出力 — 数値列は 3 本なので 3 行出ます。文字列の 店舗 は自動で除かれます。

変数x変数y相関係数
売上来店数0.9746
売上気温0.9897
来店数気温0.9428

行の順は、入力の数値列の並び順で上から組を作った順です(売上 × 来店数 → 売上 × 気温 → 来店数 × 気温)。係数の大きい順には並びません。

2. 気になる列だけグラフにする

目当ての列が決まっていて、形まで目で見たいとき。

入力 — 例 1 と同じ

設定

設定項目値
処理タイプを選択相関を調べる列を指定する
処理対象列を選択売上、来店数
相関グラフを作成するon

出力 — 表は 売上 × 来店数 の 1 行だけになります。散布図も 売上 と 来店数 の 2 列だけのマス目になります。

3. 区分ごとに傾向が違うか見る

全体では相関がないように見えるが、グループを分けると違うのではと疑うとき。

入力

会員区分利用月数利用額
一般31200
優待2442000
一般82400

設定

設定項目値
相関グラフを作成するon
グループごとに色分けするon
グルーピングする列を選択会員区分

出力 — 散布図の点が会員区分ごとに色分けされます。マス目に並ぶのは数値列の 利用月数 と 利用額 だけで、会員区分 は色にだけ使われます。相関係数の表は全体で 1 つなので、区分ごとの係数は出ません。

4. 似た列の組を洗い出す

説明変数に中身の重なる列が多く、どれとどれが重なっているかを特定したいとき。

入力

売上税込売上来店数
10000011000040
800008800030
650007150032
12000013200041

設定

設定項目値
処理タイプを選択全数値型間の相関を調べる

出力

変数x変数y相関係数
売上税込売上1.0000
売上来店数0.8797
税込売上来店数0.8797

税込売上 は 売上 の 1.1 倍なので、相関係数はちょうど 1 です。この表を条件で行をフィルタで 相関係数 >= 0.95 に絞れば、重なっている組だけを並べられます。どちらを外すかの判断は特徴量選択に渡します。

関連