以下に、本願の開示する選択プログラム、選択方法及び選択装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
実施例1に係る選択装置の機能構成の一例について説明する。図1は、実施例1に係る選択装置の機能構成を示すブロック図である。図1に示すように、この選択装置100は、記憶部110と、制御部120とを有する。また、選択装置100は、入力装置101と、出力装置102と接続される。選択装置100は、例えば、パーソナルコンピュータやワークステーションなどの情報処理装置に対応する。
入力装置101は、各種情報の入力を受け付ける装置であり、例えば、キーボードやマウス、媒体読み取り装置、あるいはタッチパネル機能付きディスプレイなどに対応する。例えば、入力装置101は、選択装置100を利用する者から、期間ごとの売上数量を示す実績データ111の入力を受け付ける。入力装置101は、受け付けた各種情報の入力を後述の受付部121に出力する。
出力装置102は、各種情報を出力する装置であり、例えば、ディスプレイやモニタなどに対応する。例えば、出力装置102は、商品ごとの予測関数を、後述の選択部125から受け付ける。出力装置102は、受け付けた各種情報を出力する。
記憶部110は、実績データ111を記憶する。記憶部110は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、ハードディスク装置や光ディスク装置などの記憶装置に対応する。
実績データ111は、例えば、期間ごとの売上数量を示す。一例としては、実績データ111は、後述の受付部121によって記憶部110に格納される。また、他の例としては、実績データ111は、後述の決定部122、分類部123、算出部124及び選択部125によって参照される。
一態様としては、実績データ111は、需要予測の対象となる複数の商品ごとに、日付と、売上数量と、利益金額とが対応付けられた時系列データを示す。このうち、「日付」は、商品が売れた過去の日付を指す。また、「売上数量」は、1日の間に商品が売れた数量を指す。また、「利益金額」は、1日の間に商品が売れたことによって得られた利益の金額を指す。なお、ここでは、売上数量が1日ごとに集計された場合を例示したが、開示の技術はこれに限定されるものではない。例えば、売上数量が1週ごとに集計されていても良く、1年ごとに集計されていても良い。また、売上数量が集計される単位は、「バケット」とも称される。以下では、バケットが1日である場合を説明する。
図2は、実績データとして記憶される情報の一例を示す図である。図2に示す実績データ111は、一例として、商品Aの売上数量を10万個単位で示し、その売上数量によって得られた利益金額を100万円単位で示したものである。図2の1番目のレコードには、日付「20120220」と、売上数量「10」と、利益金額「1」とが対応付けられる。これは、2012年2月20日に売れた商品Aが100万個であり、それによって得られた利益が100万円であることを示す。また、図2の2番目のレコードには、日付「20120219」と、売上数量「14」と、利益金額「2」とが対応付けられる。これは、2012年2月19日に売れた商品Aが140万個であり、それによって得られた利益が200万円であることを示す。また、実績データ111には、他の過去の日付についても同様に、売上数量と、利益金額とが対応付けられる。なお、図2では、一例として、商品Aの実績データ111を例示したが、需要予測の対象となる他の商品の実績データ111についても同様に、日付と、売上数量と、利益金額とが対応付けられる。
制御部120は、受付部121と、決定部122と、分類部123と、算出部124と、選択部125とを有する。制御部120の機能は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路により実現することができる。また、制御部120の機能は、例えば、CPU(Central Processing Unit)が所定のプログラムを実行することで実現することができる。
受付部121は、例えば、複数の商品について、期間ごとの売上数量を示す実績データ111を受け付ける。一例としては、受付部121は、複数の商品ごとに、日付と、売上数量と、利益金額とが対応付けられた実績データ111を受け付ける。そして、受付部121は、受け付けた実績データ111を記憶部110に格納する。
また、例えば、受付部121は、受け付けた実績データ111に対して、データ密度分析を実行する。ここで、データ密度分析は、受け付けた時系列データが需要予測の処理対象として十分なデータ密度を有するか否かを判定するものである。例えば、受付部121は、時系列データに含まれる所定の期間について、売上数量のデータを含まないレコードを示す間欠部分と、売上数量のデータを含まないレコードを示す有効部分とをそれぞれ検出する。そして、受付部121は、所定の期間に含まれる有効部分の割合を算出する。そして、受付部121は、算出した割合が閾値以上の場合には、時系列データが需要予測の処理対象として十分なデータ密度を有すると判定し、閾値未満の場合には、時系列データが需要予測の処理対象として十分なデータ密度を有しないと判定する。なお、ここで十分なデータ密度を有しないと判定された時系列データは、例えば、受付部121によって削除される。
また、例えば、受付部121は、受け付けた実績データ111に対して、バラツキ分析を実行する。ここで、バラツキ分析とは、受け付けた時系列データが需要予測の信頼性を保てる程度のバラツキであるか否かを判定するものである。例えば、受付部121は、時系列データに含まれる所定の期間について、売上数量の標準偏差を算出する。そして、受付部121は、算出した標準偏差が閾値未満の場合には、時系列データが需要予測の信頼性を保てる程度のバラツキであると判定し、閾値以上の場合には、時系列データが需要予測の信頼性を保てない程度のバラツキであると判定する。なお、ここで信頼性を保てない程度のバラツキであると判定された時系列データは、例えば、受付部121によって削除される。
なお、受付部121は、必ずしもデータ密度分析及びバラツキ分析を実行しなくても良い。例えば、データ密度分析及びバラツキ分析を実行済みの時系列データを受け付けた場合には、受付部121は、データ密度分析及びバラツキ分析を実行しなくても良い。
決定部122は、例えば、過去の売上数量から将来の売上数量を予測するための予測モデルを商品ごとに決定する。この予測モデルには、例えば、指数平滑モデル、伸長率モデル及び季節調整モデルなどが含まれる。このうち、指数平滑モデルは、商品の売上数量が安定的に増加することが過去のデータから予測される場合に適用されるモデルである。また、伸長率モデルは、商品の売上数量の変化が、成長期、安定期及び衰退期という一連のライフサイクルを示すことが、過去のデータから予測される場合に適用されるモデルである。また、季節調整モデルは、商品の売上数量が周期性を示すことが過去のデータから予測される場合に適用されるモデルである。それぞれの予測モデルは、過去の売上数量から将来の売上数量を算出する予測関数をそれぞれ含む。
ここで、図3Aから図3Cを用いて、決定部122によって予測モデルが決定される場合を説明する。図3Aから図3Cは、決定部122によって決定される予測モデルについて説明するための図である。図3Aから図3Cには、ある商品の売上数量の経時的変化を例示する。図3の縦軸は、売上数量を示し、横軸は時間を示す。図3Aに例示する商品は、売上数量の経時的変化にバラツキが少なく、安定的に増加するという特性を有する。例えば、決定部122は、図3Aに示すような特性を有する商品に対して、指数平滑モデルを適用することを決定する。また、図3Bに例示する商品は、売上数量が一時的に増加した後に、増加が鈍化し、徐々に減少するという特性を有する。例えば、決定部122は、図3Bに示すような特性を有する商品に対して、伸長率モデルを適用することを決定する。また、図3Cに例示する商品は、売上数量が周期性を示すという特性を有する。例えば、決定部122は、図3Cに示すような特性を有する商品に対して、季節調整モデルを適用することを決定する。
例えば、決定部122は、記憶部110に記憶された各実績データ111が周期性を有するか否かを判定することで、季節調整モデルを適用するか否かを実績データ111ごとに決定する。一例としては、決定部122は、商品ごとに、実績データ111を所定の周期で重ね合わせ、重ね合わせた売上数量の経時的変化に相関がある場合に、周期性があるものと判定し、その実績データ111に季節調整モデルを適用することを決定する。ここで、周期性の有無を判定するために用いられる周期は、「サイクルパラメータ」とも称される。このサイクルパラメータは、例えば、バケットが1日である場合には、曜日の特性を評価するために「7」が指定される。また、例えば、バケットが1週である場合には、季節の特性を評価するために「52」が指定され、バケットが1年である場合にも、季節の特性を評価するために「12」が指定される。なお、ここで指定されるサイクルパラメータは、これに限定されるものではなく、任意の値が指定されても良い。
また、例えば、決定部122は、記憶部110に記憶された各実績データ111が成長期、安定期及び衰退期という一連のライフサイクルを有するか否かを判定することで、伸長率モデルを適用するか否かを実績データ111ごとに決定する。一例としては、決定部122は、商品ごとの実績データ111と、ライフサイクルを有することが既知の商品の実績データ111との間に相関がある場合に、ライフサイクルを有する者と判定し、その実績データ111に伸長率モデルを適用することを決定する。また、例えば、決定部122は、季節調整モデル及び伸長率モデルが適用されない実績データ111には、季節調整モデルを適用することを決定する。
なお、決定部122によって決定される予測モデルは上記の例に限定されるものではない。また、ここでは、決定部122が実績データ111ごとに予測モデルを決定する場合を説明したが、開示の技術はこれに限定されるものではない。例えば、予測モデルが予め指定された実績データ111に対しては、決定部122は、予測モデルを決定しなくても良い。
分類部123は、例えば、複数の商品を、各商品の売上数量に応じた複数のグループに分類する。一例としては、分類部123は、需要予測の対象となる複数の商品を、各商品の売上数量に応じて売れ筋と死に筋とに分類する。このうち、「売れ筋」は、複数の商品のうち他の商品と比較して良く売れている商品を指し、「死に筋」は、複数の商品のうち他の商品と比較してあまり売れていない商品を指す。なお、売れ筋は、「ネット」とも称される。また、死に筋は、「グロス」とも称される。
一態様としては、分類部123は、ABC分析を行って、複数の商品を売れ筋と死に筋とに分類する。この「ABC分析」とは、複数の商品の実績データ111を比較して、各商品に重要度を割り当てるための分析手法であり、重要なものから順にA、B及びCの3つのランクに分類する手法である。例えば、分類部123は、複数の商品を、各商品の実績データ111に含まれる売上数量及び利益金額を用いてABC分析をそれぞれ行った後に、それぞれの分析結果を用いて、各商品を売れ筋と死に筋とに分類する。なお、ABC分析は、「重点分析」とも称される。
図4から図7を用いて、分類部123が商品をグループに分類する処理を説明する。図4から図7は、分類部123が商品をグループに分類する処理を説明するための図である。なお、ここでは、分類部123が商品A〜商品Iまでの9種の商品を売れ筋と死に筋とに分類する場合を説明する。また、商品A〜商品Iの各実績データ111は、記憶部110に記憶されているものとする。
図4を用いて、分類部123が商品A〜商品IをA〜Cのランクに分類する処理を説明する。図4に示す例では、商品ごとに、売上、構成比、累計及び売上ランクを示す。このうち、「売上」は、所定期間における各商品の売上数量の和を指す。例えば、売上は、図2の実績データ111のうち直近3日間の売上数量の和に対応する。また、例えば、売上は、10万個単位で示される。また、「構成比」は、各商品の売上が全商品の売上の総和に占める割合を指す。また、「累計」は、構成比が大きい商品から順に各商品の構成比を加算した累積構成比を指す。また、「売上ランク」は、累計の値に応じて各商品に割り当てられる重要度を指す。例えば、累計が0%〜70%に対応する商品には、ABC分析によって分析される全商品のうち最も重要であることを示す売上ランク「A」が割り当てられる。また、例えば、累計が70%〜90%に対応する商品には、売上ランク「A」の次に重要であることを示す売上ランク「B」が割り当てられる。また、例えば、累計が90%〜100%に対応する商品には、重要ではないことを示す売上ランク「C」が割り当てられる。なお、売上を算出するための所定期間は、商品の重要度を分析するための期間であり、選択装置100を利用する者が任意に設定して良い。また、売上ランクを割り当てるための累計の値についても、選択装置100を利用する者が任意に設定しても良い。
図4に示すように、例えば、分類部123は、商品A〜商品Iの各実績データ111を記憶部110から取得し、各商品の実績データ111のうち直近3日間の売上数量の和を、売上として算出する。一例としては、分類部123は、図4に示すように、商品Aの売上として1000万個を算出し、商品Bの売上として2000万個を算出する。続いて、分類部123は、各商品の売上を加算して全商品の売上の総和を求め、求めた総和に占める各商品の売上の割合を、構成比として算出する。一例としては、分類部123は、図4に示すように、商品Aの構成比として3%を算出し、商品Bの構成比として6%を算出する。その後、分類部123は、構成比が大きい商品から順に各商品の構成比を加算して、最も構成比が大きい商品から各商品までの累計を算出する。一例としては、分類部123は、図4に示すように、商品A〜商品Iのうち、最も構成比が大きい商品Gの構成比「18%」を、商品Gの累計とする。続いて、分類部123は、商品Gの次に構成比が大きい商品Hの構成比「17%」を、Gの累計「18%」に加算して、商品Hまでの累計「35%」を算出する。同様に、分類部123は、構成比が大きい商品から順に各商品の構成比を加算することで、各商品A〜商品Iまでの累計を算出する。そして、分類部123は、累計の値に応じて各商品に売上ランクを割り当てる。一例としては、分類部123は、累計が0%〜70%に対応する4種の商品G,H,I,Fに売上ランク「A」を割り当てる。分類部123は、累計が70%〜90%に対応する2種の商品E,Dに売上ランク「B」を割り当てる。分類部123は、累計が90%〜100%に対応する3種の商品C,B,Aに売上ランク「C」を割り当てる。このように、分類部123は、商品A〜商品Iの各実績データ111を用いて、商品A〜商品IをA〜Cの売上ランクに分類する。なお、ここでは、分類部123が商品をA〜Cの3つのランクに分類する場合を説明したが、開示の技術はこれに限定されるものではない。例えば、分類部123は、A〜Dの4つのランクに分類しても良く、A又はBの2つのランクに分類しても良い。
図5を用いて、分類部123が商品A〜商品IをA〜Cのランクに分類する処理を説明する。図5に示す例では、商品ごとに、利益、構成比、累計及び利益ランクを示す。このうち、「利益」は、所定期間における各商品の利益金額の和を指す。例えば、利益は、図2の実績データ111のうち直近3日間の利益金額の和に対応する。また、例えば、利益は、100万円単位で示される。また、「構成比」は、各商品の利益が全商品の利益の総和に占める割合を指す。また、「累計」は、構成比が大きい商品から順に各商品の構成比を加算した累積構成比を指す。また、「利益ランク」は、累計の値に応じて各商品に割り当てられる重要度を指す。例えば、累計が0%〜70%に対応する商品には、ABC分析によって分析される全商品のうち最も重要であることを示す利益ランク「A」が割り当てられる。また、例えば、累計が70%〜90%に対応する商品には、売上ランク「A」の次に重要であることを示す利益ランク「B」が割り当てられる。また、例えば、累計が90%〜100%に対応する商品には、重要ではないことを示す利益ランク「C」が割り当てられる。なお、利益を算出するための所定期間は、商品の重要度を分析するための期間であり、選択装置100を利用する者が任意に設定して良い。また、利益ランクを割り当てるための累計の値についても、選択装置100を利用する者が任意に設定しても良い。
図5に示すように、例えば、分類部123は、商品A〜商品Iの各実績データ111を記憶部110から取得し、各商品の実績データ111のうち直近3日間の利益金額の和を、利益として算出する。一例としては、分類部123は、図5に示すように、商品Aの利益として2000万円を算出し、商品Bの利益として1億3000万円を算出する。続いて、分類部123は、各商品の利益を加算して全商品の利益の総和を求め、求めた総和に占める各商品の利益の割合を、構成比として算出する。一例としては、分類部123は、図5に示すように、商品Aの構成比として4%を算出し、商品Bの構成比として26%を算出する。その後、分類部123は、構成比が大きい商品から順に各商品の構成比を加算して、最も構成比が大きい商品から各商品までの累計を算出する。一例としては、分類部123は、図5に示すように、商品A〜商品Iのうち、最も構成比が大きい商品Bの構成比「26%」を、商品Bの累計とする。続いて、分類部123は、商品Bの次に構成比が大きい商品Gの構成比「25%」を、Bの累計「26%」に加算して、商品Gまでの累計「50%」を算出する。同様に、分類部123は、構成比が大きい商品から順に各商品の構成比を加算することで、各商品A〜商品Iまでの累計を算出する。そして、分類部123は、累計の値に応じて各商品に利益ランクを割り当てる。一例としては、分類部123は、累計が0%〜70%に対応する3種の商品B,G,Fに利益ランク「A」を割り当てる。分類部123は、累計が70%〜90%に対応する1種の商品Eに利益ランク「B」を割り当てる。分類部123は、累計が90%〜100%に対応する5種の商品H,A,C,I,Dに利益ランク「C」を割り当てる。このように、分類部123は、商品A〜商品Iの各実績データ111を用いて、商品A〜商品IをA〜Cの利益ランクに分類する。なお、ここでは、分類部123が商品をA〜Cの3つのランクに分類する場合を説明したが、開示の技術はこれに限定されるものではない。例えば、分類部123は、A〜Dの4つのランクに分類しても良く、A又はBの2つのランクに分類しても良い。
図6及び図7を用いて、分類部123が商品A〜商品Iを売れ筋と死に筋とに分類する処理を説明する。図6には、図4の売上ランクと図5の利益ランクとを集計した結果を例示する。一例として、図6の1つ目のレコードは、商品Aの売上ランクが「C」であり、利益ランクも「C」であることを示す。図7には、9つの格子を有するマトリクスに、図6の集計結果を当てはめたものを例示する。図7に示す例では、横方向をA〜Cの売上ランクとし、縦方向をA〜Cの利益ランクとする。一例として、図7の右上の格子には、売上ランク及び利益ランクがともに「A」である商品F,Gが含まれる。この場合、分類部123は、例えば、図7の領域7aに含まれる商品を売れ筋に分類し、領域7bに含まれる商品を「死に筋」に分類する。つまり、図7の例では、分類部123は、3種の商品E,F,Gを売れ筋に分類し、6種の商品A,B,C,D,H,Iを死に筋に分類する。
このように、分類部123は、ABC分析を行って、商品A〜商品Iを売れ筋と死に筋とに分類する。そして、分類部123は、分類した結果を後述の算出部124及び選択部125に出力する。なお、ここでは、分類部123がABC分析を行って売れ筋と死に筋とに分類する場合を説明したが、開示の技術はこれに限定されるものではない。例えば、分類部123は、各商品の売上数量を比較して、売上数量が最も多い商品を売れ筋とし、残りの商品を死に筋としても良い。
算出部124は、例えば、過去の売上数量から将来の売上数量を予測する予測関数を複数利用して、実績データ111から複数の予測値を算出する。この「予測値」は、実績データ111との誤差を検証するために、過去の検証期間について算出されるものである。言い換えると、例えば、算出部124は、各商品の実績データ111のうち、検証期間を除いた期間の実績データ111から、検証期間の予測値を算出する。
一例としては、算出部124は、分類部123によって分類されたグループに応じて、検証期間を設定する。例えば、算出部124は、売上数量が多い商品を含むグループほど短い検証期間を設定し、売上数量が少ない商品を含むグループほど長い検証期間を設定する。続いて、算出部124は、決定部122によって決定された予測モデルに応じた予測関数に複数パターンのパラメータを設定することで、複数パターンの予測関数を生成する。そして、算出部124は、生成した複数パターンの予測関数を用いて、設定した検証期間を除いた期間の実績データ111から複数パターンの予測値を商品ごとに算出する。
図8及び図9を用いて、算出部124が予測値を算出する処理について説明する。図8及び図9は、算出部124が予測値を算出する処理について説明するための図である。図8及び図9の縦軸は、売上数量を示し、横軸は時間を示す。図8の曲線8aは、商品Fの売上数量の経時的変化を示し、図9の曲線9aは、商品Aの売上数量の経時的変化を示す。なお、商品Fは売れ筋に分類され、商品Aは死に筋に分類されるものとする。また、商品A及び商品Fには、予測モデルとして指数平滑モデルが適用されるものとする。この指数平滑モデルで用いられる予測関数は、平滑指数と呼ばれるパラメータを含む。この平滑指数には、例えば、「0.1」から「0.9」までの任意の値が設定される。以下では、説明の都合上、指数平滑モデルで用いられる予測関数を「f(x)」と表記する。
図8及び図9に示すように、算出部124は、売れ筋である商品Fに検証期間8bを設定し、死に筋の商品Aに検証期間9bを設定する。ここで、検証期間8bが検証期間9bよりも短いことが特徴であり、例えば、検証期間8bは、現在から遡った3日間に設定され、検証期間9bは現在から遡った7日間に設定される。続いて、算出部124は、予測関数f(x)に複数パターンのパラメータを設定することで、複数パターンの予測関数を生成する。例えば、算出部124は、平滑指数を「0.3」に設定した予測関数f1(x)と、平滑指数を「0.5」に設定した予測関数f2(x)と、平滑指数を「0.7」に設定した予測関数f3(x)とをそれぞれ生成する。そして、図8に示す例では、算出部124は、予測関数f1(x),f2(x)及びf3(x)を用いて、検証期間8bを除いた期間8cの実績データ111から予測値8d,8e及び8fをそれぞれ算出する。このうち、予測値8dは予測関数f1(x)によって算出された予測値に対応し、予測値8eは予測関数f2(x)によって算出された予測値に対応し、予測値8fは予測関数f3(x)によって算出された予測値に対応する。また、図9に示す例では、算出部124は、予測関数f1(x),f2(x)及びf3(x)を用いて、検証期間9bを除いた期間9cの実績データ111から予測値9d,9e及び9fをそれぞれ算出する。このうち、予測値9dは予測関数f1(x)によって算出された予測値に対応し、予測値9eは予測関数f2(x)によって算出された予測値に対応し、予測値9fは予測関数f3(x)によって算出された予測値に対応する。
このように、算出部124は、複数パターンの予測関数を用いて、検証期間を除いた期間の実績データ111から複数パターンの予測値を商品ごとに算出する。なお、ここでは、算出部124が3パターンの予測関数について3パターンの予測値を算出する場合を説明したが、開示の技術はこれに限定されるものではない。例えば、算出部124は、選択装置100を利用する者が任意の数のパターンのパラメータを予測関数に設定することで、任意の数のパターンの予測値を算出することとしても良い。
選択部125は、複数の予測値と実績データ111とに基づいて、複数の予測関数から、売れ筋か死に筋かに応じて予測関数を選択する。例えば、選択部125は、複数の予測関数のうち、売上数量が多い商品を含むグループほど短い検証期間における予測値と実績データとの誤差が最も小さい予測関数を選択する。また、選択部125は、売上数量が少ない商品を含むグループほど長い検証期間における予測値と実績データとの誤差が最も小さい予測関数を選択する。このとき、選択部125は、分類されたグループに応じた算出方法で、複数パターンの予測値と実績データ111との誤差をそれぞれ検証する。
図8に示す例では、選択部125は、検証期間8bについて、商品Fの売上数量の曲線8aと、予測値8d,8e及び8fとの誤差をそれぞれ検証する。このとき、選択部125は、売れ筋である商品Fに対しては、平均絶対偏差(MAD:Mean Absolute Deviation)を用いて誤差を検証する。このMADは、実績データ111と予測値との誤差の絶対値の平均値である。選択部125は、商品Fの売上数量の曲線8aと、予測値8d,8e及び8fとの誤差からMADをそれぞれ算出する。そして、選択部125は、算出したMADが最も小さいものに対応する予測関数を選択する。図8に示す例では、MADが最も小さい予測値は予測値8fであるので、選択部125は、予測値8fに対応する予測関数f3(x)を選択する。
図9に示す例では、選択部125は、検証期間9bについて、商品Aの売上数量の曲線9aと、予測値9d,9e及び9fとの誤差をそれぞれ検証する。このとき、選択部125は、死に筋である商品Aに対しては、トラッキングシグナル(TS:Tracking Signal)を用いて誤差を検証する。このTSは、実績データ111と予測値との誤差の累計をMADで除算したものである。選択部125は、商品Aの売上数量の曲線9aと、予測値9d,9e及び9fとの誤差の累計をMADで除算して、TSをそれぞれ算出する。そして、選択部125は、算出したTSが最も小さいものに対応する予測関数を選択する。図9に示す例では、TSが最も小さい予測値は予測値9dであるので、選択部125は、予測値9dに対応する予測関数f1(x)を選択する。
このように、選択部125は、複数の予測値と実績データ111とに基づいて、複数の予測関数から、売れ筋か死に筋かに応じて予測関数を商品ごとに選択する。そして、選択部125は、商品ごとに選択した予測関数を出力装置102に出力する。なお、選択部125は、選択した予測関数に設定されたパラメータを特定し、特定したパラメータを出力しても良い。
次に、実施例1に係る選択装置100の処理手順について説明する。図10は、実施例1に係る選択装置100の処理手順を示すフローチャートである。図10に示す処理は、例えば、受付部121が実績データ111を受け付けたことを契機として実行される。
図10に示すように、例えば、受付部121が複数の商品の実績データ111を受け付けると(ステップS101肯定)、受付部121は、各商品の実績データ111を記憶部110に格納する(ステップS102)。
続いて、決定部122は、予測モデルを決定する(ステップS103)。例えば、決定部122は、記憶部110に格納された商品の実績データ111ごとに、指数平滑モデル、伸長率モデル及び季節調整モデルのうち、どの予測モデルを適用するかを決定する。
続いて、分類部123は、需要予測の対象となる複数の商品を売れ筋と死に筋とに分類する(ステップS104)。例えば、分類部123は、各商品の売上数量を用いて、各商品をA〜Cの売上ランクに分類する。分類部123は、各商品の利益金額を用いて、各商品をA〜Cの利益ランクに分類する。そして、分類部123は、売上ランクと利益ランクに基づいて、各商品を売れ筋と死に筋とに分類する。
続いて、算出部124は、分類部123によって分類されたグループに応じて、検証期間を設定する(ステップS105)。例えば、算出部124は、売上数量が多い商品を含むグループほど短い検証期間を設定し、売上数量が少ない商品を含むグループほど長い検証期間を設定する。続いて、算出部124は、決定部122によって決定された予測モデルに応じた予測関数に複数パターンのパラメータを設定することで、複数パターンの予測関数を生成する(ステップS106)。そして、算出部124は、生成した複数パターンの予測関数を用いて、設定した検証期間を除いた期間の実績データ111から複数パターンの予測値を商品ごとに算出する(ステップS107)。
続いて、選択部125は、複数の予測値と実績データ111とに基づいて、複数の予測関数から、売れ筋か死に筋かに応じて予測関数を選択する(ステップS108)。このとき、例えば、選択部125は、売れ筋の商品に対してはMADを用いて誤差を検証し、誤差が最も小さい予測関数を選択する。また、例えば、選択部125は、死に筋の商品に対してはTSを用いて誤差を検証し、誤差が最も小さい予測関数を選択する。
そして、選択部125は、商品ごとに選択した予測関数を出力装置102に出力する(ステップS109)。なお、選択部125は、選択した予測関数に設定されたパラメータを特定し、特定したパラメータを出力しても良い。
次に、実施例1に係る選択装置100の効果について説明する。実施例1に係る選択装置100は、例えば、複数の商品について、実績データ111を受け付ける。選択装置100は、複数の商品を、各商品の売上数量に応じた複数のグループに分類する。選択装置100は、過去の売上数量から将来の売上数量を予測する予測関数を複数利用して、実績データ111から複数の予測値を算出する。選択装置100は、算出した複数の予測値と実績データ111とに基づいて、複数の予測関数のうち、グループに応じて予測関数を選択する。このため、選択装置100は、予測精度を向上させることができる。
また、例えば、選択装置100は、複数の予測関数のうち、売上数量が多い商品を含むグループほど短期間における予測値と実績データとの誤差が最も小さい予測関数を選択する。一方、選択装置100は、複数の予測関数のうち、売上数量が少ない商品を含むグループほど長期間における予測値と実績データとの誤差が最も小さい予測関数を選択する。すなわち、選択装置100は、例えば、売れ筋の商品ほど短期間の予測値が実績データ111にフィットする予測関数を選択する。一方、選択装置100は、死に筋の商品ほど長期間の予測値が実績データ111にフィットする予測関数を選択する。このように、選択装置100は、売れ筋か死に筋かに応じて適切な期間を用いて予測関数を選択するので、適切なパラメータを選択することができ、予測精度を向上させることができる。
また、例えば、選択装置100は、複数の商品を、各商品の売上数量及び利益金額に応じて、売れ筋と死に筋とに分類する。そして、選択装置100は、売れ筋の商品ほど短期間の予測値が実績データ111にフィットする予測関数を選択する。一方、選択装置100は、死に筋の商品ほど長期間の予測値が実績データ111にフィットする予測関数を選択する。このように、選択装置100は、利益金額を用いて売れ筋と死に筋とに分類するので、例えば、売上数量は多いが利益金額が小さい商品については販売機会を逃しても良いという経営判断を踏まえて分類することができる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、その他の実施例にて実施されても良い。そこで、以下では、その他の実施例について説明する。
例えば、上記の実施例では、実績データ111が利益金額を含む場合を説明したが、必ずしも利益金額が含まれることを要しない。すなわち、実績データ111には、日付と、売上数量とが対応付けられていれば良い。
また、例えば、上記の実施例では、分類部123が各商品の売上数量及び利益金額に応じて売れ筋と死に筋とに分類する場合を説明したが、開示の技術はこれに限定されるものではない。例えば、分類部123は、利益金額を用いることなく、各商品の売上数量に応じて売れ筋と死に筋とに分類することとしても良い。
また、例えば、上記の実施例では、分類部123が売れ筋と死に筋の2つのグループに分類する場合を説明したが、開示の技術はこれに限定されるものではない。例えば、売れ筋、死に筋の間に中間筋を設け、3つのグループに分類することとしても良い。この場合、例えば、算出部124は、売れ筋の商品の検証期間を3日間に設定し、中間筋の商品の検証期間を5日間に設定し、死に筋の商品の検証期間を7日間に設定する。これによれば、選択装置100は、売れ筋、死に筋のみならず、さらに詳細に分類したグループに応じて適切な期間を設定し、予測関数を選択するので、予測精度を向上させることができる。
また、例えば、上記の実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図1に示した選択装置100の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、選択装置100の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、選択装置100にネットワークを介して外部記憶装置を接続し、記憶部110が記憶する情報を外部記憶装置が記憶するようにしても良い。
また、選択装置100は、選択装置100の各機能を既知の情報処理装置に搭載することによって実現することもできる。既知の情報処理装置は、例えば、パーソナルコンピュータ、ワークステーションなどの装置に対応する。
[予測モデルの選択]
また、例えば、上記の実施例では、選択装置100が、予め決定された予測モデルについて、異なるパラメータが設定された複数パターンの予測関数から一つの予測関数を選択する場合を説明したが、開示の技術はこれに限定されるものではない。例えば、選択装置100は、異なる予測モデルで生成された複数パターンの予測関数から一つの予測関数を選択することもできる。
以下では、図8及び図9を用いて、選択装置100が異なる予測モデルで生成された複数パターンの予測関数から一つの予測関数を選択する場合を説明する。ここでは、図8の曲線8aは、商品Fの売上数量の経時的変化を示し、図9の曲線9aは、商品Aの売上数量の経時的変化を示す。なお、商品Fは売れ筋に分類され、商品Aは死に筋に分類されるものとする。また、商品A及び商品Fには、予測モデルとして指数平滑モデル、伸長率モデル及び季節調整モデルが適用されるものとする。以下では、説明の都合上、指数平滑モデルで用いられる予測関数を「f(x)」と表記し、伸長率モデルで用いられる予測関数を「g(x)」と表記とし、季節調整モデルで用いられる予測関数を「h(x)」と表記する。
図8及び図9に示すように、算出部124は、売れ筋である商品Fに検証期間8bを設定し、死に筋の商品Aに検証期間9bを設定する。ここで、検証期間8bが検証期間9bよりも短いことが特徴であり、例えば、検証期間8bは、現在から遡った3日間に設定され、検証期間9bは現在から遡った7日間に設定される。そして、図8に示す例では、算出部124は、予測関数f(x),g(x)及びh(x)を用いて、検証期間8bを除いた期間8cの実績データ111から予測値8d,8e及び8fをそれぞれ算出する。このうち、予測値8dは予測関数f(x)によって算出された予測値に対応し、予測値8eは予測関数g(x)によって算出された予測値に対応し、予測値8fは予測関数h(x)によって算出された予測値に対応する。また、図9に示す例では、算出部124は、予測関数f(x),g(x)及びh(x)を用いて、検証期間9bを除いた期間9cの実績データ111から予測値9d,9e及び9fをそれぞれ算出する。このうち、予測値9dは予測関数f(x)によって算出された予測値に対応し、予測値9eは予測関数g(x)によって算出された予測値に対応し、予測値9fは予測関数h(x)によって算出された予測値に対応する。
続いて、選択部125は、予測値8d,8e,8f,9d,9e及び9fと実績データ111とに基づいて、複数の予測関数から、売れ筋か死に筋かに応じて予測関数を商品ごとに選択する。図8に示す例では、選択部125は、検証期間8bについて、商品Fの売上数量の曲線8aと、予測値8d,8e及び8fとの誤差からMADをそれぞれ算出する。そして、選択部125は、算出したMADが最も小さいものに対応する予測関数を選択する。図8に示す例では、MADが最も小さい予測値は予測値8fであるので、選択部125は、予測値8fに対応する予測関数h(x)を選択する。図9に示す例では、選択部125は、検証期間9bについて、商品Aの売上数量の曲線9aと、予測値9d,9e及び9fとの累計をMADで除算して、TSをそれぞれ算出する。そして、選択部125は、算出したTSが最も小さいものに対応する予測関数を選択する。図9に示す例では、TSが最も小さい予測値は予測値9dであるので、選択部125は、予測値9dに対応する予測関数f(x)を選択する。
このように、選択装置100は、異なる予測モデルで生成された複数パターンの予測関数から一つの予測関数を選択する。このため、選択装置100は、売れ筋か死に筋かに応じて適切な期間を用いて予測関数を選択するので、適切な予測モデルを選択することができ、予測精度を向上させることができる。
[データセンタ]
また、例えば、選択装置100は、クラウド上でサービスを提供するデータセンタに適用されても良い。図11は、データセンタへの適用例を説明するための図である。図11に示すように、データセンタ200は、例えば、ネットワーク210を介してクライアント220a,220b・・・と接続される。ネットワーク210には、有線又は無線を問わず、インターネット(Internet)、WAN(Wide Area Network)などの任意の種類の通信網を採用できる。また、クライアント220a,220b・・・は、複数の機関に分散して設置される。また、データセンタ200は、サーバ装置201a,201b・・・と、記憶装置202a,202b・・・とを有する。なお、ここでは、クライアント220a,220b・・・を区別なく述べる場合にクライアント220と総称する。また、サーバ装置201a,201b・・・を区別なく述べる場合にサーバ装置201と総称する。また、記憶装置202a,202b・・・を区別なく述べる場合に記憶装置202と総称する。例えば、データセンタ200は、サーバ装置201を用いて、図1に示した選択装置100の機能を仮想マシンとして実現する。
例えば、データセンタ200において、選択装置100の機能を担う仮想マシンである選択VM(Virtual Machine)は、次のように処理を実行する。すなわち、選択VMは、例えば、複数の商品について、実績データ111を受け付ける。選択VMは、複数の商品を、各商品の売上数量に応じた複数のグループに分類する。選択VMは、過去の売上数量から将来の売上数量を予測する予測関数を複数利用して、実績データ111から複数の予測値を算出する。選択VMは、算出した複数の予測値と実績データ111とに基づいて、複数の予測関数のうち、グループに応じて予測関数を選択する。このため、選択VMは、予測精度を向上させることができる。
[プログラム]
図12は、選択プログラムを実行するコンピュータの一例を示す図である。図12に示すように、コンピュータ300は、各種演算処理を実行するCPU301と、ユーザからデータの入力を受け付ける入力装置302と、モニタ303とを有する。また、コンピュータ300は、記憶媒体からプログラム等を読み取る媒体読み取り装置304と、他の装置と接続するためのインターフェース装置305と、他の装置と無線により接続するための無線通信装置306とを有する。また、コンピュータ300は、各種情報を一時記憶するRAM(Random Access Memory)307と、ハードディスク装置308とを有する。また、各装置301〜308は、バス309に接続される。
ハードディスク装置308には、図1に示した受付部121、分類部123、算出部124及び選択部125との各処理部と同様の機能を有する選択プログラムが記憶される。また、ハードディスク装置308には、選択プログラムを実現するための各種データが記憶される。
CPU301は、ハードディスク装置308に記憶された各プログラムを読み出して、RAM307に展開して実行することで、各種の処理を行う。また、これらのプログラムは、コンピュータを図1に示した受付部121、分類部123、算出部124及び選択部125として機能させることができる。
なお、上記の選択プログラムは、必ずしもハードディスク装置308に記憶されている必要はない。例えば、コンピュータが読み取り可能な記録媒体に記憶されたプログラムを、コンピュータ300が読み出して実行するようにしても良い。コンピュータが読み取り可能な記録媒体は、例えば、CD−ROMやDVDディスク、USB(Universal Serial Bus)メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等に接続された装置にこのプログラムを記憶させておき、コンピュータ300がこれらからプログラムを読み出して実行するようにしても良い。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータに、
複数の商品について、期間ごとの売上数量を示す実績データを受け付け、
前記複数の商品を、各商品の売上数量に応じた複数のグループに分類し、
過去の売上数量から将来の売上数量を予測する予測関数を複数利用して、前記実績データから複数の予測値を算出し、
算出した複数の予測値と前記実績データとに基づいて、前記複数の予測関数から、前記グループに応じて予測関数を選択する
各処理を実行させることを特徴とする選択プログラム。
(付記2)前記選択する処理は、前記複数の予測関数から、売上数量が多い商品を含むグループほど短期間における予測値と実績データとの誤差が最も小さい予測関数を選択し、売上数量が少ない商品を含むグループほど長期間における予測値と実績データとの誤差が最も小さい予測関数を選択することを特徴とする付記1に記載の選択プログラム。
(付記3)前記分類する処理は、前記複数の商品を、各商品の売上数量及び利益金額に応じた複数のグループに分類し、
前記選択する処理は、前記複数の予測関数から、売上数量及び利益金額が多い商品を含むグループほど短期間における前記予測値と前記実績データとの誤差が最も小さい予測関数を選択し、売上数量及び利益金額が少ない商品を含むグループほど長期間における前記予測値と前記実績データとの誤差が最も小さい予測関数を選択することを特徴とする付記1に記載の選択プログラム。
(付記4)前記選択する処理は、分類したグループに応じた算出方法で前記誤差を算出することを特徴とする付記2または3に記載の選択プログラム。
(付記5)コンピュータによって実行される選択方法であって、
コンピュータが、
複数の商品について、期間ごとの売上数量を示す実績データを受け付け、
前記複数の商品を、各商品の売上数量に応じた複数のグループに分類し、
過去の売上数量から将来の売上数量を予測する予測関数を複数利用して、前記実績データから複数の予測値を算出し、
算出した複数の予測値と前記実績データとに基づいて、前記複数の予測関数から、前記グループに応じて予測関数を選択する
各処理を実行することを特徴とする選択方法。
(付記6)前記選択する処理は、前記複数の予測関数から、売上数量が多い商品を含むグループほど短期間における予測値と実績データとの誤差が最も小さい予測関数を選択し、売上数量が少ない商品を含むグループほど長期間における予測値と実績データとの誤差が最も小さい予測関数を選択することを特徴とする付記5に記載の選択方法。
(付記7)前記分類する処理は、前記複数の商品を、各商品の売上数量及び利益金額に応じた複数のグループに分類し、
前記選択する処理は、前記複数の予測関数から、売上数量及び利益金額が多い商品を含むグループほど短期間における前記予測値と前記実績データとの誤差が最も小さい予測関数を選択し、売上数量及び利益金額が少ない商品を含むグループほど長期間における前記予測値と前記実績データとの誤差が最も小さい予測関数を選択することを特徴とする付記5に記載の選択方法。
(付記8)前記選択する処理は、分類したグループに応じた算出方法で前記誤差を算出することを特徴とする付記6または7に記載の選択方法。
(付記9)複数の商品について、期間ごとの売上数量を示す実績データを受け付ける受付部と、
前記複数の商品を、各商品の売上数量に応じた複数のグループに分類する分類部と、
過去の売上数量から将来の売上数量を予測する予測関数を複数利用して、前記実績データから複数の予測値を算出する算出部と、
算出された複数の予測値と前記実績データとに基づいて、前記複数の予測関数から、前記グループに応じて予測関数を選択する選択部と
を有することを特徴とする選択装置。
(付記10)前記選択部は、前記複数の予測関数から、売上数量が多い商品を含むグループほど短期間における予測値と実績データとの誤差が最も小さい予測関数を選択し、売上数量が少ない商品を含むグループほど長期間における予測値と実績データとの誤差が最も小さい予測関数を選択することを特徴とする付記9に記載の選択装置。
(付記11)前記分類部は、前記複数の商品を、各商品の売上数量及び利益金額に応じた複数のグループに分類し、
前記選択部は、前記複数の予測関数から、売上数量及び利益金額が多い商品を含むグループほど短期間における前記予測値と前記実績データとの誤差が最も小さい予測関数を選択し、売上数量及び利益金額が少ない商品を含むグループほど長期間における前記予測値と前記実績データとの誤差が最も小さい予測関数を選択することを特徴とする付記9に記載の選択装置。
(付記12)前記選択部は、分類したグループに応じた算出方法で前記誤差を算出することを特徴とする付記10または11に記載の選択装置。