SPSS Modelerの拡張ノードでRを利用する

# ０．はじめに
SPSS Modelerは一般的に利用される豊富な機能を持っていますが、RやPythonの機能を使いたいこともあります。SPSS Modelerには拡張ノードという機能があり、SPSSからRやPythonを呼び出すことができます。
今回はR連携のセットアップを行ってみたいと思います。

■テスト環境
SPSS Modeler 18.2.1
Windows 10
R 3.3.3

この記事ではSPSS Modeler 18.2.1とR 3.3.3の組合せで導入していますが、ModelerがサポートするRのバージョンはModelerのバージョンによって異なります。[System Requirement](https://qiita.com/kawada2017/items/a1a8c639fc8f6c53e3b6)で確認して、お使いのModelerバージョンに合わせて、適切な組み合わせで導入をしてください。

|Modelerのバージョン|サポートされるRバージョン|
|--|--|
|[17.1.0.0](https://www.ibm.com/software/reports/compatibility/clarity-reports/report/html/softwareReqsForProduct?deliverableId=39CC1840EDC311E4989B60FF8B09BCE8&osPlatforms=AIX&#124;Linux&#124;Solaris&#124;Windows&duComponentIds=D002&#124;S001&mandatoryCapIds=13&optionalCapIds=7&#124;47&#124;22&#124;72&#124;186&#124;223&#124;26)|3.1.0|
|[18.0.0.0](https://www.ibm.com/software/reports/compatibility/clarity-reports/report/html/softwareReqsForProduct?deliverableId=D44C8050EEA711E4989B60FF8B09BCE8&osPlatforms=AIX&#124;Linux&#124;Mac%20OS&#124;Windows&duComponentIds=D002&#124;S001&mandatoryCapIds=13&optionalCapIds=7&#124;47&#124;22&#124;72&#124;186&#124;223&#124;26)|3.2.0|
|[18.1.0.0](https://www.ibm.com/software/reports/compatibility/clarity-reports/report/html/softwareReqsForProduct?deliverableId=D08EF250C1D611E6BE9C4E8BFBBFA45B&osPlatforms=AIX&#124;Linux&#124;Mac%20OS&#124;Windows&duComponentIds=D002&#124;S001&mandatoryCapIds=13&optionalCapIds=7&#124;47&#124;22&#124;72&#124;186&#124;223)|3.3.0|
|[18.1.1.0](https://www.ibm.com/software/reports/compatibility/clarity-reports/report/html/softwareReqsForProduct?deliverableId=D08EF250C1D611E6BE9C4E8BFBBFA45B&osPlatforms=AIX&#124;Linux&#124;Mac%20OS&#124;Windows&duComponentIds=D002&#124;S001&mandatoryCapIds=13&optionalCapIds=7&#124;47&#124;22&#124;72&#124;186&#124;223)|3.3.0|
|[18.2](https://www.ibm.com/software/reports/compatibility/clarity-reports/report/html/softwareReqsForProduct?deliverableId=53CCF0E096BF11E88DA21ABFB868B416&osPlatforms=AIX&#124;Linux&#124;Mac%20OS&#124;Windows&duComponentIds=D001&#124;S002&mandatoryCapIds=13&optionalCapIds=7&#124;47&#124;22&#124;72&#124;186&#124;223)|3.3.3|
|[18.2.1](https://www.ibm.com/software/reports/compatibility/clarity-reports/report/html/softwareReqsForProduct?deliverableId=17B6B0E013E811E9BABD512A6952EE1F&osPlatforms=AIX%7CLinux%7CMac%20OS%7CWindows&duComponentIds=D001%7CS002&mandatoryCapIds=13&optionalCapIds=7%7C47%7C22%7C72%7C186%7C223#)|3.3.3|
|[18.2.2](https://www.ibm.com/software/reports/compatibility/clarity-reports/report/html/softwareReqsForProduct?deliverableId=2FFFDAC0997D11EA831C92536C37223B&osPlatforms=AIX%7CLinux%7CMac%20OS%7CWindows&duComponentIds=D001%7CS002&mandatoryCapIds=13&optionalCapIds=7%7C47%7C22%7C72%7C186%7C223)|3.5.1|
|[18.3](https://www.ibm.com/software/reports/compatibility/clarity-reports/report/html/softwareReqsForProduct?deliverableId=68E564304EF511EBBBEA1195F7E6DF31&osPlatforms=Linux&#124;Mac%20OS&#124;Windows&duComponentIds=D001&#124;S002&mandatoryCapIds=13&optionalCapIds=7&#124;47&#124;22&#124;72&#124;186&#124;223)|4.0.4|
|[18.4](https://www.ibm.com/software/reports/compatibility/clarity-reports/report/html/softwareReqsForProduct?deliverableId=0E1C00D07E5C11EC93C02AA4DE91E682&osPlatforms=Linux&#124;Mac%20OS&#124;Windows&duComponentIds=D001&#124;S002&mandatoryCapIds=13&optionalCapIds=7&#124;47&#124;22&#124;72&#124;186&#124;223)|4.0.4|

#　１．R3.3.3の導入

Modeler18.2.1ではR3.3.3がサポートされています。

IBM SPSS Modeler 18.2.1 - Detailed System Requirements
https://www.ibm.com/software/reports/compatibility/clarity-reports/report/html/softwareReqsForProduct?deliverableId=17B6B0E013E811E9BABD512A6952EE1F&osPlatforms=AIX|Linux|Mac%20OS|Windows&duComponentIds=D001|S002&mandatoryCapIds=13&optionalCapIds=7|47|22|72|186|223#!

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/7c4aef25-e48d-d716-f0b8-58a749ffcf29.png)

以下からダウンロードします。
https://cran.r-project.org/bin/windows/base/old/3.3.3/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/0bd77091-d228-dac5-97c3-249a7eb3bebf.png)

インストールの際に、導入場所を記録しておきます。インストールのオプションはデフォルトのままでOKです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/53413488-0118-1391-83b5-857b3d61a645.png)

導入したらR x64を起動してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/66fc5082-31c0-da25-0259-d190ef43354d.png)

バージョンが3.3.3であることを確認し、q()で終了します。作業スペースは保存しなくて構いません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/c08eb574-0dbe-0110-0781-f0baef561f44.png)

# ２．Essentials for R の導入
パスポート・アドバンテージにログオンして、IBM SPSS Modeler - Essentials for R のバージョン 18.2 をダウンロードします。ご使用の IBM SPSS Modeler アプリケーションのオペレーティング・システム用の IBM SPSS Modeler - Essentials for R バージョンをダウンロードするようにしてください。
https://www.ibm.com/software/jp/passportadvantage/pao.html

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/7402ae87-97f3-3bf2-56b1-40c3ddfcee19.png)

install.exeを管理者権限で実行し、導入します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/90ff9a08-99a4-03d5-b88b-da83888ad28e.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/081295f1-88ab-28a8-dc14-4db96f220dbd.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/f9c33949-8c1d-9490-8a28-960c6925a42f.png)

Rを導入したパスを指定します。デフォルトがR-3.3.2になっているので修正が必要です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/9f5c0a1e-b6f3-036a-8bef-a3ed79014e7b.png)


Modeler Clientを選択します。Modeler Serverと接続して使う場合にはModeler ServerへもEssentials for R の導入が必要です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/cadd267a-9e88-ecf3-bf5b-ee5567326b31.png)


Modeler Clientのパスを指定します。デフォルトのパスに導入している場合はそのままです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/cd144f26-64f1-9e9f-0a0d-aee504034ed2.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/f8c1015a-bf8a-fe8d-b6ff-6ea96c877c1b.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/3ba60686-9fa5-40d8-ce46-914e03633ae0.png)


必要に応じて、数値を変更し、メモリー制限を増やすことができます。これを行うには、C:¥Program Files¥IBM¥SPSS¥Modeler¥18.2.1¥ext¥bin¥pasw.rstats¥config.ini ファイルの末尾にオプションを追加します。例えば、制限を 4096 MB に増やすには、以下のようにします。なお、このファイルを修正するためにはWindowsの管理者権限が必要です。

Max_Men_Size=4096

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/6360b741-8d04-259a-05fa-2284fcab3e98.png)



# ３．Modelerでの動作確認

Statisticsファイルのインポートノードで以下のファイルを選択します。
C:\Program Files\IBM\SPSS\Modeler\18.2.1\Demos\japanese_ja\pm_customer_train2.sav
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/2913bc15-b70a-c739-c144-b2a9b1d31db2.png)




出力タブから拡張の出力ノードを選び接続します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/e344f115-f257-e7ec-44f1-bae495f9221e.png)

Rのシンタックスに以下のコードを書き、実行します。

```r
age<-modelerData$年齢
hist(age)
```
modelerDataには前のノードからのデータが格納されます。この場合前のノードでpm_customer_train2.savから読み込んだデータの年齢列を取り出してageという配列にいれ、そこからヒストグラムを作っています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/5d09be02-9d20-6850-8a61-0221d93cd7eb.png)

以下のように年齢のヒストグラムがでれば導入成功です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/972ee3ff-4020-6986-6c78-d89dc4ceb957.png)

# 参考
IBM® SPSS® Modeler - Essentials for R: インストール手順
https://www.ibm.com/support/knowledgecenter/ja/SS3RA7_18.2.1/modeler_r_plugin_install_project_ddita/clementine/programmability_option/r_essentials_install_instructions_container.html

IBM SPSS Modeler R ノード - 概要
https://www.ibm.com/support/knowledgecenter/ja/SS3RA7_18.2.1/modeler_r_nodes_ddita/clementine/r_nodes.html
RノードはModeler 18.1から非推奨で拡張ノードを使いますが、Rのサンプルコードなどはこのページからたどれます。