0.はじめに
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で確認して、お使いのModelerバージョンに合わせて、適切な組み合わせで導入をしてください。
Modelerのバージョン | サポートされるRバージョン |
---|---|
17.1.0.0 | 3.1.0 |
18.0.0.0 | 3.2.0 |
18.1.0.0 | 3.3.0 |
18.1.1.0 | 3.3.0 |
18.2 | 3.3.3 |
18.2.1 | 3.3.3 |
18.2.2 | 3.5.1 |
18.3 | 4.0.4 |
18.4 | 4.0.4 |
# 1.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#!
以下からダウンロードします。
https://cran.r-project.org/bin/windows/base/old/3.3.3/
インストールの際に、導入場所を記録しておきます。インストールのオプションはデフォルトのままでOKです。
バージョンが3.3.3であることを確認し、q()で終了します。作業スペースは保存しなくて構いません。
2.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
install.exeを管理者権限で実行し、導入します。
Rを導入したパスを指定します。デフォルトがR-3.3.2になっているので修正が必要です。
Modeler Clientを選択します。Modeler Serverと接続して使う場合にはModeler ServerへもEssentials for R の導入が必要です。
Modeler Clientのパスを指定します。デフォルトのパスに導入している場合はそのままです。
必要に応じて、数値を変更し、メモリー制限を増やすことができます。これを行うには、C:¥Program Files¥IBM¥SPSS¥Modeler¥18.2.1¥ext¥bin¥pasw.rstats¥config.ini ファイルの末尾にオプションを追加します。例えば、制限を 4096 MB に増やすには、以下のようにします。なお、このファイルを修正するためにはWindowsの管理者権限が必要です。
Max_Men_Size=4096
3.Modelerでの動作確認
Statisticsファイルのインポートノードで以下のファイルを選択します。
C:\Program Files\IBM\SPSS\Modeler\18.2.1\Demos\japanese_ja\pm_customer_train2.sav
Rのシンタックスに以下のコードを書き、実行します。
age<-modelerData$年齢
hist(age)
modelerDataには前のノードからのデータが格納されます。この場合前のノードでpm_customer_train2.savから読み込んだデータの年齢列を取り出してageという配列にいれ、そこからヒストグラムを作っています。
参考
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のサンプルコードなどはこのページからたどれます。