2016年5月3日火曜日

「SPSS Modeler」におけるデータ操作及びシーケンスデータの取り扱いまとめ

 ここまで全8回、「SPSS Modeler」におけるデータ操作やシーケンスデータの取り扱いについて記載したのでまとめてみました(「タイトル及びリンク」をクリックすると、該当エントリーのタブが開きます)

 次回からは、複数のデータをくっつけてゴニョゴニョしてみます。

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

 
回数 タイトル及びリンク 概要
第1回 SPSS ModelerでJリーグスタッツ分析(「データ読み込み」編) 「第1回Jリーグトラッキングデータコンテスト」をModelerで「Excel」ノードから読み込ませ、「データ型」「フィルター」ノード等の初歩的な使い方を記載。
第2回 SPSS ModelerでJリーグスタッツ分析(「フィールド操作」編:前編) 「フィールド」操作の基礎と、「式ビルダー」の使い方を記載。
第3回 SPSS ModelerでJリーグスタッツ分析(「フィールド操作」編:後編) 前編に引き続き、「式ビルダー」の使い方を説明。新規フィールド作成における6つの方法等も記載。
第4回 SPSS ModelerでJリーグスタッツ分析~得失点をサクっとグラフ化 複数フィールドに同じ処理が可能な「グローバル」を紹介。「グラフボード」ノードを使い、各Jリーグチームの散布図も作成。
第5回 RESASの特許DB全件をSPSS Modelerでデータ分類してみた。 RESAS(リーサス:地域経済分析システム)の特許DBを読み込ませてデータ分類をの基礎を記載。「可変長ファイル」「データ検査」ノード等、大きなデータを扱う際のノードも説明。
第6回 SPSS ModelerでJリーグスタッツ分析~選手別走行距離のヒストグラム経由バンド分け 「ヒストグラム」や「棒グラフ」ノードからバンド幅をGUIで指定する方法を記載。
第7回 SPSS ModelerでWEBアクセス分析も出来ちゃう~時系列グラフ作成 当ブログのアクセスデータを用い、「日付及び時間関数」などを使いながら時系列グラフを作成。
第8回 SPSS ModelerでWEBアクセス分析も出来ちゃう~シーケンス関数 前回と同じデータを用い、時系列分析で便利な「シーケンス関数」の利用方法を記載。

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

2016年4月30日土曜日

SPSS ModelerでWEBアクセス分析も出来ちゃう~時系列グラフ作成

 前回はSPSS Modelerを使ってJスタッツデータにおける選手別走行距離のデータ操作を行いました。

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

 今回は、私のブログ(Sapporo Marketing Blog)に設置したGoogle Analytics(GA)のアクセスデータを使って時系列グラフの作成にトライしてみます。

 下記は、私のGAカスタムレポート画面です。ディメンションは「日付」を使いました。他のディメンションデータと組み合わせて分析すると、更に深い分析が出来そうですね。



※アクセスデータを取得するためには、Google Analyticsの「カスタムレポート」機能を使う必要があります。普段、あまり使わない機能かもしれませんが、意外と簡単なので下記エントリーをご覧になりながら試してみてください。
※もし、当エントリー手順をそのままなぞりたい方は、知人であればアクセスデータを差し上げるのでお声がけください。

「Watson」先生に、AdSenseビンボーの理由を聞いてみた・・・
http://sapporomkt.blogspot.jp/2016/01/watsonadsense.html

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

時系列グラフの作成手順


1.「可変長ファイル」ノードを配置
 「入力」パレットから「可変長ファイル」ノードを配置し、GAアクセスデータを読み込んでください。ワークシートは2枚目のシート(データセット1)に入っていますのでご留意ください。 

 なお、GAアクセスデータを出力した直後は、各フィールドの合計値が一番下のレコードに入っているので、事前にExcel上で削除しておいた方が楽です。



2.「データ検査」ノードを配置
  「出力」パレットから「データ検査」ノードを配置し、データ内容をチェックしてください。まぁ、400レコード以上あるとはいえ、GAから吐き出したデータなので、不要かもしれませんが、習慣として。


3.「ソート」ノードを配置
 「レコード設定」パレットから「ソート」ノードを配置し、下記のように「日付」でソートしてください。


4.「フィールド作成」ノードを配置(datetime_weekday用)
 SPSS Modelerには時系列分析に便利な関数が数多くあります。「曜日効果」の分析用に日付に対応する曜日データが欲しい場合、下記のようにすると、曜日に該当する数値を得ることが出来ます。

datetime_weekday(日付)
※戻り値は1(日曜)~7 で返します。




5.「フィールド作成」ノードを配置(datetime_day_short_name用)
 1~7の数値でも理解できなくはないのですが、他の方との共同作業などにはちょっと不便ですね。
下記関数を使うと1~7に該当する曜日の短縮形を日本語で返してくれて便利です。

datetime_day_short_name('曜日(数値)') 
※戻り値は日(1)~土 で返します。


 プレビューモードで確認すると、下記のように表示されていると思います。


 ここまでのストリームです。「データ型」ノードは各フィールドの小数点表示修正のために使ったのでマストではありません。


6.「フィールド順序」ノードを配置
 「フィールド設定」ノードから「フィールド順序」を配置し、下記のようにフィールドの並びを変えました(上記5は「テーブル」ノードで一時的に並び替えたものなので)。この方が見やすくていいですよね。


7.「グラフボード」ノードを配置
 「グラフ作成」パレットから「グラフボード」ノードを配置し、「基本」でページビューを選び、「ヒストグラム」を選んだ上で、「詳細」タブで「オプションの外観→色→曜日」を選択してください。



 「OK」を押すと、下記のようなグラフになります。私のブログは土日でPVがあまり稼げていないようですね。スイーツに関することも書きますが、基本はマーケティングやデータ分析に関するエントリーが多いので、ビジネスモードでない日は反応が鈍くなるのでしょうか。



 8.「レコード集計」ノードを配置
「レコード設定」パレットから「レコード集計」ノードを配置し、下記のように選択してください。


 9.「時系列グラフ」ノードを配置
  ここまでの処理で、月別のアクセス数データを利用できるようになっているので、「グラフ作成」パレットから「時系列グラフ」ノードを配置してグラフ化しましょう。



 「ページビュー」数と「オーガニック検索」数がほとんど同じ形になっていますね。以前、同じデータをWatson AnalyticsでPredict(予測)にかけたのですが、もっともページビューと相関係数が高かったのは「オーガニック検索」数でした。

 また、昨年10月頃、突発的にオーガニック検索を集めたエントリーがあったのですが、それ以来同じパターンがないことも見て取れますね。 

 

 最後に今回の全体ストリームを掲載します。次回はもう少し細かくデータを見ていこうと思います。



その他: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リーグスタッツ分析~得失点をサクっとグラフ化


RESASの特許DB全件をSPSS Modelerでデータ分類してみた。 

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

「地方人口ビジョン及び地方版総合戦略の策定状況」が結構・・・

 平成28年4月19日、「まち・ひと・しごと創生本部事務局」から「地方人口ビジョン及び地方版総合戦略の策定状況」という資料が公開されました。

http://www.kantei.go.jp/jp/singi/sousei/pdf/h28-04-19-sakuteijoukyou.pdf

 内容はタイトルそのままなのですが、さらっと記載された数表をしっかりみると結構驚きです。
まず、左側の「地方人口ビジョン」ですが、現在の各自体における人口構成や動態を分析し、当該エリアにおける将来人口ビジョンを立てるといった作業です。

(地方創生)「地方人口ビジョン」に関する人口動向分析・将来人口推計方法
http://sapporomkt.blogspot.jp/2015/03/blog-post_7.html


 RESAS(リーサス:地域経済分析システム)がリリースされてから、当該作業はかなり楽になったと思われますが、 それでも〆切ギリギリの2016年3月末の策定になった市区町村が「44.8%」もいることに驚きです。




 おそらく、「地方版総合戦略」効果も踏まえた「地方人口ビジョン」といった内容になるため、こちらの策定作業に難儀された結果(市区町村における3月末策定:47.0%)がこの数字になったのかと思われます。

 確かに当ブログでも何度か「日本版DMO」や「CCRC」といった地方創生の主だった施策について書かせてもらいましたが、こちらのオーガニック検索が2016年1~3月にかけて妙に多かったのも頷けます(たぶん、ご苦労されているのでしょうね・・・)

地方創生に関する他のエントリー


<DMO参考ページ>
次の地方創生キーワードはこれ!「日本版BIDを含むエリアマネジメント」とは?http://sapporomkt.blogspot.jp/2016/07/bid.html

地方創生の新たなキーワード「日本版DMO」って知ってる?
http://sapporomkt.blogspot.jp/2015/06/dmo.html

世界のDMO~「アルベルゴ・ディフーゾ」って知ってる?
http://sapporomkt.blogspot.jp/2015/09/dmo_12.html

イタリア発のDMO~「チッタスロー」運動ってご存知?
http://sapporomkt.blogspot.jp/2015/09/dmo_13.html

日本版DMO~「美しい村連合」について調べてみた。
http://sapporomkt.blogspot.jp/2015/09/dmo.html

「日本版DMO」設立が地方自治体でプチブレイク?~地方創生先行型の交付対象事業
http://sapporomkt.blogspot.jp/2015/11/dmo.html

<CCRC参考ページ>
(地方創生)「日本版CCRC」に関する調査報告
http://sapporomkt.blogspot.jp/2015/05/ccrc.html

2016年4月29日金曜日

SPSS ModelerでJリーグスタッツ分析~選手別走行距離のヒストグラム経由バンド分け

 前回は、地方創生における重要システムであるRESAS(リーサス:地域経済分析システム)の特許データをSPSS Modelerに読み込ませましたが、今回は再びJリーグスタッツデータに戻ります。

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

 Jリーグスタッツデータの中には、選手別の全試合分走行距離データが5,500レコード以上含まれています。今回は、当データをもとにレコード集計からバンド分けまでやってみたいと思います。
※今回エントリーは過去勉強したことの復習も兼ねているため、前半は読み飛ばして頂いて結構かと思います。

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

 

慣れたら簡単、ヒストグラム経由のバンド分け


1.「可変長ファイル」ノードの配置
 「入力」パレットから「可変長ファイル」ノードを配置し、Excelファイルを読み込ませてください。
元ファイルは複数シートあるため、「ワークシートを選択」で読み込ませるシートを選択してください。
  
  
 
2.「データ検査」ノードを配置
 結構なレコード数なので、念のためデータ内容を確認しましょう。
「出力」パレットから「データ検査」ノードを配置して、データチェックしてください。



 当画面や欠損値の結果も特に問題なしでした。
※集計フィールドで欠損値(数値以外の値、または$null$)を含むレコードは、無視され計算に含まれませんが、空白(ユーザー定義の欠損値)は集計に含まれるのでご注意ください。
集計前に「置換」ノードで$null$に置換しておきましょう。



3.「レコード集計」ノードを配置
 当データは全節(全試合)の全選手の走行距離データが別レコードに入っているため、まずは、選手名をキーにしてレコード集計をかけたいと思います。

 「レコード設定」パレットから「レコード集計」ノードを配置してください。



「キーフィールド」で「選手名」、「集計フィールド」で「走行距離(km)」と「スプリント回数」を選択し、合計値を算出しましょう。



4.「ソート」ノードを配置
 「レコード設定」パレットから「ソート」ノードを配置し、下記のように設定してください。



5.「ヒストグラム」ノードを配置
「グラフ作成」パレットから「ヒストグラム」ノードを配置してください。


 全節の走行距離が0km近辺の選手が多いですね。後々、この部分を除外して作業することもありえるので、今のうちに分類したいところです。

  グラフの表示メニューから「インタラクティブ」を選択した上で「」マークを選ぶと、下記画像のように自分の好きなバンド範囲を指定することが出来ます。

 バンド範囲の指定が終わりましたら、「生成」メニューから「バンドのフィールド作成ノード」を選択し、当画面を閉じてください。


6.「バンド(フィールド作成)」ノードをつなげる
 ストリームの中に「バンド」が置かれているので、既存ストリームにつなげてください。
中身を開くと、下記のように先ほど指定したバンド幅に合わせて値の範囲が設定されています。


 一番右側のフィールドにバンドが反映されていますね。もちろん、手入力で修正することも可能です。以前のエントリーでご紹介した「データ分類」ノードでも同様の処理は出来ますが、このやり方の方が楽チンですね。

 ちなみに、2015年シーズンの走行距離No.1は「岩上雄三」選手でした。ただひとり200kmの大台を突破した同選手は、同シーズン12月に松本山雅FCから大宮アルティージャに完全移籍されました。今後の活躍も期待大ですね!^^


<追記>
 上記バンドはバンド2以上はほぼ均等でバンド形成したので不要なのですが、仮にバンド1~3をまとめたいと思ったとします。

7.「バンド(フィールド作成)」ノードに「棒グラフ」ノードをつなげる
 先ほどバンド生成用に配置した「フィールド作成」ノードに「グラフ作成」パレットから「棒グラフ」ノードを配置し、「バンド」につなげます。

 グラフを出力すると、下記のようになるので、「編集メニュー」から「グループ化」を選択します。
グループ化したいバンドをまとめる指示を行ってください。ちなみに、単一のバンドでも同じようにグループ化を繰り返す必要があります。

 全バンドを編集した後、「生成」メニューから「データ分類ノード(グループ)」を選択すると、ストリーム上に「生成」が配置されます。


 先ほど指定した内容で新しいバンドが生成されていることがわかりますね。


その他: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でデータ分類してみた。

2016年4月28日木曜日

北見市民に愛され続けられている、「大丸」のカステラは絶品。

 私の実家は北海道北見市にあります。
場所ご存知ない方のために補足しますと、道東にある人口10万人規模の市でして、北海道では一番広い市なのですよ。

 詳細はウィキってくださいませ。

北見市(Wikipedia)
 

大丸の「カステラ」を激しくオススメしたい。


 「大丸」といっても百貨店ではありません。
北見市民なら誰でも知っている銘菓店です。北見市商店街の一角にありますが、いつも買い物客のクルマが止まっていますし、中心部に近いのですぐにわかると思います。


 店内の様子はこんな感じです。歴史ある名店ですが、入りにくい感じもしないところも好きですね。



カステラが一番有名なものの、洋菓子やケーキ等もあるので、お子さん連れでも重宝すると思います。また、こちらも北見市民の中で認知度高い銘菓「ほっちゃれ」もズラーっとあります。
見た目の物珍しさもあるのか、本州のお土産として持っていくと予想以上に喜ばれます。



 でも、やっぱりオススメはカステラ!
サイズは詰め合わせセット等もありますので、フォーマルな贈り物にも使えますね。


 ちなみに、お店の近くには同店が運営するフリースペースがあり、無料でくつろげる憩いの場となっています。シャッター街化している北見商店街ですが、大丸さんのこのような心意気は素敵ですね。