LoginSignup
6
4

More than 1 year has passed since last update.

SPSS Modeler ストリームのループ処理 その1 ストリームを指定の回数実行し、実行するたびに変数の値を変更する

Last updated at Posted at 2021-03-30

SPSS Modelerでのループ処理について

データは、SPSS Modelerに同梱されている telco.sav を使用しています。

たとえば、年代別に散布図や棒グラフ、クロス集計表などを作成したい場合、年代をパラメータにして、ループ/条件付き実行の手続きを使えば一度のストリーム実行で複数のアウトプットを得ることができます。

ここでは、年齢フィールドから年代フィールドを作成し、年代別に携帯電話の解約に関する比較をしてみます。

フィールド作成ノードを使って、年代フィールドを作成

データ型ノードにフィールド作成ノードをリンクします。
image.png
条件を設定して、年齢から年代を作成します。
image.png

棒グラフノードをリンクして、年代フィールドを確認してみます。10代から70代までの7つの年代ができました。
image.png

今回は、20代、30代、40代の3つの年代の携帯電話解約の男女比を比較します。
特定の年代を比較する場合は、該当する年代を条件指定して抽出しますが、複数の年代で繰り返し抽出したい場合には、パラメータを使用します。

パラメータの設定

メニューからツール>ストリームのプロパティ>パラメータを選択します。
パラメータの名前をここでは、「age_G」としました。また、ストレージは文字列に変更します。
image.png
年代のフィールド作成ノードの後に条件抽出ノードを追加し、条件を指定ます。
条件式は、年代='$P-age_G' です。
式ビルダーを起動して年代を投入したあと、リストを「フィールド」から「パラメータ」に変更すると、先程、設定したパラメータがリスト表示されますので式に投入します。

image.png

条件抽出ノードに棒グラフノードをリンクします。フィールドに「性別」、オーバーレイの色に「解約」、色で正規化にチェックをして実行します。
image.png
image.png

パラメータを入力するダイアログが表示されます。「10代」と入力すると該当するデータが選択され、棒グラフが表示されます。
パラメータがうまく作用していることが確認できたので、メニューからツール>ストリームのプロパティ>パラメータを選択し、「プロンプト?」のチェックを解除します。これでストリームの実行時にパラメータを入力するダイアログは表示されなくなります。
image.png

ループの設定

条件抽出ノードを右クリックし、プルダウンメニューからループ/条件付き実行>反復キーの定義を選択します。
反復対象で「ノードプロパティーー値」を選択し、設定内容のノードは、「条件抽出ノード」を選択します。使用する値のフィールドで、「年代」を選択します。値リストは、右側一番上の値を表示するボタンをクリックして、リストから対象としたい値を選択します。
image.png

ループのリストが表示されました。選択した年代が表示されています。
image.png

ループと条件付き実行は、ストリーム全体を実行する必要があるので注意してください。不要なノードは削除しておきます。完成したストリームイメージは以下の通りです。ループ/条件付きであることを示すミニアイコンがノードの左上に表示されています。
image.png

ストリームを実行すると、20代、30代、40代の棒グラフが作成されます。

image.png

まとめ

少々とっつきにくい感じもありますが、便利な機能です。使いながら慣れましょう!!

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4