相関係数を求める(SPSS Modeler データ加工逆引き3-8)

## 相関係数を求める（統計量の2次利用）

![スクリーンショット 2022-07-25 10.58.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/edccb215-8ef5-cc56-7db6-e91e486b5e8a.png)

相関行列と散布図行列はこちらの記事で詳しく取り上げています。

https://qiita.com/416nishimaki/items/4e6644cc83f218286210

## 1.想定される利用目的

・予測モデル構築のための入力フィールドの精査
・相関の重みを利用した2次モデル作成のためのデータ加工
・実装後のモデル監視（MLOps）、異常検知を目的とした相関くずれ等の監視

## 2.サンプルストリームのダウンロード

https://github.com/yoichiro0903n/blue/blob/main/correlation.str?raw=true

## 3.サンプルストリームの説明

![スクリーンショット 2022-07-25 13.01.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/7dff4849-7c41-6968-973e-306415156864.png)

a.入力するデータは以下の通りです。
![スクリーンショット 2022-07-25 13.05.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/cd6e011b-6127-6a1a-d7da-4066a2dd1c37.png)

#### [データ検査]ノードを利用した相関係数

b.[データ検査]ノードを編集します。[オーバーレイ]に[C1]を選択します。
![スクリーンショット 2022-07-25 13.06.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/bad04706-5a6e-a270-00cc-2cb15e592931.png)

[実行]します。C1と各フィールドの相関係数が求められています。
![スクリーンショット 2022-07-25 13.06.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/c9f6c351-6401-cced-fb92-384e95f0e205.png)

#### [記述統計]ノードを利用した相関係数

c.[記述統計]ノードを編集します。
![スクリーンショット 2022-07-25 13.07.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/ad3fb8b3-e99d-b30b-4424-fafe9753a266.png)

[実行]します。C1とそれ以外のフィールドの相関係数が求められています。
<img width="400" alt="スクリーンショット 2022-01-12 10.02.12.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/7abcc344-e797-b83f-f5c4-4a5ff8a29f95.png">

#### 相関行列の作成

d.[記述統計]ノードを編集します。検証と相関に同じフィールドを選択すると相関行列を作成します。
![スクリーンショット 2022-07-25 13.07.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/024a5c98-234a-ee6d-ab2f-750b0d568afa.png)

[実行]します。
<img width="400" alt="スクリーンショット 2022-01-12 10.02.12.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/d1cee24d-2667-2c85-43ea-0b1fece3587c.png">

相関係数は[データ表示]からも求めることができます。aのノードで右クリックして[データ表示]を選択します。
![スクリーンショット 2022-07-25 13.43.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/5bb9da6d-369b-2c60-02f4-5219b6e9b7ab.png)

左のサンドバー[データ検査]からピアソンの相関係数タブを選択すると表示されます。
![スクリーンショット 2022-07-25 13.08.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/14f61528-d8ca-e20a-a327-369ae6669a14.png)

#### 相関係数を後続ストリームで利用するためにノードを組み合わせて計算する

e.[グローバルの設定]ノードを編集します。
![スクリーンショット 2022-07-25 13.09.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/682ebda1-244d-d3ff-e913-834e4a84d079.png)

[実行]をします。4つのフィールドの平均値がメモリにキャッシュされました。関数を利用してこのグローバル値を呼び出すことが可能になりました。
![スクリーンショット 2022-07-25 13.10.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/7f93530e-2af4-e16b-eb5f-29deb790cc72.png)

f.[フィールド作成]ノードを編集します。@&#xFFF0;GLOBAL_MEAN(フィールド)で先ほどキャッシュした平均値を呼び出して利用します。@&#xFFF0;FIELDはワイルドカードです。C1からC4まで対応するフィールドが入れ替わって計算されます。
![スクリーンショット 2022-07-25 13.11.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/4d336ac2-1b1c-ea15-1000-6b2e33fc04bf.png)

g.[レコード集計]ノードを編集します。キーをブランクにして1レコードに要約します。４つのフィールドの標準偏差とgで求めたC1との差の積の合計を求めます。また「フィールドにレコード度数を含める」にチェックしてレコード数を残します。
![スクリーンショット 2022-07-25 13.12.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/a598e156-ad9e-bf57-0fc7-979654f6279f.png)

h.[フィールド作成]ノードを編集します。共分散を計算します。相関係数の式では分子になります。
![スクリーンショット 2022-07-25 13.12.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/0ca40795-0793-0c34-8326-82dc79a8f8aa.png)

i.[フィールド作成]ノードを編集します。相関係数の式では分母に該当します。
![スクリーンショット 2022-07-25 13.12.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/4586de8b-9712-43b1-9d91-2290fd191945.png)

j.[フィールド作成]ノードを編集します。C1とC2の相関係数を求めます。
![スクリーンショット 2022-07-25 13.13.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/f77f4cbf-fd40-e496-7f3d-8f526557e5c4.png)

kとl はjと同様です。

m.計算に利用したフィールドはすべてフィルターします。
![スクリーンショット 2022-07-25 13.13.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/003037ee-27be-4878-0ace-50d325440e52.png)

[テーブル]を実行します。
![スクリーンショット 2022-07-25 13.13.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/e6ad93c9-138b-6165-400e-c5ad22c90914.png)

#### 注意点

グローバル値は関数で呼び出されるまに事前に計算される必要があるため、バッチ運用の際にはストリームの冒頭で処理される必要があります。

## 4.参考情報

#### 相関行列と散布図行列

https://qiita.com/416nishimaki/items/4e6644cc83f218286210

#### SPSS Modeler ノードリファレンス目次

https://qiita.com/416nishimaki/private/503037195081d3323eee

#### SPSS Modeler 逆引きストリーム集（データ加工）

https://qiita.com/416nishimaki/private/4bf813e6cba84b2a1008