読者です 読者をやめる 読者になる 読者になる

kondoumh のブログ

- とあるソフトウェアエンジニアのめったに更新されないブログ -

BI記事第2弾公開です。

豆蔵ソフト工学ラボでBI入門記事第2回を公開しました。前の記事は4月に書いたのですが、忙しさにかまけてもう12月になってしまいました。
今回は、OLAPの基礎概念の解説です。Excelのピボットで販売データの分析するというシナリオで「スライシング」、「ダイシング」、「ドリルダウン」、「ドリルスルー」の概念を説明しました。説明のために、架空のドラッグストアの販売データをプログラムで生成しました。
集合知プログラミング」にあるような Web2.0 的なデータも Web API で取得できたりするのですが、企業の情シス部員や業務システム開発者が想定読者なので、もう少し業務をイメージしやすいデータにしたかったのです。

わざとらしいぐらいに傾向があるデータを作りました。

  • 商業地区では20-50 の女性客が多く、住宅地域では男性客と10代, 60代の女性が多い
  • 女性客は化粧品 サプリメントの購入が多い
  • 男性客はサプリメント 栄養ドリンクの購入が多い
  • 朝と晩は男性客が多い 昼は女性客が多い
  • 女性の方が客単価が高い、バーゲンの時の単価が上がりやすい

とか、非常に適当なのですが、乱数とデータセットを使って傾向をでっち上げました。これの傾向を Excel のピボット分析で発見するというシナリオです。


商業地区と住宅地区での時間帯による来客数の比較


男性客と女性客でバーゲン時と通常時の客単価の比較


男性客と女性客で購入商品のカテゴリーを比較


店舗別にバーゲン時と通常時の客単価を比較

今回は、記事執筆の方に時間を費やしたのでろくに設計もせず、ほとんど「売上」クラスとか Enum だけで C# のプログラムを書いたのですが、「顧客」「商品」「店舗」「購入」などをちゃんとモデル化し、顧客のペルソナに基づいたインスタンスを作成して購買行動をシミュレーションしたら面白いだろうなと思いました。今後、データマイニングの記事なんかを書いてより複雑な購買行動のデータを解析することを考えていますので、こういうプログラムをちゃんと作ろうと思っています。