2016年5月2日月曜日

SPSS ModelerでWEBアクセス分析も出来ちゃう~シーケンス関数

 前回はSPSS Modelerを使って簡単な時系列グラフを作成しました。

SPSS ModelerでWEBアクセス分析も出来ちゃう~時系列グラフ作成
http://sapporomkt.blogspot.jp/2016/04/spss-molerweb.html

 今回も、引き続き同じデータを使ってSPSS Modelerの「シーケンス関数」を用いたデータ操作を行ってみます。

※本エントリーは、私、小田一弥が一個人として勉強を兼ねて記載したものです。私の勤務先である日本アイ・ビー・エム株式会社の見解・見識ではない、個人としての記載内容としてご覧ください。  


「シーケンス関数」とはなんぞや?



 おっと、前回エントリーで当該関数を使ったのに、清々しいぐらいサッパリと説明を忘れてました(笑)

●シーケンス関数とは:
 下記のレコードを参照可能な関数で、語頭に「@」が付きます。
・現在のノードで参照しているレコード
・ノードを通過したレコード(過去のレコード)
・ノードを未通過のレコード(将来のレコード)

 よく使うのは、@INDEX、@MAX、@MIN、@MEANなどですが、今回は個人的に便利だなぁと思ったものも含めてご紹介します。

実際に使ってみよう!



1.ノードの整理(スーパーノードの作成)をしよう!
 具体的作業に入る前に、前回エントリーのストリームを俯瞰すると・・・うわぁ、長い・・・^^;
というわけで、下記のようにストリームを開けた直後に見えていなくてもいいノードを選択し、右クリック→「スーパーノードの作成」を選択してください。


  こんな感じになります。「スーパーマリオブラザーズ」のスターに似てますよね。世代がバレますよね。言わなければいいのに、こういうところあるんですよね、僕。


 星マークをクリックすると、格納された範囲のストリームが見えます。


2.「フィールド作成」ノードを配置し、「@INDEX」関数を利用する
 下記のように「@INDEX」関数を記入します。直接タイピングされても結構ですし、「式ビルダー」を使ってもOKです。当関数含め、以下で紹介する関数は、いずれも「シーケンス」関数に入っています。



 「テーブル」ノードで確認してみましょう。「年月」の順番に「年月ID」が入っていますね。


3.「フィールド作成」ノードから「@OFFSET」関数を利用する
 自分のブログはあまりオーガニック検索数が多くはありません。突発的に自然検索流入を集めたエントリーがあると「最近は好調だなぁ」と勘違いして、更新をサボるクセが抜けませぬ(笑)
やはりこういう数値は直近3ヶ月スパンぐらいで、「移動平均」的に見たほうがいいかもしれませんね。

 このような場合「@OFFSET」関数が便利です。 とりあえず、「フィールド作成」ノードを配置し、下記画面のように設定してください。



 R言語っぽいコメント文入れて意訳するとこんな感じです。間違ってたらご指摘ください(^^;

=======================================================================
派生:「条件式(If-Then)」
 If:
  @OFFSET(年月ID,3) /= undef

#もし「年月ID」フィールドで3つ前のレコードがヌル値でなかったら
 Then:
  @MEAN(オーガニック検索_Sum,3)

#そのときは、「オーガニック検索」フィールドにおける今のレコードを含む3レコード分の平均値を計算
 Else:
  undef

#Ifの条件に当てはまらない場合はヌル値を入れる
=======================================================================


3.「テーブル」ノードを配置し、計算結果を確認
 いちおう、「ページビュー」も同じ処理を行ったので、結果を確認してみましょう。計算対象となったフィールドは画面左側に見切れているので、検算されたい方は、「フィールド順序」ノードで順番を変えてください。


4.「フィールド作成」ノードから「@DIFF1」関数を利用する
 「3ヶ月移動平均ってずいぶんノンキね」と言われそうなので、直前の月と比べたくなりますね。
こんな時は「@DIFF1」関数が便利です。この関数は、FIELDの現在の値と前の値の差分を返してくれます。


 結果がこちら。オーガニック、ページビューともに直前にあるレコードとの差分を計算していますね。


5.「フィールド作成」ノードから「派生:カウント型」を利用する
 単純に「前月数値からマイナスになった場合にカウントアップ」をやってみます。
「フィールド作成」ノードで「派生:カウント型」を選択し、「@DIFF1」関数を使って前月数値との比較を行ってください。前月よりも数値が低い場合、カウント数値が+1、逆の場合ゼロクリアとなります。


  ページビューも設定した結果がこちら。前月分、下回らないように努力しまう^^;



6.「フィールド作成」ノードから「派生:ステート型」関数を利用する
 最後は、「前月数値からマイナスになった場合=前月マイナス」、逆は「前月プラス」とフラグ記載するケースです。「派生:ステート型」を選択した上で、下記のように記載してください。



その他:SPSS Moder関連エントリー


SPSS ModelerでJリーグスタッツ分析(「データ読み込み」編)
 http://sapporomkt.blogspot.jp/2016/04/spss-modelerj.html

SPSS ModelerでJリーグスタッツ分析(「フィールド操作」編:前編)
http://sapporomkt.blogspot.jp/2016/04/spss-modelerj_23.html

SPSS ModelerでJリーグスタッツ分析(「フィールド操作」編:後編)
http://sapporomkt.blogspot.jp/2016/04/spss-modelerj_90.html

SPSS ModelerでJリーグスタッツ分析~得失点をサクっとグラフ化
 http://sapporomkt.blogspot.jp/2016/04/spss-modelerj_24.html

RESASの特許DB全件をSPSS Modelerでデータ分類してみた。
http://sapporomkt.blogspot.jp/2016/04/resasdbspss-modeler.html

SPSS ModelerでJリーグスタッツ分析~選手別走行距離のヒストグラム経由バンド分け
http://sapporomkt.blogspot.jp/2016/04/spss-modelerj_29.html

SPSS ModelerでWEBアクセス分析も出来ちゃう~時系列グラフ作成
http://sapporomkt.blogspot.jp/2016/04/spss-molerweb.html

0 件のコメント:

コメントを投稿