• facebook
  • twitter
  • rss

R Shinyをつかってデータドリブン型の意思決定を加速させる!(導入編)

 

今回は、特に以下の方々にオススメしたい情報の共有です。

  • 各種KPI等のダッシュボードの導入を検討していて、とりあえず今すぐ無料でライトにやってみたいデータ分析担当の方。
  • レポートの共有方法に悩むアナリスト、マーケッター、データサイエンティストの方。
  • 顧客ターゲティング等予測モデルを活用した施策を仕組み化したいが、フロントエンドのエンジニアリング部分を開発するエンジニアリソースが無くて困っている方。

Webサービスの業界にも浸透しつつあるR

Rは、もともと、AT&Tのベル研究所にて開発されたS言語をベースとするオープンソースの統計解析や機械学習に特化したプログラミング言語です。

世界中の研究者による最先端のアカデミックの成果がRのライブラリとして、日々、公表、アップデートされ、誰もが無料で最新の統計解析や機械学習の手法を一次ソースとして利用することができます。

Webサービスの業界での活用が注目され始めたのは、10年程前に海外での事例(*1)が目立つようになってからの印象ですが、ここ数年で急速に身近な存在になってきつつあります。

日本でも、ビッグデータ、データサイエンスブームもあいまって、最近では、統計の専門家やデータサイエンティストでなくても、Web系のアナリストやマーケッターの方の中にも、Rを業務で使ったことがあるという方も増えてきています。

Web上には日本語の情報が多く転がっていますし、書店でも「Rによる・・・」といった書籍が、コンピュータ関連書籍だけなく、ビジネス関連書籍として平積みされているのも、見かけるようになりました。

レポートの共有は大きな課題の一つ

そういったデータ分析を業務として行う方にとって、分析結果の共有は、必ず直面する悩みの種ではないでしょうか。特に、Web業界のようにショート・スパンのPDCAサイクルが求められる環境下において、他者への結果の共有とその即時性は、分析担当者にとって大きな課題の一つでしょう。

顧客ターゲティングも、現場のマーケティング担当者が対応できるレベルに仕組み化したい

また、データサイエンティストが得意とする場面の典型例として、webサイトの閲覧履歴や商品の購買履歴等の過去データに基づいて予測モデルを構築し、顧客毎の嗜好性、次の来店タイミングや離反確率、LTV(生涯顧客価値)等を予測し、それらをCRMに活用するといった顧客ベースでのターゲティングを行う施策があります。

通常そういった施策を行う場合には、顧客の過去の各種行動履歴から、なんらかのスコアリングを行った結果の顧客リストが必要となります。試験的な実施であれば、データサイエンティストが、データベースからの対象の抽出、スコアリング、リスト作成まで全てを担当することもあるでしょう。

一方で、施策が日常的に行われるようになってくると、そのような都度的なオペレーションは、現場のマーケティング担当者にとっても、データサイエンティストにとっても、双方で煩雑な思いをします。

現場のマーケティング担当者が、スケジュールに合わせて、自由に条件を設定し、スコアリングされた結果の顧客リストを好きなタイミングで入手できるように仕組み化するといった、ツールの開発を検討することもあるでしょう。

エンジニアのリソースも必要??まだ、効果もわからないのにコストをかけられない。分析担当者がライトに作れないか?

導入後に自社固有のチューニングの必要が殆どなかったり、予算的に余裕がある場合には、さくっと有償のサービスに頼ることもありますが、そういったツールを内製する場合には、バックエンドの予測モデルの構築、スコアリング部分だけでなく、エンドユーザーである現場のマーケティング担当者が、操作できるインターフェース部分の開発が必要になります。

予測モデル構築部分については、いわゆるモデリング業務を担当するデータサイエンティストが、設計開発を担当する場合もありますが、一方で、インターフェース部分の開発に必要なHTML/CSS/JavaScript等のweb系のフロントエンドのエンジニアリング部分の知識と経験をもっていることは稀なため、現実的には、そういった部分を開発するエンジニアのリソースが必要になってきます。

ところが、現実の状況を見ると、メインのプロダクト自体の開発でエンジニアリソースが逼迫し、そういった仕組みの充実にリソースを割く余裕がなかったり、仮にリソースを割けたとしても、スケジュールの調整をせざるを得ず、なかなかスピード感が出なかったりと、もどかしい思いをしたことがある方もいるのではないでしょうか。

今回は、レポーティング業務や顧客ターゲティング等の様々な業務をエンジニアリソースなく、簡単なインターフェース部分の開発を含めて自動化することを可能とし、そういった方々の日々の業務への強力な助けとなりうるRのライブラリShinyのご紹介です。

Shinyとはなにか

Shiny は、Rの統合開発環境(IDE)のRStudioを開発したRStudio社が開発したインタラクティブなWebアプリケーションを作れるRのパッケージのひとつです。Rを立ち上げて、install.packages(‘shiny’)でインストールができて、library(shiny)でライブラリを使うことができます。

また、同じくRStudio社のshinydashboadというパッケージを追加インストールすれば、Shinyを使ったダッシュボードがさらに簡単に作れます。

Shinyの何が良いか

それなりの見た目のWebアプリケーションを簡単に開発できる

Rである程度のプログラミングができれば、HTML/CSS/JavaScript等のweb系のエンジニアリングの知識がなくても、エンジニアリソースを使うことなく、自ら、TwitterBootstrapベースのそれなりにかっこいい見た目のWebアプリケーションを作ることができます。

しかも、慣れてしまえばとても簡単なので、細かいところにこだわらず、複雑なことをしようとしなければ、フロントエンジニアの方に、似たようなwebアプリケーションをJavaScriptでゼロから開発してもらうのと比べると、ともすると、その仕様を説明する時間で、さくっと分析担当者自身で簡単なWebアプリケーションを作れます。

インタラクティブな操作ができるレポーティングが可能

複数のデータベースからデータを抽出、集計し、エクセルで加工の上、パワーポイントでレポートを作成し、報告したら各種前提条件の変更があり、集計作業からまたやり直し、なんてこと、あるあるですよね。Shinyを使えば、ブラウザ上の入力で、興味のある変数を選択したり、パラメータの値を動かすと、その結果がすぐにインタラクティブに表示され、その変化を見ながら、変数の取捨選択やパラメータの値の調整や行うことができます。

Webアプリケーションを共有してしまえば、分析結果をみたい人が、Rやデータ解析等の特別な知識や経験がなくても、ブラウザ上の設定を自由に操作して、好きな切り口や条件で、分析結果をみることができます。

定型レポートの自動化が可能

一過性のアドホックな分析ではある程度しかたないケースもありますが、定型レポートで、毎回同じ集計作業をして、レポーティングするのは面倒ですよね。サーバーを立てて、Shiny Serverを使えば、レポートを公開することもできるので、URLを教えるだけで、他者へのレポートの共有ができます。

RのRMySQLライブラリを用いて、MySQLと組み合わせれば、データベースからの最新の情報の集計結果を表示するようなKPIのダッシュボードを簡単に作成することができます。自動化によって、単純な集計等のルーチンから解き放たれ、より高度で本質的なタスクにリソースを使うことができるでしょう。

無料で使える

とりあえず、ライトにダッシュボードを導入するにはもってこいです。Shiny Server用のサーバー代は必要になるかもしれませんが、その程度なので、特に低予算でシンプルにクイックにやりたいケースや、特に、スタートアップのように節約をしたい場合や、予算が無くお金がかけられない場合にも最適です。

レスポンシブなWebデザインに対応で、スマホやタブレットでもレイアウトを調整

このご時世、出先等でスマホやタブレットで、内容を確認することは、ごく当たり前の行動になりつつあります。特に意識せずとも、スマホでも見られるようになっています。

Rの各種統計解析や機械学習のライブラリをそのまま使える

Rのライブラリのひとつであるため、各種、他のRの統計解析手法や機械学習手法のライブラリをそのまま自在に使えます。ShinyのUIを使って、ブラウザから変数をポチポチ選択し、それらの変数を用いてRの機械学習のライブラリにて予測モデルを構築。さらに予測した結果のリストをShinyのUIでインタラクティブに表示し、ブラウザ上に設置したボタンを押せば、csvでリストをダウンロードするといったwebアプリケーションを作ることができます。

最後に

当たり前ではありますが、データ分析は、その結果が意思決定に寄与して初めて有益な情報となります。 分析結果が理解しやすく、また、自由自在に条件や切り口を変えて分析できる環境を提供することができれば、より素早く深い示唆を意思決定者に届けることができます。

今回ご紹介したのは、一例ではありますが、データ分析結果の共有に悩んでいる分析担当者の方々に少しでも参考になればと思います。

関連記事