SPSS ModelerとSPSS Statisticsを連携して適合率/再現率曲線を作成

## はじめに
SPSS ModelerとSPSS Statisticsを連携して、予測モデルの評価方法の１つである適合率/再現率曲線を作成する手順をまとめました。

環境
・SPSS Modeler 18.3
・SPSS Statistics 28
・Mac OS Big Sur 11.4

## SPSS ModelerとSPSS Statisticsを連携するための手続き
SPSS Modelerを起動して以下の手続きを行います。
①ツールメニュー＞オプリョン＞ヘルパーアプリケーションを選択します。
②IBM SPSS Statisticsユーティリティ...をクリックします。
③参照ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855260/425276ee-4376-6d04-90ce-375627336bf0.png)
③/Applications/IBM SPSS Statistics/SPSS Statistics.app/Contents/binを選択します。
※SPSS Statistics.appの下層が表示されない場合は、SPSS Statistics.appを右クリックして、パッケージの内容を表示を選択すると表示されます。
④OKボタンをクリックします。
設定はこれで完了です。
＜参考＞
https://www.ibm.com/docs/ja/spss-modeler/18.3.0?topic=nodes-spss-statistics-helper-applications

SPSS ModelerのIBM@ SPSS@ StatisticsパレットにあるStatistics 変換、Statistics モデル、Statistics 出力ノードが使えるようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855260/9a29cd2a-a1b1-baa0-ce36-499e14ac0eb7.png)

## 予測モデルを作成
モデル作成の手順は、いつものSPSS Modelerの手順のため省略します。
今回は、RISKの予測モデルをロジスティック回帰ノードを使って作成しました。モデル作成ノードの分析タブにある傾向スコアの選択を忘れずに行います。忘れてしまった場合には、モデルナゲットの設定タブにある傾向スコアを選択すれば大丈夫です。
＜モデル作成ノードの場合＞
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855260/19ab8f44-dfae-4451-b116-b98f5f1665f6.png)
＜モデルナゲットの場合＞
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855260/446179ee-7f82-310a-2f44-3bee78ccf62c.png)

## 作成した予測モデルの適合率/再現率曲線を作成
いよいよここからSPSS Statisticsとの連携です。SPSS Statisticsで利用できるフィールド名(変数名)のルールは、SPSS Modelerとは異なるため注意が必要です。SPSS Statisticsでは、フィールド名の頭文字は文字であること、スペースやハイフン、特殊文字の使用は不可となっています。また、文字数は半角で8文字、全角で4文字までの制限があります。フィルターノードを使うと簡単にSPSS Statisticsのルールに合うフィールド名に変更ができます。ここでもモデルナゲットのあとにフィルターノードをリンクして、フィールド名を変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855260/17482316-49d7-a68a-a5fb-7cbf0d73c755.png)
フィルターノードの編集画面のメニューから、IBM SPSS Statistics用に名前変更を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855260/623b690a-e400-2ff1-56ed-4e0ef5259900.png)
ハッシュもしくは、下線を選択して、OKボタンをクリックします。
ここでは、ハッシュを選択しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855260/07b9e674-0956-e742-5927-d90360f52f65.png)
頭文字が$"だったフィールドには、”X"が付きました。1回の実行で1種類の置き換えのため、ハイフンを置き換えるためにもう1回同じ手続きを実行します。これで、"ｰ"が"#"に置き換わりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855260/97a79523-ce8e-235c-4d73-effdec5ae8e2.png)
準備ができたので、Statistics 出力ノードをリンクして、編集画面を表示します。
ダイアログを選択...をクリックして、分析▶＞分類＞ROC分析を選択します。
SPSS StatisticsのROC分析ダイアログボックスが表示されます。
検定変数に先程ロジスティック回帰モデルで算出した傾向スコアフィールド(XSLRP#RISK_2)を指定します。状態変数には、対象フィールドのRISK_2を指定し、状態変数の値は、対象フィールド内のターゲットの値を入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855260/6497732f-53f3-d3e5-8ec7-f6b37e06e608.png)
ROC分析 ダイアログボックス内の表示ボタンをクリックします。
すべて選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855260/7367b4f8-6b80-892e-eb83-c96c793c2036.png)
続行ボタンをクリックします。さらに、OKボタンをクリックします。
Sitarists 出力ノードが以下の通り更新されています。グレーの部分は、ROC分析を実行するためのStatisticsのシンタックスコマンドです。
実行ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855260/31132a75-836c-2f23-1849-0aeaa5148405.png)
SPSS Statisticsの出力ファイルと同じイメージのウィンドウが表示されます。
ROC曲線はModelerの評価ノードでも作成できますね。
適合率/再現率曲線が作成されました。y軸のラベルが精度となっていますが適合率のことです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855260/ecf15c7b-a6a1-fd3d-abbd-f0a9ed76b412.png)
出力には、他にもROC曲線下の面積AUCとその信頼区間やカットオフ値、座標情報などが表示されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855260/8a752217-aedc-2738-4dce-eea7033716eb.png)
＜参考＞
Modelerの精度分析ノードの出力
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855260/e8bd582b-1911-862f-00ea-7f2a33645993.png)
## まとめ
SPSS ModelerとSPSS Statisticsを連携して、適合率/再現率曲線を作成しました。