欠損値を平均値で置換する(SPSS Modeler データ加工逆引き5-3)

# 欠損値を平均値で置換（欠損値の補完）

![スクリーンショット 2022-06-29 11.15.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/95212497-acf4-3170-63c3-1881daeb4b55.png)

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

・顧客属性データの補完
・設備IoTデータの欠損値の処理

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

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

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

![スクリーンショット 2022-06-29 13.18.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/98072a70-97a9-e99c-551c-b41f9818ca07.png)

a.入力するデータは以下の通りです。

![スクリーンショット 2022-06-29 13.22.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/9027c6c9-848f-ca06-79ed-6581b0ad79cd.png)

#### [データ検査]ノードを利用する方法

b.[データ検査]ノードを実行します。[欠損値検査]タブを開き[欠損値の代入]を[空白およびヌル値]に。[代入方法]は[固定]をクリックして[設定値のダイアログ]から[平均値]を選択します。
![スクリーンショット 2022-07-06 14.24.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/a0e867d0-5026-eecc-d5c0-5fab01d46d8c.png)


[欠損値の代入]が[条件...]になった状態で[生成]メニューから[欠損値スーパーノード]を選択するとcと同じものがストリーム領域に生成されます。
![スクリーンショット 2022-06-29 14.09.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/f6d1f0d7-8a52-4c64-4b10-5762ffcf394d.png)

c.スーパーノードの中見は以下の通りです。[データ検査]ノードで選択した時点で平均値[37.3]が埋めこまれました。
![スクリーンショット 2022-06-29 14.14.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/7d32df09-d865-532c-3679-d52d0fb52b21.png)

[プレビュー]します。欠損値が平均値に置き換わりました。
![スクリーンショット 2022-06-29 14.14.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/dfef0e02-eab5-955b-0a14-e1c33d77ed46.png)

#### [グローバルの設定]ノードを利用する方法

d.[グローバルの設定]ノードを実行します。
![スクリーンショット 2022-06-29 17.29.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/79cd91c1-8e43-1782-0d0c-c869ed150299.png)

メモリー上に統計量がキャッシュされています。
![スクリーンショット 2022-06-29 17.29.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/41ceef3e-764d-a3a4-a11e-cd4fa54d10ed.png)

e.[置換]ノードを編集します。置換条件は[ヌル値]を選択。[置換値]ではキャッシュされている統計量（ここでは平均値）を呼び出す関数@&#xFFF0;GLOBAL_MEAN(フィールド)を利用します。
![スクリーンショット 2022-06-29 17.29.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/6c2f1a66-da7e-518c-318c-c698a0d3ca8d.png)

式ビルダーの右にあるリストでグローバル（赤枠）を選択すると簡単に入力できます。
![スクリーンショット 2022-06-29 17.31.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/9bb87462-f6dc-8b92-44d0-9426143025e7.png)

[プレビュー]します。欠損値が平均値に置き換わりました。
![スクリーンショット 2022-06-29 14.14.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/dfef0e02-eab5-955b-0a14-e1c33d77ed46.png)

#### 統計値をテーブル結合してから置換える方法

f.[レコード集計]ノードを編集します。
![スクリーンショット 2022-06-29 17.32.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/0b567d15-48f2-3619-35ba-0acaee82da06.png)

[プレビュー]します。1行1列の平均値が求まりました。
![スクリーンショット 2022-06-29 17.33.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/06abc426-1b4c-9fb3-7993-87fbba8db69f.png)

g.[テーブル結合]ノードを編集します。[レコード結合方法]は[キー]を選択しますが
実際には[キー]をブランクにしてN対Nの結合を行います。
![スクリーンショット 2022-06-29 17.33.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/89a5f157-8fba-ddea-2204-358f55f7046b.png)

[プレビュー]します。全てのレコード（行）に平均値の列が追加されました。
![スクリーンショット 2022-06-29 17.34.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/0350c19c-251e-4d00-bdcb-4de2f97f3bea.png)

h.[置換]ノードで欠損値を平均値に置換えます。
![スクリーンショット 2022-06-29 17.34.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/365bb444-ae36-ef09-7073-882c26525c09.png)

[プレビュー]します。欠損値が平均値に置き換わりました。
![スクリーンショット 2022-06-29 14.14.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/dfef0e02-eab5-955b-0a14-e1c33d77ed46.png)

#### 注意点

[グローバルの設定]ノードは最初に実行する必要があります。

[グローバルの設定]ノードを利用せずeの[置換値]に@&#xFFF0;MEAN(温度)でも結果的に同じ結果になりますが、この関数は受け取ったレコードまでの（上方にある）値の平均を意味します。


## 4.参考情報

#### [データ検査]ノードの解説記事

https://www.ibm.com/blogs/solutions/jp-ja/spssmodeler-push-node-3/

https://qiita.com/416nishimaki/items/27fc3b6a2e596726877c

#### [グローバルの設定]ノードの解説記事

https://www.ibm.com/blogs/solutions/jp-ja/spssmodeler-push-node-12/

https://qiita.com/416nishimaki/items/c2df811b51166f6d6173

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

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

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

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