SSブログ

IBM SPSS Modeler: ループ/条件付き実行のスクリプト 前半 [データサイエンス、統計モデル]

※ IBM insight 2015 の "Automation in IBM SPSS Modeler Using Python and R" を元にしています。

【目的】
様々な変数でクロス集計を行いたいが、いちいちクロス集計ノードを追加するのは面倒だし、見栄えが悪くなる。
そこで、スクリプトでループ処理ができないか?



【設定方法】
1. スクリプトを設定する前に、クロス集計ノードの設定から。

デモデータで用意されているtelco.savを使います。

行に[gender]、列に[churn]を持ってきます。



後で、この[gender]部分にいろんな変数を入れるやり方を紹介します。

外観と注釈を少しいじっておきます。





アウトプットはこんな感じになるかと。



2. 続いてループ処理の設定方法

ループ処理を行うやり方はいろいろあります。
スクリプトを書くというやり方もありますが、まずは、一番簡単な(?)方法を紹介します。

クロス集計ノードを右クリックして、
[ループ/条件付き実行] → [反復キーの定義(フィールド)]
をクリックします。



反復対象が [ノード プロパティー - フィールド] になっていることを確認。

既に [クロス集計:matrix] という値が入っている場合はそのまま。
入っていなければ、ノード(N)の右をクリックし、[クロス集計]を選択します。

下のプロパティは、[row]を選択します。



最後に、フィールドリストを選択し、[region]、[marital]、[ed]、[gender]を選択し、OKを押します。



クロス集計は、[region] -> [marital] -> [ed] -> [gender] という順番で実行されます。

ここで、やりたいことを再度確認すると、列(column)の[churn]を固定して行(row)の[gender]部分に色々な変数を代入してループ処理を行っていきます。

ここで注意なのですが、SPSS Modelerのスクリプトを使ったループ処理は、行でも列でもどちらでもループ処理はできるのですが、行と列のダブルループはできません。

では、どうするか?といえば、Python Scriptを使う必要があります。
Python Scriptは、また、別の機会にでも。。。

nice!(10)  コメント(0)  トラックバック(0) 
共通テーマ:学問