SPSS Modelerでのループ処理について
データは、SPSS Modelerに同梱されている telco.sav を使用しています。
たとえば、年代別に散布図や棒グラフ、クロス集計表などを作成したい場合、年代をパラメータにして、ループ/条件付き実行の手続きを使えば一度のストリーム実行で複数のアウトプットを得ることができます。
ここでは、年齢フィールドから年代フィールドを作成し、年代別に携帯電話の解約に関する比較をしてみます。
フィールド作成ノードを使って、年代フィールドを作成
データ型ノードにフィールド作成ノードをリンクします。
条件を設定して、年齢から年代を作成します。
棒グラフノードをリンクして、年代フィールドを確認してみます。10代から70代までの7つの年代ができました。
今回は、20代、30代、40代の3つの年代の携帯電話解約の男女比を比較します。
特定の年代を比較する場合は、該当する年代を条件指定して抽出しますが、複数の年代で繰り返し抽出したい場合には、パラメータを使用します。
パラメータの設定
メニューからツール>ストリームのプロパティ>パラメータを選択します。
パラメータの名前をここでは、「age_G」としました。また、ストレージは文字列に変更します。
年代のフィールド作成ノードの後に条件抽出ノードを追加し、条件を指定ます。
条件式は、年代='$P-age_G' です。
式ビルダーを起動して年代を投入したあと、リストを「フィールド」から「パラメータ」に変更すると、先程、設定したパラメータがリスト表示されますので式に投入します。
条件抽出ノードに棒グラフノードをリンクします。フィールドに「性別」、オーバーレイの色に「解約」、色で正規化にチェックをして実行します。
パラメータを入力するダイアログが表示されます。「10代」と入力すると該当するデータが選択され、棒グラフが表示されます。
パラメータがうまく作用していることが確認できたので、メニューからツール>ストリームのプロパティ>パラメータを選択し、「プロンプト?」のチェックを解除します。これでストリームの実行時にパラメータを入力するダイアログは表示されなくなります。
ループの設定
条件抽出ノードを右クリックし、プルダウンメニューからループ/条件付き実行>反復キーの定義を選択します。
反復対象で「ノードプロパティーー値」を選択し、設定内容のノードは、「条件抽出ノード」を選択します。使用する値のフィールドで、「年代」を選択します。値リストは、右側一番上の値を表示するボタンをクリックして、リストから対象としたい値を選択します。
ループのリストが表示されました。選択した年代が表示されています。
ループと条件付き実行は、ストリーム全体を実行する必要があるので注意してください。不要なノードは削除しておきます。完成したストリームイメージは以下の通りです。ループ/条件付きであることを示すミニアイコンがノードの左上に表示されています。
ストリームを実行すると、20代、30代、40代の棒グラフが作成されます。
まとめ
少々とっつきにくい感じもありますが、便利な機能です。使いながら慣れましょう!!