Power BI で楽々データ分析


はじめに

いきなりですが、なんとビッグデータにフォーカスした雑誌まで創刊する時代なようです。

日経ビッグデータ創刊
http://special.nikkeibp.co.jp/as/201401/bigdata/

個人的には「ビッグデータ (big data)」というキーワードは本当に好きではないのですが、その理由は名称にあります。”big data” という名称から、ついつい量的に BIG なデータの意味だと捉えがちです。実際に、この記事の執筆時点で Wikipedia には、ビッグデータとは『市販されているデータベース管理ツールや従来のデータ処理アプリケーションで処理することが困難なほど巨大で複雑なデータ集合の集積物』と書かれています。

本当に、商用 RDBMS で処理できない量のデータなんてあるのでしょうかね? 量的に BIG 以外の意味でビッグデータと言うケースもありますが、その場合には、「スーパーデータ」、「ニューデータ」や「ニュージェネデータ」のような「ビッグデータ」以外の用語を利用してもらえないかと心から願っています。
というわけで、BIG だろうが SMALL だろうが関係ない話をしたいので、ここでは外部の引用などを除いて「データ」と書きます。ビッグデータが好きな人はビッグデータと読み替えてください。

閑話休題

PRESIDENT Online のサイトにセブン&アイさんのインタビューが掲載されているように、最近では、本当に大切なことを理解されている企業や、そういった企業が存在することの情報も出てきています。

なぜ、セブンはビッグデータ分析する他社より日販が高いのか【1】
http://president.jp/articles/-/11579

他チェーンと12万円以上の平均日販の差が生まれるのは、アルバイトやパートのスタッフに至るまで、仮説・検証を徹底させ、1人ひとりがデータを読む力を持っていることが、大きな原動力になっているのです。

単にビッグデータの分析だけで勝てるわけではなく、個々の社員が『データを読む力』、つまり、BIG か SMALL かは関係なく「データ」を分析する力を持っているか、企業は個々の社員が如何に分析に必要な「データ」を提供できるか、が重要になることがわかります。

そこで、私を含めた一般社員がデータの分析を行いたいわけですが、「面倒なことはしたくないし、何したらいいかわからない」と行き詰りそうですが、まずは、「一般社員である私個人がこんなデータを簡単に確認できたら仕事に役立つなぁ」と考えるところから始めます。

何をやるか

今回は、私個人が私的に SharePoint 関連の情報発信/情報共有のために利用している Facebook ページに、私がいつ (= 何時頃に) よく投稿しているのかをグラフで見ることで、生活リズムとそれによる通常業務への影響がないかを確認してみることにします。

Facebook ページを管理している人にはご存知の通り、管理者向けには「インサイト」というものがあり、時系列で投稿のリーチなどが確認できるのですが、「何時に投稿したか」のように、今回、私が必要としている切り口では確認できません。その代り、Facebook には「Graph API」と呼ばれる投稿データにアクセスする API があるので、それでデータを取得して分析 (= 集計) してしまおう、というわけです。

何を使うか

やりたいことが決まったので、何を利用するを考えるわけですが、ここでは、記事執筆時点ではプレビュー版ですが、Power BI for Office 365 とします。これによって、以下のような特徴が活かせます。

  • データの分析といえば使い慣れた Excel ということで、Microsoft Office 2013 Professional Edition または Office 365 ProPlus を準備します。
  • 「Graph API なんてわからない!」と言う人も問題ありません。Power Query には、標準で Graph API を利用してデータを取得してくれる機能が備わっています。
  • 分析してカッコいいグラフを表示するために Excel 2013 のアドイン機能である Power View を利用します。

とうことで、以下の手順で環境の準備を行ってください。

  1. Excel 2013 を利用可能な状態にします
  2. こちらの手順に従って、Power View を利用可能にします
  3. ここから Power Query をダウンロードして、インストールします

Power Query でデータを取得

それでは、Power Query で Facebook ページからデータを取得しましょう。

  1. Excel を開いて、[POWER QUERY] タブの [その他のソースから] – [Facebook から] を選択します
    image
  2. 取得するデータの種類を聞かれるので、Facebook ページの名前と [種類] に [フィード] を選択します
    image
  3. Facebook へのサインインが必要ですので、Facebook ページ管理者のログイン情報を入力して、Microsoft Power Query for Excel による利用を許可してください
    image
    image
  4. Power Query のクエリ エディターの画面が表示されます。この時点でデータが取得できていることがわかりますので、[名前] に適当な名称 (今回は「SharePointNow」) を記入します
    image
  5. 取得したデータのヘッダーの名前を変更したり、投稿日時の情報から「時間」の情報だけを取得したり、といった取得内容の加工を行います。
    Excel でデータを取得した後に加工してもいいのですが、データは時間と共に動的に変化しますので、取得時の取得方法を設定しておけば、データが増えても再取得するだけで済むので、こちらの方がいいでしょう。
    今回は、若干解説を端折りますが、以下の通りに加工しました。下線部分がそれぞれのステップ (= 処理) 名です。
    RemovedColumns : 今回不要な列 (“object_link”, “from”, “privacy”, “actions”, “shares”, “caption”, “icon”, “updated_time”, “likes”, “application”, “source”, “message_tags”, “to”, “comments”, “object_id”, “properties”, “story_tags”, “story”, “status_type”, “picture”) の削除
    ChangedType : created_time 列の型を「日付/時刻/タイムゾーン」に変更
    InsertedCustom : 式を「Time.Hour(DateTimeZone.ToLocal([created_time]))」とする [カスタム列の挿入] を実施
    ChangedType1 : 追加したカスタム列の型を「数値」に変更
    RenamedColumns : 追加したカスタム列の名前を「投稿時間」に、type 列の名前を「投稿種別」に変更
    InsertedCustom1 : 式を「Date.From(DateTimeZone.ToLocal([created_time]))」とする [カスタム列の挿入] を実施
    RenamedColumns1 : 追加したカスタム列の名前を「投稿年月」に変更
    ChangedType2 : 投稿年月列の型を「日付」に変更
    image

Power View でグラフを表示

以下のような手順で、Power Query で取得および加工したデータを Power View でグラフ表示します。

  1. 新しいシートで、[挿入] タブの [レポート] – [パワー ビュー] を選択します
    image
  2. タイトル (今回は「Facebook ページへの投稿時間」) を入力します
  3. Power View フィールドで、[Σ 値] と [軸] に [投稿時間]、[凡例] に [投稿種別] をドラッグ アンド ドロップし、[Σ 値] の [投稿時間] をクリックして [カウント (空白なし)] を、[軸] の [投稿時間] をクリックして [データのないアイテムの表示] を選択します
  4. Power View フィールドの [投稿年月] をクリックして、[ビュー フィルターに追加] を選択します

ここまでの操作で、以下のようなグラフが完成です!

image

分析結果

実は予想通りではあるのですが、参加者に見てもらうためということから、午後によく投稿しています。

気づかされた点として、23~1 時台の投稿が多いことが気になります。帰宅後の投稿だと思いますが、しっかり就寝するべきですね。3~4 時台の投稿って、何を考えているのでしょうか。。。

現実には…

まず、上記には Power Query のステップは簡単に記載していますが、実際には Power View で良いグラフを表示するために何度も変更しています。現実も同じで、決して一回で完璧な分析が出来るわけではないことは理解していただいた方がいいでしょう。

また、今回は、自分の希望に適っているとはいえ、題材はあくまでもサンプルでしかありません。現実には以下のように役割ごとにやらなければならない可能性のある面倒なことがあります。製品やサービスででカバーできるものもあれば、企業文化に関わるところもありますので、後者はお手伝いできることもあるとは思いますが、最後には各企業でやるしかありません。

  1. IT 管理部門 : 絶対データは何処かにあるはずですので、如何にそれらの多岐に渡るデータをより多くの社員が取得できるように公開するか考えてください。Power BI for Office 365 を利用する場合、データの関連付けは一般社員が勝手にやるので、公開することを最優先にしましょう。
  2. システム インテグレーター : データを取得して再利用できないシステムの構築や提案は今後減らすようにしましょう。
  3. 経営層 : 最低限のコンプライアンスの順守はあるとは思いますが、如何にデータを企業内で再利用できるようにするのか検討すべきです。
  4. 一般社員 : Excel を操作でき、サンプルの Excel ファイルを自分の欲しい情報の取得や表示に変えられる程度の情報リテラシーは持ちましょう。また、IT 管理部門や経営層に対して、随時、「このデータがあれば、こんなデータ分析が出来るのに!」というフィードバックを行うことも重要でしょう。
  5. 一般社員の中で比較的 IT リテラシーの高い人 (パワー ユーザー) : 簡単でもいいのでデータを分析したサンプルを、他の一般社員の方々と共有しましょう。Power BI for Office 365 の「Power BI サイト」に Excel ファイルを置けば楽々共有です。

経験上、考えているだけでは永久に利用できるようになりませんので、まずはやってみるです。

参考情報

Power Query や Power View を含めた Power BI for Office 365 に関しては、以下のサイトをご確認ください。

Power BI Preview の入手 (英語)
http://powerbi.com

Power BI for Office 365 – 概要と学習
http://office.microsoft.com/ja-jp/excel-help/HA104103581.aspx

Microsoft Power Query for Excel のヘルプ
http://office.microsoft.com/ja-jp/excel-help/HA104003813.aspx

Power Query の式について
http://office.microsoft.com/ja-jp/excel-help/learn-about-data-explorer-formulas-HA104003958.aspx

Power View: データの調査、ビジュアル化、プレゼンテーション
http://office.microsoft.com/ja-jp/excel-help/HA102835634.aspx

また、YouTube の Office2013j チャネルには、早くも日本語で Power BI for Office 365 の動画が公開されています。今回の簡単なサンプル以上の素晴らしい動画が観れますので、是非、確認してみてください。

http://www.youtube.com/channel/UCJZA1fD97NyURw4Tuokqi1w

広告