Tag: 需要予測

Advanced Analytics | Analytics
Makoto Unemi (畝見 真) 0
SAS Viya: ビジュアルパイプラインで需要分類&予測

「ビジュアルパイプラインで将来予測」では、SAS ViyaのModel Studioを使用した時系列予測の基本的な手順を紹介しました。 今回は、需要予測の精度を高める代表的な一つの手法として、需要分類をご紹介します。 例えば、お菓子の販売に関する需要を予測する場合を考えてみましょう。 ポテトチップスやおかきのように通年を通して売れる商品もあれば、アイスクリームのように夏季に需要が増加する商品、チョコレートのようにバレンタインデーの直前と当日に需要が急増する商品、お盆やお彼岸などの際にお供え用にときどき購入される商品などなど、お菓子の種類によって需要のパターンは異なってきます。 これらの異なる需要パターンの商品に対して、一律同じアルゴリズムを適用しても予測精度は高まりません。 こうした課題に対処するために、SAS Viyaの時系列予測では、自動的に需要のパターンを分析し、予測の精度を高めるような仕組みも搭載されています。 SAS ViyaのModel Studioで時系列予測を実行する際に、需要分類を活用する場合は、「需要の分類」テンプレートを使用します。 (使用する時系列データやデータ内の変数に対する役割設定内容は、「ビジュアルパイプラインで将来予測」ブログ内容と同様です。) 以下は、「需要の分類」パイプライン・テンプレートを選択し、実行した後の画面です。 「需要の分類プロファイル」ノードでは、統計解析等の手法を使用して、時系列データを解析し、需要のパターンを検出します。冒頭にお話しした通り、予測対象によって需要のパターンは様々です。 こうした多様なパターンを見極めた上で、適した予測アルゴリズムを用いることが肝要になります。 今回のデータでは、地域×製品ラインのセグメントごとに需要のパターンが検出され、分類されます。 「需要の分類プロファイル」ノードのメニューから「開く」を選択すると、 分類結果が表示されます。 地域×製品ラインでは、5つの組み合わせ=セグメントが存在するので、これらのセグメントごとにパターンが検出され、結果としては、1つのセグメントは「YEAR_ROUND_NON_SEASONAL:長期間の非季節性需要」として、4つのセグメントは「YEAR_ROUND_SEASONAL:長期間の季節性需要」として分類されていることがわかります。 上記の2種類を含め10種類の需要パターン+その他、に分類されます。 次の「需要の分類モデリング」ノードでは、分類されたセグメントごとに最適なアルゴリズムが選択され、予測が実行されます。 「需要の分類モデリング」ノードのメニューから「開く」を選択すると、 実行結果が表示されます。検出された需要パターンに応じて、最適なアルゴリズムを適用したパイプライン(以下の「パプライン」列)が選択され、実行されます。 「YEAR_ROUND_NON_SEASONAL:長期間の非季節性需要」のセグメントには「非季節予測」モデルのパイプライン・テンプレートが適用され、「YEAR_ROUND_SEASONAL:長期間の季節性需要」のセグメントには「季節予測」モデルのパイプライン・テンプレートが適用され、それぞれ実行されています。「WMAPE」列には加重MAPEの値が表示されています。 セグメントを選択し、画面右上の「パイプラインを開く」アイコンをクリックすると、 そのセグメントに適用され、実行されたパイプラインが表示されます。 加重MAPEの値や、このパイプラインの予測結果を確認し、精度をさらに改善したい場合は、従来通りの操作性でこのパイプラインをカスタイズ(アルゴリズムを変更したり、パラメータをチューニングしたり)することもできます。 最後の「セグメントのマージ」ノードでは、各セグメントの予測実行結果をマージします。 「セグメントのマージ」ノードのメニューから「予測ビューア」を選択すると、 予測結果のチャートが表示されます。 以下チャート内のオレンジ色の破線は、5つのセグメントの中の、地域:Region1×製品ライン:Line1に関する予測結果です。 以上のように、SAS ViyaのModel Studio上でビジュアルパイプラインを用いた時系列予測では、需要のパターンに基づく、より精度の高い予測モデリング戦略の自動実行も可能なんですね。 ※需要予測精度の向上に関しては、「ビジネスで「需要予測機能」を活用するために必要な3つの要素」ブログも参考にしてください。 ※Enterprise Open Analytics Platform 「SAS Viya」 を知りたいなら「特設サイト」へGO!

Advanced Analytics | Analytics
Makoto Unemi (畝見 真) 0
SAS Viya: ビジュアルパイプラインで将来予測(フォーキャスティング)

Enterprise Open Analytics PlatformであるSAS Viyaでは、コーディングスキルを持たないビジネスアナリストやビジネスユーザーでも、Model Studioを使用し、機械学習のモデル、時系列予測のモデル、テキストマイニングのモデルをGUIベースの簡単マウス操作で作成することができるようになっています。モデル生成プロセスをグラフィカルなフロー図として描き、実行するだけです。このフロー図のことを「パイプライン」と呼んでいます。 これまで、ビジュアルパイプラインを用いた機械学習のモデル生成は紹介してきましたが、今回は、時系列予測の基本的な手順を紹介します。 Model Studioで時系列予測を実行する基本的な手順は以下の通りです。 ① プロジェクトの新規作成 ② 学習用の時系列データ内項目へ役割設定 ③ パイプラインの作成と実行 ④ 予測結果確認 ⑤ 予測値のオーバーライト(必要に応じて) ① プロジェクトの新規作成 SAS Viyaの統合GUIのホームページのメニューから「モデルの作成」を選択し、表示されるModel Studioの画面から「プロジェクトの新規作成」をクリックします。 「プロジェクトの新規作成」画面内で、プロジェクトの名前を入力し、モデルの種類(データマイニングと機械学習 / テキスト分析 / 予測)から「予測」を選択します。使用するパイプライン・テンプレートとして、デフォルトでは、「自動予測」が選択されていますが、必要に応じてテンプレートを変更することができます。 今回は、「自動予測」テンプレートを使用してみましょう。 学習用の時系列データを選択し、「保存」をクリックします。 すると、指定したデータソース内の変数リストが表示されます。 ② 学習用の時系列データ内項目へ役割設定 表示された「データ」タブ内で、変数ごとに右側画面内で役割を選択します。 ・注文日:時間 <-日付属性データ項目には自動的に“時間”役割が設定されます。 ・売上:従属 <-予測対象の項目 ・原価:独立 <-予測対象に影響を及ぼす項目 ・販売地域と製品ライン:BY変数 <-地域別や製品ライン別で予測結果を見ることができます。 「テーブルの表示」アイコンをクリックすると、データの中身を確認できます。 ご覧の通り、このデータは年月ごと、販売地域、製品ライン、製品ごとの売上や原価、などの情報を持つ時系列データです。 注. 今回使用するデータでは、時系列データとその属性データ(地域、製品ライン、製品)が一つにマージされているデータを使用していますが、時系列データと属性データをそれぞれ別データとして取り込むことも可能です。そうすれば、メモリーにロードするデータ量を削減することができます。 ③ パイプラインの作成と実行 役割を設定後、「パイプライン」タブをクリックすると、「自動予測」のパイプラインが表示されます。 右側画面には「自動予測」ノードのオプションが表示されています。ご覧の通り、自動予測では、ESM(指数平滑化)とARIMAの2つの手法で予測を実行し、その中から最良のモデルが使用されます。 必要に応じて、IDM(間欠需要モデル)とUCM(観測不能成分モデル)を追加することも可能です。 左画面内のノードリストから必要な機能をドラッグ操作でパイプラインへ追加することができます。 その中にはニューラルネットワークに基づく手法も用意されています。 今回は、「ナイーブモデル予測」を加えてみましょう。 左側のノードリスト内から「ナイーブモデル予測」をパイプラインの「データ」ノードにドラッグするだけです。 それでは、パイプラインの右上の「パイプラインの実行」ボタンをクリックして、このパイプラインを実行しましょう。 正常に完了するとすべてのノード上に緑のチェックマークが表示されます。 「データ」ノードのメニューから「時系列ビューア」を選択すると、 学習データ内容を時系列チャートで確認することができます。 役割にBY変数を指定した、販売地域と製品ラインで絞り込んで見ることもできます。 以下は、地域:Region2、製品ライン:Line3に絞り込んだチャートです。 ④ 予測結果確認

Advanced Analytics | Analytics
小林 泉 0
ビジネスで「需要予測機能」を活用するために必要な3つの要素

ビジネスに使える「良い予測結果」を得るために 今回は、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パターンにはカスタマイズした時間間隔モデルを使用する