ID毎に前回フラグが立った時との時間差を求める(@SINCE)
1.想定される利用目的
・顧客の特定の行動までの間隔を特徴量にする
・設備ログから特定イベントの発生間隔を特徴量にする
2.サンプルストリームのダウンロード
3.サンプルストリームの説明
a.入力するデータは以下の通りです。ID(顧客/設備)が2種類存在します。

b.[フィールド作成]ノードを編集します。[派生]モードを[条件付き]にします。[If]は自分のレコードにフラグが立っていて且つ前回フラグが立ったレコードが何行情報かを[@SINCE(ID,1)]で数えた上で、そのレコードを@OFFSETで指定してIDが一致する条件を記述しています。[Then]では前回のフラグが立っている時間と自分のレコードの差を求めています。該当しない場合はundefで欠損値にします。

[プレビュー]します。ID毎の最初のフラグも欠損値になるのでゼロにします。

注意点
@SINCEとの組み合わせのみで利用できる関数に@THISがあります。
同じフィールドが何行上方に存在するかを数で返します。存在しない場合には@INDEX+1になるため@OFFSET内で利用するとNullになるようになっています。
7と9レコードだけ同じ時刻をもつレコードが上方にあるため、その行数を返しています。それ以外は@INDEX+1になっています。

4.参考情報
フィールド作成のカウント型を解説した記事
SPSS Modeler ノードリファレンス目次
SPSS Modeler 逆引きストリーム集(データ加工)





