欠損値を中央値で置換する(SPSS Modeler データ加工逆引き5-6)

# 欠損値を中央値で置換（欠損値の補完）

![スクリーンショット 2022-07-06 16.12.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/d524869e-bc9e-d9cc-2fa2-ae6ff508d53f.png)

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

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

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

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

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

![スクリーンショット 2022-07-06 16.12.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/ebea5053-4334-7cd0-4db0-b5d6d79f6fb6.png)

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

![スクリーンショット 2022-07-06 16.13.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/0b130217-0515-e006-c9cf-6cd62461fd66.png)

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

b.[データ検査]ノードを編集し赤枠にチェックをして実行します。
![スクリーンショット 2022-07-06 14.10.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/13eb5ca2-5e20-8362-788b-b5d0a43a1aef.png)

[欠損値検査]タブを開き[欠損値の代入]を[空白およびヌル値]に。[代入方法]は[固定]をクリックして[設定値のダイアログ]から[中央値]を選択します。
![スクリーンショット 2022-07-06 16.17.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/ae5d68c5-6ce7-8056-8be8-f0892d03f75c.png)

[生成]メニューから[欠損値スーパーノード]を選択するとcと同じものがストリーム領域に生成されます。
![スクリーンショット 2022-07-06 16.19.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/eac71a55-dcc6-1c34-36f6-052bcdd44570.png)

c.スーパーノードの中見は以下の通りです。[データ検査]ノードで選択した時点で中央値[44.6]が埋めこまれました。
![スクリーンショット 2022-07-06 16.19.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/31a28b35-4277-f0a6-00b5-471d5503df9c.png)

[プレビュー]します。欠損値が最頻値に置き換わりました。
![スクリーンショット 2022-07-06 16.19.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/9306e436-e996-439f-6043-8a32c2a1c936.png)


#### 統計値をテーブル結合してから置換える方法
ストリームが最新データを受けてCADSなどで自動化されることを考慮した方法です。

d.[レコード集計]ノードを編集します。[キー]はブランクで[値]の[中央値]を選択します。
![スクリーンショット 2022-07-06 16.20.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/58e5e3d5-527d-ca68-39fa-3009d53128a1.png)

[プレビュー]します。中央値は[44.6]です。
![スクリーンショット 2022-07-06 16.20.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/f5933286-0072-bb57-a075-730df62bb293.png)

e.[テーブル結合]ノードを編集します。[レコード結合方法]は[キー]をブランクにして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-07-06 16.21.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/fdf4314d-e50b-1891-7b3f-2ae8e907982d.png)

f.[置換]ノードで欠損値を中央値に置換えます。
![スクリーンショット 2022-07-06 16.22.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/8535419d-39fd-6f54-f74f-493c0b531171.png)

[プレビュー]します。欠損値が中央値に置き換わりました。
![スクリーンショット 2022-07-06 16.22.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/7016e049-b01c-db2e-b20c-5ff844d71e37.png)

#### 注意点

中央値の計算はSQLの特性上プッシュバックが効きません。処理速度を考慮して利用を検討ください。

https://qiita.com/416nishimaki/items/eba427686b4af9b7d41c#%E5%A4%A7%E8%A6%8F%E6%A8%A1%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AE%E6%B3%A8%E6%84%8F%E7%82%B9

## 4.参考情報

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

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

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


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

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

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

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