記事の目的
著者はSPSS Modelerを使用して分析を行う機会がよくありますが、ストリーム作成する際に、自身が役立った内容などを 小ネタとしてQiitaに投稿していこうと思います。第一弾として日付マスターの作成を取り上げます。例えば、店舗の販売データを時系列分析する際に、時系列に販売データをソートすると、所々レコードが欠損し歯抜け状態になっている場合があります。この様な場合、カレンダーなどの日付マスターと結合し適切な時系列データに変換する必要があります。ここでは、ユーザーノードを使用して、日付マスターを作成する方法を説明します。
前提知識
本記事では、SPSS Modelerの概要や基本的な操作についついては記載しておりません。 必要に応じて、参考リンクに記載の情報をお読みください。
参考リンク
①ユーザー入力ノードで年月日のベース情報を入力
ユーザー入力ノードに下記ように「Day」「Year」「Month」列を追加し値を入れます。入力された値のすべての組み合わせのレコードが生成されます。②datetime_dateを使用して日付にする
①の出力の「Day」「Year」「Month」をdatetime_date関数の引数として入力し「暫定日付」を生成します。③無効な日付を除去する
②の結果、無効な日付(例えば、30日までの月に31日が入っているなど)はnullが返されるので、条件抽出ノードにより除去します。除去して得られた結果を「日付」として出力できました。下記のように2020年が閏年であることも反映した出力になっています。
(少し応用#1)曜日と組み合わせる
datetime_weekday関数を使用して、日にちに対する曜日を出力させることもできます。(少し応用#2)時間帯と組み合わせる
ユーザー入力ノードに入れる値を0〜23にして、日付マスタと完全外部結合することにより下記のような時間帯を加味した出力にすることができます。サンプルストリーム
上記のストリームを含むサンプルストリームはこちらからダウンロードできます。おわりに
お時間を割いてご覧いただきましてありがとうございました。今後もこのような小ネタを掲載していく予定です。
本記事が、SPSS Modelerでストリームを作成する際のHints&Tipsとなれば幸いです。