SAS Japan
活用事例からデータ分析のテクニックまで、SAS Japanが解き明かすアナリティクスの全て反省&改善プラン中 SAS JapanのWebサイトにある「機械学習」特集ページは、サーチ・エンジンやバナー広告などから日々、多くの方々にご覧いただいています。昨年後半からは爆発的に訪問者数が増えており、機械学習への関心の高まりを感じている一方で、弊社としては実はこのページは改善が必要と考えています。なぜなら、機械学習の特徴だけが書かれていて、それをどのように利用すれば皆様のビジネス課題を解決できるか、という次のステップをご案内していないからです。これまで、アナリティクスの世界に携わってきた方にとっては、最近バズワード的に使用され始めた感のある「機械学習」というキーワードの特徴が書かれているこのページを見ることで、「なんだざっくりえば、いつも使用している予測モデルのことか」とすっきりしますが、昨今のビッグデータや機械学習ブームで機械学習について突然学ぶ必要が生じた方々にとっては、あまり役立たなかったのではないかと反省中です。 昨今の機械学習ブームは、これからデータを活用してビジネスに役立てようとしている方には実は情報が不足していると感じています。新しいテクノロジーをどのようなプロセスで活用すれば良いのかという指南が不足しています。これは、それを以前から知っていたのに周知できていなかった弊社の努力不足でもあります。 今回は、少し長くなりますが、SASとしては、企業の経営課題をアナリティクスで解決するという視点から機械学習を活用するためのビジネスプロセスについての話をします。簡単に機械学習、予測、アナリティクスを定義した上で、一番大事な活用するためのビジネスプロセスについて、全貌を一気にご紹介します。 機械学習とは 機械学習についての一般的な見解については、また別途詳しくお伝えしたいと思います。ここでは簡単に統計解析、データマイニング、機械学習の違いから、機械学習を理解していただきます。何事も対象を理解するためには、対象そのものを詳細に記述するよりは、他と比較するほうが理解しやすいためです。 統計解析 標本データ(一部のサンプリングデータ)から母集団を推定することを主目的として使用される。限られたデータから世の中を理解したりモデル化するとも言える。 データマイニング 「鉱山から金塊を見つける」という直接的の意味のように、大量データから意味のあるパターンを発見することを目的とする。データからパターンを見出すため、後述の機械学習の学習フェーズそのものと重なるところが多い。 機械学習 既知のデータ、すなわち過去のデータからパターンを見出し、それを将来を予測することを目的に使用する。その目的から、従来は「予測モデル」という言葉で表されることが多かった。 実は、これらは使用している数学的な手法やアルゴリズムはほとんど同じです。もちろん各目的に対して適不適はありますが、まずは、総じて目的が異なるだけだと理解してください。例えば、伝統的な統計解析の手法を工夫しながらビッグデータに適用し予測モデルとして活用するケースもありますし、SASではデータマイニングの結果、使用したアルゴリズムと学習の結果をそのまま、予測モデルとして使用することが可能となります。また、コンピューターの性能向上に伴って脚光をあびるようになった手法もあります。 世の中を理解するためにデータを使用するところから、一歩進んで、その理解に基づいて、次に何が起こりそうなのかを予測し、ビジネスにおいて次に何をすべきかを決定していくといった使い方に変わってきたのです。昨今、機械学習アルゴリズムは多数ありますが、市民データサイエンティスト(Gartner 2015)の方は、その細かいアルゴリズムを理解するところからスタートするのではなく、何のために使用するのかをというビジネス上の目的からスタートすることを推奨します。細かいところは歴史的な流れと共に理解しないと本質がわからないこともあり、いきなり機械学習アルゴリズムの理解からスタートする方法は、学習方法としては非効率です。 アナリティクスにおける予測とは データを活用して統計解析やデータマイニング、機械学習といった手段を用いながら、ビジネスにおいてよりよい意思決定をする、言い換えれば、よりよいアクションを実施することをアナリティクスと言います。アナリティクスはその語源をたどると、不確実性を伴う将来に対して勇気を持って踏み出すと意味があります。データに基づいて意思決定をするということは不確実性、すなわち、確率にもとづいて行動することです。予測結果はどこまでいっても確率的にしか表されませんが、「より起こりやすい」ことを見出すことが可能です。これがよりよい意思決定につながります。 「より起こりやすい」ということを、すでにアナリティクスを実践している人々は、「予測精度が高い」と表現したりします。予測精度をあげることで、売り上げ向上やコスト削減の期待効果が大きくなります。それをわかりやすく表現すると、「予測精度を上げることで売り上げが向上する」となるわけです。将来は、(預言者でないかぎり)確率的にしか予測できないので、あえて表現していませんが、「予測」の裏には確率的な要素が常に含まれています。 チャーン分析やキャンペーンの反応率の分析などでは、ある顧客が解約しそうな・反応しそうな確率を算出するので、確率という考え方が理解しやすいと思います。このタイプを英語ではPredictionと言います。将来のある時点の状態を予測するタイプです。一方で、Forecastingというタイプがあり将来の一定期間の数や量を予測するタイプのものです。そのひとつ、需要予測の値も実は確率的な予測です。需要予測の場合には、予測値そのものの絶対値が注目されがちですが、その予測値がどの程度の確率の幅におさまるかを算出し、その確率の幅すなわち、リスクに対してどのように対処するかどうかが、本当はポイントになります。製品やサービスの特性に応じて、リードタイムを小さくしたり、あるいは確率の幅に応じた安全在庫を持ち、欠品率という顧客サービスレベルのコントロールに役立てます。需要予測のポイントは、予測値の絶対値をピタッと当てることではなく、この確率の幅を定量的に管理することだと言っても過言ではありません。在庫や輸送コストと顧客満足度とのトレードオフを扱う最適化問題でもあります。 企業が利用できるリソースには限りがあります。したがって、この確率の幅が無限大では意味がありません。つまり、100%的中する「0以上」という予測結果には意味がありません。制約のあるリソースで、効果を最大化する必要があります。したがって、この確率の幅を出来るだけ狭めることが重要になります。さらには、その作業にかける時間はすなわち意思決定の時間になりますので、予測結果を出すまでの時間が長ければ意思決定が遅れることになります。 「予測」というと、日本ではまだまだ十分に理解・活用されていないと感じます。市場動向の予測や売り上げ予測といった「参考資料」のようなものとしか位置づけていない定義も多く、それでは正しく理解していないだけでなく、価値をほとんど享受できていません。アナリティクスにおいては、予測結果は単なる「参考資料」ではなく、その予測結果に基づいて直接的に意思決定を行うためのものであるということがポイントです。「次にこういうアクションをするとこういう結果が得られるだろう」という将来の見込みを確率的に定量的に算出することがアナリティクスにおける「予測」です。アナリティクスで競争優位に立っている企業では、予測モデルに基づいたアクションの方が、従来の経験と勘に基づいていたときよりも、スピード・精度ともに勝っていることを証明しています。言い換えると、人の意思決定を自動化しています。自動化というと機械やシステムのみに適用されがちですが、例えば自動発注システムも、本来は人が発注数を決めるという人の意思決定を自動化しているように、日々の人のビジネス上の意思決定を自動化するという感覚がアナリティクスでは重要です。 実際には、コールセンターで人間が画面を見て予測結果に基づいて対応している例もあれば、オンラインストアのレコメンデーションや広告配信システムの様にシステムに予測モデルが組み込まれ、すなわち業務プロセスに組み込まれて意思決定が自動化されているケースもあります。 アナリティクス・ライフサイクル(簡潔版) SASでは、40年間アナリティクスで世界中の企業を支援してきました。その中で出来上がったベストプラクティスの一つに、「アナリティクス・ライフサイクル」というものがあります。これは、企業組織が機械学習すなわち予測分析を用いてアナリティクスを実践する、すなわち、データを活用してよりよい意思決定をすることで競争優位性を身につけるために実践すべきプロセスです。SAS主催イベント「ビッグデータ活用の新しいカタチ」(2015年12月8日開催)のデモンストレーションで紹介したサイクルは以下のようなものです。 このときには、簡潔性を重視したため、4つのプロセスだけで構成されています。 データマネージメント 必要なデータを収集・統合して必要な品質・形に変換する。昨今では、このプロセスをデータ・キュレーションと称することもあるようです。ご存知のとおり、全体のプロセスのうち約80%がこのプロセスに費やされていると言われています。下記のブログもご参照ください。 ブログ:アナリティクスの効果を最大化するデータマネージメント勘所 データの探索とビジュアライゼーション データの基本性質を確認したり、パターンや関連性などを見出し洞察を得る。近年、セルフサービスBIツールによるデータ探索が流行しています。操作性ばかりが注目されがちですが、実は、主観や仮説に基づく探索作業は網羅的ではないため、真の傾向や真の問題点の発見には方法としては十分ではありません。そういった主観に依存した視点の偏りを防ぎ網羅的な探索をするためには、統計的・数学的手法やデータマイニング手法が活躍します。以下のブログでは紹介していませんが、SASの探索・ビジュアライゼーションツールに統計解析やデータマイニング手法が含まれているのは、まさにそのためです。 ブログ:グラフ理論入門:ソーシャル・ネットワークの分析例 ブログ:SAS Visual Analyticsによるパス分析 分析と予測モデル開発 データマイニングや機械学習アルゴリズムを使用して、将来を確率的に予測する「モデル」を作成する。過去のデータを使用してパターン化(学習)するところは様々な数学的アルゴリズムが使用できますが、ソフトウェアがやってくれます。昨今は進化したソフトウェアでより簡単に精度の高いモデル開発が可能となっています。 ブログ:アナリティクスの産業革命-機械学習による自動化 業務への組み込み 作成した予測モデルを使用して意思決定、すなわちアクションを実践する。例えば、顧客スコアを算出しキャンペーンを実施したり、コールセンターでの応対を変えたり、レコメンデーションに役立てたり、不正な金融取引を検出したり、設備の異常を検知するなどの、意思決定プロセスに活用します。 このプロセスを素早くまわすこと、それは意思決定のスピードに直結することを意味します。また、データを適切に準備し、全件データを使って精緻な予測モデリングをすることで、精度の高い予測モデルを作ることができ、それはすなわちよりよい意思決定を意味します。スピードが増せばその分PDCAサイクルがたくさん回ることになるので、それは結果の質の向上につながります。したがって、アナリティクスのためのIT環境をアセスメントする際には、ビジネス上の価値の視点から、まず、このサイクルが効率的に・高速にまわせるかどうかということが評価の基準になります。 アナリティクス・ライフサイクル(詳細版) 実はアナリティクス初心者には前述の簡易版は適切ではありません。重要なプロセスが暗黙的になっているからです。弊社のアナリティクス・ライフサイクル、完全バージョンは以下のようになります。 今回取り上げたい重要なポイントは、 課題定義 まず最初にすべきことはデータ分析・予測モデルの活用で解決したいビジネス上の課題定義 精度評価・モニタリング
さて、今回ご紹介する例は、最近議論が活発な、「機械(コンピューター)が人間の作業を奪う(?)」お話です。 機械は人間から仕事(今回の例では、仕事ではなく娯楽と言ったほうが近いかもしれません)を奪ったことになるのでしょうか?それとも、真の楽しみを味わえるように、単に単純労働から開放してくれただけなのでしょうか? 昨今、人工知能がもたらす変化という文脈で行われている議論ですが、今回は、昔からある最適化アルゴリズムで、人間の仕事を奪います。皆さんでその意味を考えてみてください。 イギリスの諜報機関GCHQがクリスマスメッセージとして送った難解なパズルが公開されており、優秀な人たちを楽しませています。その第一問が、以下の「お絵かきロジック」です。日本でも一時期流行しました。イラストロジックなどとも言われ、私自身もトライした記憶があります。 このパズルそのものについては、他の情報源に頼って欲しいのですが、簡単に説明すると、それぞれのセルを黒か白で塗りつぶすパズルで、行と列に書かれている数字は、黒マスが連続している数を順番どおりに示している「手がかり」です。いくつかのセルはすでに黒く塗りつぶされていますが、それらはこのパズルの答えを一つに確定するために必要です。 一部の箇所は、それぞれの行や列の情報だけを見て解くことが可能です。例えば、7番目の行を見てみましょう。手がかりは、(7 1 1 1 1 1 7)です。すなわち、全部で 7 + 1 + 1 + 1 + 1 + 1 + 7 = 19 個の黒いセルが必要となり、最低ひとマスは間隔が空いていないといけないので、7個の固まりの間の個数を考慮すると、7-1=6 個の白マスが必要となります。この二つの数字を足すと、19 + 6 = 25 となり一行の列数とおなじ数にちょうどなります。したがって、この結果から直ちにこの行の全てがあきらかになります。 黒7, 白1, 黒1, 白1, ・・・ ついてきていますよね。 しかし、そうは簡単にいかない箇所のほうが多いでしょう。その場合には、手がかりから部分的にしか黒く塗りつぶせないことになります。例えば、一行目を見てください。ヒントから(7 + 3 + 1 + 1 + 7) + (5
変わ(る・るべき・れる)データマネージメント データ、さらにはビッグデータを使用して競争優位性を獲得しようとするにつれて、企業・組織はよりスピード感をもって、試行錯誤を繰り返す必要にせまられおり、データマネージメント戦略やアプローチについても従来とは異なる方法にシフトしつつあります。 これまでのアプローチ 従来のアプローチでは、まず、ビジネスユーザー部門が「問い」を決めた上で、IT部門が「問いへの答え」のためのインフラとデータを準備していました。例えば、「先月の地域別、製品別、チャネル別の売り上げはどうなっているか?」や、顧客へのアンケートに基づいて、「顧客は何を考えているか?」などです。このような過去や現状を把握するための「問い」は、ほとんどの企業・組織で共通している、基本的な業務プロセスを実行するために適した方法です。 この方法では、ユーザー部門が本当に欲しい答えを得るまでにはIT部門と何度もやり取りを繰り返す(Iteration)必要があります。その作業には数週間要するケースも少なくありません。ビジネスユーザーにとっては、事前に完璧な「問い」をシステム的な要件として定義することは困難であり、一方でIT部門は業務に対する理解が100%完全ではないためです。しかし、ひとたび、ITインフラやデータが用意されると、その後は、「決まりきった反復的な(Repeatable)」分析、すなわち現状を把握するための分析(これはAnalysisです)ビジネス・インテリジェンスという目的に使用されます。 アナリティクスおよびビッグデータ時代のアプローチ 新たな洞察の発見や予測モデルを作成し、よりよい意思決定やアクションを実践することを主目的とするアナリティクスにおいては、このプロセスが極端に言えば逆になります。まず、IT部門が収集したデータを蓄積する基盤を構築し、その後にビジネスユーザーがその基盤を利用して新しいアイディアや問いを探索するという順序です。この作業は、創造的な発見的プロセスであり、ビジネスユーザーは使用しているデータが特定の目的にあっているかどうかを自身で判断することができると同時に、これまで知らなかった傾向や関係性を明らかにしたり、更なる深い分析のために役立つかもしれないデータを見つけたりします。 この新しいアプローチの特徴は、ユーザー自身でデータ加工やその先の分析を繰り返し実施(Iterative)することに適しているということです。アナリティクスにおいては、仮説検証、試行錯誤、さらには失敗をいかに高速に実施するかが重要なため、この繰り返し作業(Iterative)をユーザー自身で迅速に行う必要があるのです。 RepeatableとIterationとの違い 同じ動作を繰り返す、例えば毎月同じ種類のデータに対して同じクエリーを実行しレポートを作成するようなことがRepeatableです。それに対してIterationとは、異なる動作を繰り返す事を指し、データや見方を変えながらデータを探索しつつ仮説検証を繰り返したり、予測モデル作成や機械学習アルゴリズムのための説明変数や特徴量を探索しながら作成していくことを意味しています。BIレポーティングは、 Repeatable, アナリティクスはIterativeと覚えておいてください。 Iterativeなデータ加工プロセスでは以下のように、SQLだけでは困難な処理が多く含まれます。 集約(合計や平均などだけではなく、中央値や標準偏差などを含む) 転置(下記ABTにも関連) 統計的判断(ある事象、たとえば売り上げの減少が、単なる偶然のバラツキの範囲なのかなのかそうでないか) 欠損値や異常値の検出と補完(0で補完するだけでなく、平均値や中央値など) 新しい変数(カラム、列、特徴量とも言います)の作成 重複データの検出と対応 クレンジングや表記をあわせる標準化 SQLジョイン マージ(SQLジョインでは不可能な複雑な条件でデータを結合) 数値データの変換(対数変換や標準化) 次元圧縮 よく見かける現場の状況 これら2つのアプローチの違いは、従来活用していなかった履歴データや、ビッグデータ、非構造化データと呼ばれるような装置からのログデータやテキストデータを活用しはじめようとする際に顕著になります。業務システムや既にデータウェアハウスに格納されている、主キーやカラム構造がわかりやすいデータとは異なり、このような新しいデータは、行を特定するためのID項目。がなかったり、論理的な1行が複数行にまたがっていたり、欠損値が多い、そもそもどんな値が格納されているべきかを業務ルールから特定できるわけではないなど、必ずしもRDBMSに格納しやすいデータとはいえません。このようなデータを、キー構造や値の制約などを厳格に管理することに重きを置く従来型のRDBMSに格納しようとすると、IT部門は、まずユーザー部門に対しして、「どのような種類のデータをどのように使用するのか」といった目的定義からスタートします。わかりやすくいうと、どのようなSQLを投げるかが決まらないとテーブル構造やリレーションシップなどのデータモデル設計ができないからです。しかし、「アナリティクス」においては、どのようにデータを加工するかは、分析のプロセス中に考えることですし、分析が進むにつれて加工の仕方も変わってくるため、あらかじめ用法を明確に定義しておくことはできません。データを触ってみないと加工の仕方は決まりませんし、将来的に別の活用方法になることもあります。同じデータであっても、データを縦方向に長くする方が良いのか、横方向に長くのが良いかは、そのときどきのデータの見方によって変わります。従来のデータマネージメントのアプローチでは、この瞬間に「卵とニワトリ」の問題が発生し、アナリティクスの取り組みの大幅なスピードダウンを招くことになります。 なぜ従来型のアプローチになるのか? IT部門がこのような従来型のデータマネージメント・アプローチを取ろうとするのには、理由があります。RDBMSを利用する場合、さらにはHadoopを利用する場合には特に、ビジネスユーザーが生データを加工することはIT技術的・スキル的に困難だと考えており、なんらかの「おぜんだて」をしてユーザーに使いやすいソフトウェア環境とともに「公開」しようとする意識があるためです。実際にそのとおりであり、高度な分析をするためには、さすがにSQL程度は使えるor考え方がわかる必要はありますが、HadoopのMapReduceはハードルが高すぎます。しかし、アナリティクスにおいてSQLは道具として不十分であり、必要なデータ加工をするためにはMapReduceやその他のデータ加工言語を駆使して、場合によっては分散コンピューティングを意識しながら使いこなさないと実現できないデータ加工要件が存在します。この部分のスキルを獲得したり人材を確保するのはコスト高であるだけでなく、ビジネス・スピードを損ないます。 先行してビッグデータアナリティクスで競争優位性を築いている企業・組織はここの事情が少し異なります。彼らにとってアナリティクスの活用はビジネスモデルの根幹であるため、スキル獲得(教育、学習、採用)はコストがかかってもMUSTであると考えています。ただ、それでも、分析組織として拡大・成熟してきたチームの管理者は、昨今のデータ分析人材難もあいまって、自分の抱えるチームの生産性に課題を感じ始めています。 最新のテクノロジーがアプローチ方法の変革を可能にします 実は、このようなIT部門の懸念はすでに過去のものとなっています。テクノロジーは進化しソフトウェアは成長しています。いまや、データサイエンティストのような「分析もITもこなすスーパーマン」ではない「ビジネスユーザー出身の分析者」(ガートナーはこれを市民データサイエンティストと呼んでいます)であっても、Hadoopの技術的なスキルなくとも、グラフィカルなユーザーインターフェースや分析者が通常分析に使用する言語で、Hadoop上のデータを自由自在に加工できる手段が存在します。つまり、ビッグデータ時代においては、データは基本的な欠損値の補完などのクレンジング処理だけを施した生データを置いておくだけで、データ分析者が、高度なITスキルを持たなくともハイパフォーマンスに分析処理を実行することができるのです。 アナリティクス担当者(誤解しないでください。レポーティングしたい分析者とは異なります)が考えていることは、 「データの形式や品質はさておき、とにかくデータにアクセスできるようにして欲しい。加工は自分たちでできるから、とにかくスピード優先で」 となります。このような要望にこたえるためには、従来型のテクノロジーを使用したデータウェアハウスの改修という方法では困難です。様々な形式のデータを、データモデル設計をすることなく、適切なコストで、まずは蓄積するということが必要になり、そこは今の時代においてはHadoopが最適です。また場合によって、既存のシステムとの連携においては、フェデレーション技術のように仮想的に集めたかのように見せる必要があるケースもあります。このような環境では、従来のデータウェアハウスのように整ったデータが準備されているわけではなく、使用する際に整えることになるため、分析者がデータ品質を目的に応じて整える必要があり、Hadoop上でデータプロファイリングやクレンジングを自身で実施します。さらには、あらかじめ直近使用する予定のないデータをも捨てずに蓄積しておくデータレイクという戦略をとる企業・組織も出てきました。 最初のゴールはABT作成である IT部門が、このアナリティクスにおけるデータ加工の最初のゴールを理解すると、企業・組織におけるアナリティクスの取り組みが飛躍的に加速し、IT部門のビジネスへの貢献の仕方も理にかなったものになり、IT投資の目的や方向性を設定しやすくなります。 アナリティクスが欲しているのは、BIクエリーに適している正規化データモデルやスタースキーマ・データモデルではありませんし、また「目的特化型のデータ・マートが欲しい」というわけでもありません。まず最初の目的は、ABTすなわち、Analytical Base Tableを整えることです。ABTとは、15年以上前からある考え方で、アナリティクスにおいてデータの分布の確認や傾向の探索、予測モデルの作成のための基本テーブルのようなものです。 顧客の購買行動を予測する際を例に考えてみましょう。当時はそのまま「1顧客1レコード」と呼んでいましたが、最近ではSASジャパンでは「横持ちテーブル」ということが普通です。対して、履歴データを縦に持ったものを「縦持ち」と言います。簡単に言うと、顧客に関する全てのデータ、顧客マスターにある属性情報に始まり、契約情報、購買履歴、コミュニケーション履歴、キャンペーンへの反応履歴、店舗やWeb上での行動履歴、など、最近の言葉で言えば、顧客の360度ビューをデータとして表現し、1人の顧客につき1行使用し、これら情報を列方向に持たせたデータです。ご想像の通り、このテーブルは時には列数が数百、数千、数万になったりすることもあります。ただ単に履歴を横に持つから横に長くなるというよりは、顧客を特徴づける説明変数や特徴量を作成していくことでも、その数が増えていきます。単にAという商品を買ったというだけでなく、何曜日の何時にどの店舗に来店したのか、来店頻度は? 金額は? 金額の合計は? など、その顧客がどのような行動、嗜好をもつ顧客なのかを特徴づけるデータを作成します。どのような列、説明変数や特徴量を作成するのが良いかは、今回の趣旨ではないので省略しますが、これまでの業務上の勘と経験、ノウハウ、そして一番重要なのは、企業が顧客とどのような関係を気づきたいかという顧客戦略、これらがあれば、おのずと決まってきます。また、ある程度世の中にベストプラクスもあるので、書籍や弊社コンサルタントに期待することもできます。 なんだ、全てのデータをくっつけたデータマートを作ってあげればいいのではないかと思うかもしれませんが、ABTを作成する作業は前述の通り分析作業をしながらのIterativeなプロセスのため、分析者自身が作っていく必要があります。アナリティクスの活用成熟度の高い分析チームになると、データの一貫性を理由として、複数のテーマでこのABTの一部の列を共有するようになります。この段階になって初めて、ある程度仕様が固定化されたデータマートのようになりますが、ビジネスの変化に応じて柔軟・迅速に変更していく必要があるという性質は変わりません。 IT部門の新たな役割:データスチュワード このように、アナリティクスのためのデータマネージメントプロセスを実践するためには、アナリティクスという具体的なビジネス価値を創出するための要求とスピードに対して、迅速に対応する必要があります。その主たる役割は、従来型のシステム開発データベース構築やデータモデルの設計ではなく、「ユーザーの使いたいデータはどこにあるのか?」、「社外データはどのように調達できるかどうか?」、「他部門ではどのようにそのデータを活用しているのか?」といった疑問に答える役割で、一般的には、「データスチュワード」として定義されている役割です。データスチュワードという役割は、約10年前にその必要性が叫ばれたBIをサポートするBICC(ビジネス・インテリジェンス・コンピテンシー・センター)でも定義されていましたが、昨今、アナリティクスの広まりによって、その役割の重要性が再認識され始めています。部門横断的に業務とアナリティクスおよびITに対する一定の理解とスキルを有しつつ、主たる役割はアナリティクスとそれに必要なデータやスキルを効果的・効率的にマッチングすることです。最近では、必要な全てのデータやスキルを組織内で準備することが現実的ではなくなってきており、その解決策の一つである、「オープンイノベーション」の事務局的な役割を担っているケースもあります。
ビジネスに使える「良い予測結果」を得るために 今回は、8月にリリースされたSAS Forecast Serverの新しい機能を紹介しながら、データが理想どおりに画一的にはなっていない実際のビジネスの現場で「良い予測結果」を得るために必要な3つの要素についてご紹介します。 はじめに 需要予測はもともと、天候などの不確実なばらつきをもつ外的要因という制約のもとで、顧客満足度や販売機会を最大化(欠品による損失の最小化)しつつ、売れ残りや在庫保有といったコストを最小限にするための手段のひとつです。生産から販売までのリードタイムが長い商品の販売量の予測や、一定期間先の需要量の取引を行うエネルギーの売買に携わる企業にとっては、正確な需要予測が不可欠です。今回は、予測結果そのものの精度をビジネス上の課題解決に見合う精度にするために、欠かせない要素ついてご紹介します。 欠かせない三つの工夫 SASは長年、SAS/ETSやSAS Forecast Serverなど、時系列予測機能を提供してきましたが、それらツールを使用して実際に成果を出している企業に共通するのは、これらのツールに用意されている時系列予測アルゴリズムを単に使用するのではなく、精度を高めるためのなんらかの"工夫"をしているということです。それをまとめると以下の3つに集約されます。 予測対象の実績データ(以下、時系列データ)のセグメンテーション マルチステージ(他段階の)予測モデリング 予測結果の追跡 予測のためのアルゴリズムは世の中に多数存在しますが、それを単純に適用するだけでは、ビジネス上の意思決定に利用可能な精度を実現するのは実は困難です。従来は、上記3つの工夫をシステム構築の際に考慮し独自に仕組みを作りこむ必要がありました。SASはこれらをベストプラクティス化し、ツールそのものの機能としてリリースしました。新たにSAS Forecast Serverに備わった、それら3つの機能について簡単にご紹介します。 1.時系列データのセグメンテーション どの店舗でいつ何が売れるのかを予測しなければいけない小売業 客室の埋まり方を予測しなければならないホテル業 顧客満足度を落とさずに欠品率をコントロールするために、どの施設レベルで予測すべきかに頭を悩ませる流通業 エネルギーの使用量を予測しなければならないデータセンター事業者やエネルギー供給企業 乗客数や交通量を予測する航空関連企業 コールセンターの需要を予測して従業員の配置を計画する通信会社 など、どのような予測業務においても、最初のステップは、自社の時系列データがどのようになっているかを理解することです。 理想的な時系列データ 従来の予測技術にとって最も完璧な(うれしい)時系列データはこのような形(図1)をしています。量が多く、データ期間が長く、安定していて、同じパターンが繰り返され、欠損値がほとんどなくパターンが予測しやすいという特徴があります。 このような理想的な時系列データが仮に存在したとすれば、自動化された予測エンジンと単一の予測モデリング戦略で簡単に良い予測結果が得られます。 実世界の時系列データ しかし現実世界では、企業が保有する時系列データはもっと多様です(図2)。 洗剤のようにいつでも売れる安定した(Stable)需要 バーベキューセットのように季節性(Seasonal)のある需要 あるいはレベルシフト(Level Shift)があるような需要-例えば、市場や販売チャネルを拡大したタイミングなど- 新製品の投入や新市場への進出など、データ期間が非常に限定されている(Short History)。 自動車の特定の補修部品のようにスパースなデータ(あるいは間歇需要とも言います)(Intemittent)。 ハロウィングッズのように一年に一回のある週や月しか売れないものもあります(Holiday)。 このようにそれぞれまったく異なる時系列パターンに対して単一の予測モデリング戦略を適用しても良い予測結果は得られません。これらにどのように対処するかが「良い予測結果」を得られるかどうかの分かれ道になります。 時系列データのセグメンテーション この問いに対する解決策は、時系列データのセグメンテーションです。時系列データのセグメンテーションとは、時系列データのパターンに応じて異なるパターンに分類する方法です。これは、需要予測プロセスにおいて最も重要な最初のステップのひとつです。分類した後にそれぞれのパターンに応じた予測モデリング戦略を適用することが「良い予測結果」を得るための秘訣となります。 これにより、 Stableなデータに対しては、ロバストなARIMAモデルを適用し、 季節性を示すデータには季節性モデルを、 Level Shiftタイプにはレベルシフトの要素を説明変数に利用できるARIMAX手法を、 新製品パターンには類似性分析のテクニックを用い、 スパースなデータに対しては間歇需要のための予測モデルを、 Holidayパターンにはカスタマイズした時間間隔モデルを使用する