説明

変動値予測システム、在庫管理システム、プログラム、記憶媒体

【課題】モデル選択における精度を向上させること。
【解決手段】時系列データが格納される記憶手段と、記憶手段に格納された時系列データを用いて、ARIMAモデルに準じた複数のモデル候補についての最適パラメータを決定する最適パラメータ決定手段と、最適パラメータが決定されたモデルについて統計学上の情報量の正規化値と誤差指標の正規化値との和が最も小さいモデルを選択するモデル選択手段と、選択されたモデルを記憶手段に格納された時系列データに適用して将来の予測値を出力する予測手段と、を備え、モデル選択手段は、統計学上の情報量の正規化値が第1の閾値を超え、誤差指標の正規化値が第2の閾値未満であるモデルを除外してモデルを選択することを特徴とする変動値予測システム。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、変動値に関する過去の時系列データに基づいて将来の値を予測する変動値予測システム、これを一部に含む在庫管理システム、並びにこれらを実現するためのコンピュータ読み取り可能なプログラムに関する。
【背景技術】
【0002】
従来、熱伝導方程式から派生した数学モデルとして、変動資産(原資産)の派生商品(オプション等)について理論価格を算出するためのブラック・ショールズ方程式が知られている。ブラック・ショールズ方程式は、次式(1)により表される微分方程式である。式中、sは原資産の価格であり、f(s,t)は時点tにおける派生商品の価格であり、rは非危険資産の利子率であり、σは原資産の変動率(ボラティリティ)である。
【0003】
【数1】

【0004】
ブラック・ショールズ方程式の解は、一般的に次式(2)〜(4)で表されることが知られている。式中、C(s,t)は時点tにおけるヨーロピアンコールの価格であり、Nは正規分布であり、Kは行使価格であり、Tは残存期間である。
【0005】
【数2】

【0006】
【数3】

【0007】
ブラック・ショールズ方程式では、変動率σを与えることにより、一意に解を求めることができる。しかしながら、変動率σが表す原資産の価格分布は日々変動するものであるため、ブラック・ショールズ方程式は現実から乖離した解を算出する場合がある。
【0008】
一方、同じ熱伝導方程式から派生したモデルとして、定差方程式をベースとしたARIMA(Autoregressive Integrated Moving Average;自己回帰和分移動平均)モデルが知られている。ARIMAモデルの中核部分は、次式(5)により表される。式中、Xtは時点tにおける変動量であり、φn、θm(n=1〜p、m=1〜q)はパラメータであり、Zは分散σ2のホワイトノイズである。
【0009】
xt0xt-1+…+φp-1xt-p+Zt+θ0Zt-1+…+θq-1Zt-q …(5)
【0010】
ARIMAモデルを用いた変動量推定手法は、最適なパラメータφn、θm、次数p、q、分散σ2を接近法(最尤法)により推定するため、ブラック・ショールズ方程式のように一意に解を求めることはできないが、現実の結果に対する当てはまり性や変化への追従性に関して優れたパフォーマンスを示すことができる。
【0011】
特許文献1には、所定期間に亘り複数個のプリントジョブを処理する文書プリント作成システムにおいて使用される、プリント需要予測システムについて記載されている。このシステムが有するサービスマネージャは、第1予測アルゴリズムとして自己回帰和分移動平均アルゴリズム(ARIMAアルゴリズム)を使用するものとしている。
【先行技術文献】
【特許文献】
【0012】
【特許文献1】特開2009−093642号公報
【発明の概要】
【発明が解決しようとする課題】
【0013】
しかしながら、ARIMAモデルを用いた変動量推定手法では、予測値と実績値との乖離に基づいてモデルの絞り込みを行うのが一般的であるが、係る一般的な手法では、最適なモデルの絞り込みを行うことができない場合があった。
【0014】
本発明はこのような課題を解決するためのものであり、モデル選択における精度を向上させることが可能な変動値予測システム、これを一部に含む在庫管理システム、並びにコンピュータを変動値予測システム又は在庫管理システムとして機能させるためのコンピュータ読み込み可能なプログラム及び記憶媒体を提供することを、主たる目的とする。
【課題を解決するための手段】
【0015】
上記目的を達成するための本発明の第1の態様は、
ARIMA(Autoregressive Integrated Moving Average)モデルを用いて変動値の時系列データから将来の予測値を出力する変動値予測システムであって、
前記時系列データが格納される記憶手段と、
前記記憶手段に格納された時系列データを用いて、前記ARIMAモデルに準じた複数のモデル候補についての最適パラメータを決定する最適パラメータ決定手段と、
該最適パラメータ決定手段により最適パラメータが決定されたモデルについて、統計学上の情報量の正規化値と誤差指標の正規化値との和が最も小さいモデルを選択するモデル選択手段と、
該モデル選択手段により選択されたモデルを前記記憶手段に格納された時系列データに適用して将来の予測値を出力する予測手段と、
を備え、
前記モデル選択手段は、前記統計学上の情報量の正規化値が第1の閾値を超え、前記誤差指標の正規化値が第2の閾値未満であるモデルを除外してモデルを選択することを特徴とする、
変動値予測システムである。
【0016】
この本発明の第1の態様によれば、モデル選択における精度を向上させることができる。
【0017】
本発明の第2の態様は、
変動値の時系列データから将来の予測値を出力する変動値予測システムと、
該変動値予測システムによって出力された予測値から、在庫量が目標値として設定される目標最大在庫量を超過した分を差し引き、在庫量が目標値として設定される目標最小在庫量を下回った分を加算して最適発注量を算出する在庫管理処理部と、
を備える在庫管理システムである。
【0018】
この本発明の第2の態様によれば、変動値予測システムによって出力された予測値をベースとし、目標値として設定される目標最小在庫量と目標最大在庫量を実現するように、最適な発注量を算出することができる。これによって、販売店において過剰な在庫や品切れが発生するのを抑制することができる。
【0019】
本発明の第3の態様は、
コンピュータを、
ARIMAモデルを用いて変動値の時系列データから将来の予測値を出力する変動値予測システムとして機能させるためのコンピュータ読み取り可能なプログラムであって、
前記コンピュータを、
記憶手段に格納された時系列データを用いて、前記ARIMAモデルに準じた複数のモデル候補についての最適パラメータを決定する最適パラメータ決定手段と、
該最適パラメータ決定手段により最適パラメータが決定されたモデルについて、統計学上の情報量の正規化値が第1の閾値を超え、誤差指標の正規化値が第2の閾値未満であるモデルを除外しつつ、前記統計学上の情報量の正規化値と誤差指標の正規化値との和が最も小さいモデルを選択するモデル選択手段と、
該モデル選択手段により選択されたモデルを前記記憶手段に格納された時系列データに適用して将来の予測値を出力する予測手段と、
として機能させるためのコンピュータ読み取り可能なプログラムである。
【0020】
この本発明の第3の態様によれば、モデル選択における精度を向上させることができる。
【0021】
本発明の第4の態様は、
コンピュータを、
変動値の時系列データから将来の予測値を出力する変動値予測システムと、
該変動値予測システムによって出力された予測値から、在庫量が目標値として設定される目標最大在庫量を超過した分を差し引き、在庫量が目標値として設定される目標最小在庫量を下回った分を加算して最適発注量を算出する在庫管理処理部と、
として機能させるためのコンピュータ読み取り可能なプログラムである。
【0022】
この本発明の第4の態様によれば、変動値予測システムによって出力された予測値をベースとし、目標値として設定される目標最小在庫量と目標最大在庫量を実現するように、最適な発注量を算出することができる。これによって、販売店において過剰な在庫や品切れが発生するのを抑制することができる。
【0023】
本発明の第5の態様は、
本発明の第3又は第4の態様のプログラムを格納した、コンピュータ読み取り可能な記憶媒体である。
【発明の効果】
【0024】
本発明によれば、モデル選択における精度を向上させることが可能な変動値予測システム、これを一部に含む在庫管理システム、並びにコンピュータを変動値予測システム又は在庫管理システムとして機能させるためのコンピュータ読み込み可能なプログラムを提供することができる。
【図面の簡単な説明】
【0025】
【図1】本発明の一実施例に係る変動値予測システム、並びに在庫管理システムを実現するためのハードウエア構成図である。
【図2】図1に例示したハードウエア構成によって実現される変動値予測システム200、並びに在庫管理システム100の機能ブロック図である。
【図3】フィルタ処理部110により実行される特徴的な処理の流れを示すフローチャートである。
【図4】図3に示した処理を用いて段階的に補正を行った結果を示す図である。
【図5】前週同日差分、前週同日差分の前日差分、前日差分、前日差分の前日差分を生成する様子を示す図である。
【図6】変動値予測システム200により実行される処理間の関係を模式的に示す図である。
【図7】ARMA自動当てはめ部221により実行される処理の流れを示すフローチャートである。
【図8】パラメータiと次数p、qの組み合わせとの対応関係を示す図である。
【図9】図6のフローにおけるS416及びS418で除外される、正規化AICC及び正規化Errの範囲を示す図である。
【図10】図9におけるα点に相当するモデルを用いて予測を行った場合の実績値との乖離を示す図である。
【図11】図9におけるβ点に相当するモデルを用いて予測を行った場合の実績値との乖離を示す図である。
【図12】ARMAモデル推定部222により実行されるARMAモデル推定処理の流れを示すフローチャートである。
【図13】対数尤度計算部223により実行される尤度計算処理の流れを示すフローチャートである。
【図14】イノベーションアルゴリズム処理部224により実行されるイノベーションアルゴリズムの流れを示すフローチャートである。
【図15】勾配ベクトル計算部225により実行される勾配計算の処理の流れを示すフローチャートである。
【図16】最小値探索部226により実行される最小値探索処理の流れを示すフローチャートである。
【図17】予測処理部227により実行される予測処理の流れを示すフローチャートである。
【図18】和分処理が行われる様子を示す図である。
【図19】在庫管理処理部120が有する複数の機能を表す機能ブロック図である。
【図20】許容品切れ率M*と係数αの関係を規定した係数決定テーブル128の内容を示す図である。
【図21】許容品切れ率M*と正規分布における標準偏差基準値との関係を示す図である。
【図22】在庫管理処理部120により最適な発注量Oが算出され、これに基づいて商品が発注された場合の、販売量S、予測販売量S*、前日在庫量A、発注量O、納品量I、調整発注量Oadjの推移を示す図である。
【発明を実施するための形態】
【0026】
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
【実施例】
【0027】
以下、図面を参照し、本発明の一実施例に係る変動値予測システム、並びにこれを一部に含む在庫管理システムについて説明する。
【0028】
本発明の変動値予測システムは、変動値に関する過去の時系列データに基づいて将来の変動値の推移を予測するためのシステムである。この変動値予測システムは、下記のように販売店における在庫管理に好適に用いられる他、株価や為替レート等の過去データに基づいて将来の値を予測するのにも用いられ得る。以下の説明では、主に在庫管理に用いられる場合の処理について説明する。
【0029】
本発明の在庫管理システムは、本発明の変動値予測システムを一部に含み、スーパーや百貨店、コンビニエンスストア等の販売店における複数の商品の販売数量実績を過去の時系列データとして将来の販売数量を予測し、この予測結果に基づいて最適な仕入れ量を推定して在庫管理を行うためのシステムである。また、本発明の在庫管理システムは、スーパーにおける特売日等、統計的に特殊処理が必要なデータを除外等するためのフィルタ処理部を備えている。
【0030】
[ハードウエア構成]
図1は、本発明の一実施例に係る変動値予測システム、並びに在庫管理システムを実現するためのハードウエア構成図である。図示するように、本発明は、例えば、プログラムが格納されたプログラムメモリ10と、プログラムメモリ10に格納されたプログラムを実行するCPU(Central Processing Unit)20と、CPU20の演算対象値等が格納されたRAM(Random Access Memory)30と、外部から過去の時系列データを取得してRAM30に書き込むデータ取得装置40と、を有するコンピュータによって実現される。
【0031】
プログラムメモリ10は、例えばROM(Read Only Memory)やEEPROM(Electrically Erasable and Programmable Read Only Memory)である。プログラムメモリ10に格納されたプログラムは、フィルタ処理用プログラム12、変動値予測用プログラム14、在庫管理用プログラム16に大別される。
【0032】
データ取得装置40は、例えばインターネット等のネットワークを用いて個別販売店から過去の時系列データ(販売数量実績等)を取得し、RAM30に書き込む。なお、これに限らず、CD−ROMや半導体メモリ等の記憶媒体からデータを読み取る装置等が用いられてもよい。時系列データは、日次データ、週次データ、月次データ、年次データ等の形式で取得される。
【0033】
[機能ブロック]
図2は、図1に例示したハードウエア構成によって実現される変動値予測システム200、並びに在庫管理システム100の機能ブロック図である。本図における各機能ブロックは、プログラムメモリ10に格納されたプログラムをCPU30が実行することにより実現される。図示するように、在庫管理システム100は、フィルタ処理用プログラム12が実行されることにより機能するフィルタ処理部110と、変動値予測用プログラム14が実行されることにより機能する変動値予測システム200と、在庫管理用プログラム16が実行されることにより機能する在庫管理処理部120と、を備える。これらのプログラムは、CD−ROM等の記憶媒体に格納されたものがプログラムメモリ10にインストールされてもよいし、インターネット等を介してサーバからダウンロードされてもよい。
【0034】
[フィルタ処理]
ところで、食品スーパー等の販売店においては、不定期の特売が実施されている。特売日には、予め値引きの告知が行われ、値引いた売価がPOS(Point of sale)等に登録される。このような特売日には、実質的に需要の予測が困難であるため、特売日の仕入れ数量と販売数量が大きく乖離するという状況が多発している。また、特売日以外の通常販売日においても、特売反動としての過大仕入れ、過小仕入れが発生しているという現状がある。過大仕入れは在庫増をもたらし、過小仕入れは品切れをもたらすことになる。
【0035】
上記の事情に鑑み、将来の販売数量を予測するに際して、特売日と推定される日の該当品目のデータを除外する必要があるが、一般的な統計処理のように例えば3σ以上のデータを除外するような手法では、特売という事象の性質上、除外すべきデータを適切に選択することができない。販売数量の推移が単純な正規分布に従うと仮定するのは妥当性を欠くからである。
【0036】
本実施例に係るフィルタ処理部110は、過去の時系列データにおける歪度(sk;Skewness)と、標準偏差(σ)を組み合わせて、特定のデータを除外するための処理を行う。これによって、単純な正規分布に基づくフィルタ処理に比して、上記特売日に見られるような特定のデータを、適切に除外することができる。
【0037】
ここで、歪度skとは、次式(6)により表される指標値であり、データの分布の偏りを示している。式中、Nは標本数であり、xiは時系列データであり(i=0〜N-1)、μはxiの平均である。
【0038】
【数4】

【0039】
フィルタ処理部110は、更に具体的には、以下のような手順で特定のデータを除外する。図3は、フィルタ処理部110により実行される特徴的な処理の流れを示すフローチャートである。
【0040】
まず、フィルタ処理部110は、ある品目の時系列データをRAM30から読み込み(S300)歪度sk及び標準偏差σを算出する(S302)。RAM30から読み込んだデータは、CPUのキャッシュメモリやフラッシュメモリ、レジスタ等に一時的に格納されて演算の対象とされる。
【0041】
そして、歪度skの絶対値がA以下であるか否かを判定する(S304)。ここで、A及び後述するA〜Aは、例えば0.5〜2程度の範囲で定められる正の値であり、段階的な除外を行う性質上、Aが最も小さく、A、A、Aと漸増することが望ましい。例えば、A=A=1、A=A=1.5等と定めると好適である。歪度skの絶対値が閾値A以下である場合は、当該品目についてデータの除外は行わず、本フローを終了する。
【0042】
歪度skの絶対値がAを超える場合は、平均値からの乖離が+Bσ以上のデータを除外する(S304)。ここで、B及び後述するB、Bは、例えば1.5〜2.5程度の範囲で定められる正の値であり、段階的な除外を行う性質上、Bが最も小さく、B、Bと漸増することが望ましい。例えば、B=1.75、B=B=2等と定めると好適である。
【0043】
そして、除外後のデータについて再度歪度sk及び標準偏差σを算出し(S308)、歪度skの絶対値がA以下であるか否かを判定する(S310)。歪度skの絶対値がA2以下である場合は、当該品目について更なるデータの除外は行わず、本フローを終了する。
【0044】
歪度skの絶対値がAを超える場合は、平均値からの乖離が+Bσ以上のデータを除外する(S312)。そして、除外後のデータについて再度歪度sk及び標準偏差σを算出し(S314)、歪度skの絶対値がA以下であるか否かを判定する(S316)。歪度skの絶対値がA3以下である場合は、当該品目について更なるデータの除外は行わず、本フローを終了する。
【0045】
歪度skの絶対値がAを超える場合は、平均値からの乖離が+Bσ以上のデータを除外する(S318)。そして、除外後のデータについて再度歪度sk及び標準偏差σを算出し(S320)、歪度skの絶対値がA以下であるか否かを判定する(S322)。歪度skの絶対値がA以下である場合は、当該品目について更なるデータの除外は行わず、本フローを終了する。
【0046】
歪度skの絶対値がAを超える場合は、当該品目の時系列データ全体を例外処理に回すようにフラグ等を付与する(S324)。これに該当するのは、例えば新製品であり、市場が定常状態となるまで他の特殊な統計処理が必要と考えられるからである。
【0047】
フィルタ処理部110は、このような処理によって適宜データを除外すると、残ったデータをRAM30に格納する。RAM30に格納されたデータは、変動値予測システム200によって演算の対象とされる。
【0048】
なお、図3に示したフローは、データを三段階に亘って除外するものとしたが、この段階数は適宜変更してよく、対象とする変動値の性質によって適切に定めればよい。
【0049】
図4は、図3に示した処理を用いて補正を行った結果を示す図である。このように、本実施例のフィルタ処理部110によれば、特売日における販売量のような所定傾向を有するデータを適切に除外することができる。
【0050】
[変動値予測処理]
変動値予測システム200は、図2に示すように、差分系列化処理部210と、ARIMA予測処理部220と、和分処理部230と、最適モデル選択部240と、を備える。ARIMA予測処理部220は、更に、ARMA自動当てはめ部221、ARMAモデル推定部222、対数尤度計算部223、イノベーションアルゴリズム処理部224、勾配ベクトル計算部225、最小値探索部226、予測処理部227を含む。
【0051】
これらの機能ブロックは、図1においては詳細に示さなかったが、プログラムメモリ10に格納された変動値予測用プログラム14に含まれるプログラム単位(有る程度のまとめ利を有する命令列)が実行されることによって機能するものである。なお、これらのプログラム単位は、明確に別のプログラムとなっている必要はなく、部分的に共有される関数やルーチンが存在してもよい。
【0052】
〔差分系列化処理〕
差分系列化処理部210は、フィルタ処理部110によりフィルタ処理が行われたデータに対して、欠損処理、異常値処理、変換処理、差分系列化処理等を行って、処理されたデータをARIMA予測処理部220に提供する。
【0053】
欠損処理では、データが欠損している部分に対し、年次データについては前後年の平均値を、月次データについては当該月の平均値を、週次データについては当該週の前後週の平均値を、日次データについては当該日と同じ曜日の平均値を、それぞれ充当する処理を行う。但し、所定割合(例えば数[%]程度)以上データが欠損しているデータ群については、予測処理の対象外とする。
【0054】
異常値処理では、欠損処理後の時系列データについて標準偏差σを算出し、±3σを超えるデータを除外する。なお、異常値処理を施したデータ群と、施さないデータ群を生成してRAM30等に格納する。
【0055】
変換処理では、異常値処理を施したデータ群と、施さないデータ群に対し、(1)平方根を求めたデータ群、(2)対数(常用対数でも自然対数でもよい)を求めたデータ群、(3)これらを施さないデータ群を生成してRAM30等に格納する。なお、(1)と(2)は年次データ及び月次データについてのみ行う。
【0056】
差分系列化処理では、上記変換処理が行われたデータ群について、以下の処理を行う。
【0057】
日次データについては、前週同日差分(該当日のデータと、前週の同じ曜日のデータとの差分;以下同様に解釈することができる)、前週同日差分の前日差分、前日差分、前日差分の前日差分などのデータを生成してRAM30又はキャッシュメモリ等に格納する。
【0058】
また、週次データについては、前年同週差分、前年同週差分の前週差分、前週差分、前週差分の前日差分などのデータを生成してRAM30又はフラッシュメモリ等に格納する。
【0059】
また、月次データについては、前年同月差分、前年同月差分の前月差分、前月差分、前月差分の前日差分などのデータを生成してRAM30又はフラッシュメモリ等に格納する。
【0060】
また、年次データについては、前年差分、前年差分の前日差分などのデータを生成してRAM30又はキャッシュメモリ等に格納する。
【0061】
図5は、前週同日差分、前週同日差分の前日差分、前日差分、前日差分の前日差分を生成する様子を示す図である。
【0062】
このように、複数のデータパターンを生成することにより、将来値の予測に最も適したデータパターンを選択することが可能となる。この結果、予測精度を高めることができる。
【0063】
ARIMA予測処理部220及び和分処理部230の処理は、差分系列化処理部210によって用意された複数のデータパターン(異常値処理を施す/施さない、平方根を求める/対数を求める/これらを施さない、どの態様で差分処理を行うかにより異なる)に対して行われる。そして、最適モデル選択部240によって、複数のデータパターンから、最適なモデルが導出されたデータパターンが選択され、当該モデルによる予測値が、最終的な変動値の予測値として出力される。
【0064】
〔ARIMA予測処理〕
ARIMA予測処理部220は、基本的には、イノベーションアルゴリズムと厳密最尤法に、DFP法(Davidson-Flecher-Powell法)を用いた数理統計上の解法を用いてARIMAパラメータを推定する。
【0065】
図6は、ARIMA予測処理部220を中心として実行される処理の関係を模式的に示す図である。ARIMA予測処理部220では、差分系列化処理部210から提供されるデータに対して、(1)ARMAモデルの次数パターンを複数定義し、(2)各次数パターン毎にARMAパラメータ推定を行い、(3)パラメータが決定された次数について、AICC及び誤差指標を算出し、(4)AICC及び誤差指標に基づいて最適次数モデルを選択する。
【0066】
そして、和分処理部230が差分データを実データに戻した上で、最適モデル選択部240が誤差指標に基づいて最適モデルを選択する。
【0067】
なお、図中のパラメータ等については順次説明する。
【0068】
本実施例のARIMA予測処理部220では、(4)の最適次数モデル選択において、AICCと誤差指標の正規化値(正規化AICC、及び正規化誤差指標Err)を参照し、正規化AICCが所定値を超え、正規化誤差指標Errが所定値未満である一又は複数の領域を除外するという特徴的な処理を行っている。
【0069】
ここで、AICCとは、AIC(Akaike's Information Criterion;赤池情報量規準)を、ARIMAモデルに適合するように改良されたものであり、ハービックとツアイによって示された指標値である。AICCは、値が小さいモデルが元データによく適合するという性質を有している。
【0070】
一般的に、誤差指標、すなわち、実績値が存在する範囲に対して算出された予測値と実績値の差を合計した値に基づく指標は、直接的に当てはまり度合いを示すものであるため、単に誤差指標を用いる方が当てはまり性を効果的に向上させることができるとも考えられる。しかしながら、誤差指標は、プラス方向の乖離とマイナス方向の乖離が相殺されて低い値となって現れるという不正確さを孕んでいるため、誤差指標が低いからといって必ず当てはまり度合いが高いとはいえない。
【0071】
この点、本発明では、正規化AICCが所定値を超え、正規化誤差指標Errが所定値未満である一又は複数の領域を除外するため、予測誤差と誤差のバラツキを小さくすることができ、予測精度を向上させることができる。
【0072】
なお、本発明の適用上、AICCに代えて、値が小さいモデルが元データによく適合するという性質を有している他の統計学上の情報量を用いてもよい。例えば、上記AlCの他、SBlC、BlC等を用いることができる。AlC、SBl、SBlCCは、次式(7)〜(9)で表される。
【0073】
【数5】

以下、具体的な処理について説明する。ARIMA予測処理部220は、与えられた時系列データ{x0、x1、…、xN-1}に対して、次式(10)で表される最適なARMAモデルのパラメータを推定する。式中、Xtは時点tにおける変動量であり、AR係数φn、MA係数θm(n=0〜p-1、m=0〜q-1)及びその次数p、qが、推定するパラメータであり、Zは分散がσ2のホワイトノイズである。
【0074】
xt0xt-1+…+φp-1xt-p+Zt+θ0Zt-1+…+θq-1Zt-q …(10)
【0075】
係る推定では、ガウス尤度が最大になるパラメータを推定する(より具体的には、−2×(対数尤度)の最小値を求める)。
【0076】
各パラメータが与えられた際の尤度は、イノベーションアルゴリズムを用いて計算し、最適パラメータの探索は、下記のように、Davidson-Flecher-Powellの接近法を用いる。
【0077】
−−−−−−(1.処理概要)−−−−−−
図7は、ARMA自動当てはめ部221により実行される処理の流れを示すフローチャートである。なお、以下の各フローチャートにおいて、ある機能ブロックが他の機能ブロックを起動して処理を行わせることが多々発生するが、「…に処理を依頼する」等の表現は適宜省略するものとする。
【0078】
まず、ARMA自動当てはめ部221は、S400〜S406の処理を、パラメータiを、値1を起点として1ずつインクリメントさせながら値50となるまで繰り返し実行する。ここで、パラメータiは、次数p、qの組み合わせと一対一で対応する値である。図8は、パラメータiと次数p、qの組み合わせとの対応関係を示す図である。また、値50までループ処理を行う点は設計事項であり、ループ回数は任意に変更してよい。
【0079】
ARIMA予測処理部220は、次式(11)、(12)に基づいてパラメータiから次数p、qを決定する(S400)。なお、係る次数の決定は、図7の対応関係を実現したものである。
【0080】
p=(i/7の商) …(11)
q=(i/7の余り) …(12)
【0081】
次に、上式(8)、(9)の解が、p=7且つq>0であるか否かを判定し(S402)、p=7且つq>0であれば、例外としてp=0、q=7と置換する(S404)。
【0082】
そして、S400〜S404で決定された次数p、qに関してARMAモデル推定を実行し(S406;後述する図12)、当該次数についての最適なARMAパラメータを決定する。
【0083】
i=値1〜50のそれぞれについてS400〜S406を実行すると、「ARMAモデル推定」処理において算出されたAICC、及びErrについて、最大値及び最小値を求める(S410)。
【0084】
そして、50個のARMAモデルから、最適モデルを決定する。最適モデルの決定は、例えば、S412〜S422の処理を、パラメータiを、値1を起点として1ずつインクリメントさせながら値50となるまで繰り返し実行する。
【0085】
まず、S400〜S404と同様の手法により、パラメータiから次数p、qを決定する(S412)。なお、関数等によりパラメータiとモデルの対応付けがなされている場合は、本ステップの処理は省略可能である。
【0086】
次に、決定した次数に相当するモデルについて、次式(13)、(14)によりAICC、及びErrの正規化値を算出する(S414)。
【0087】
正規化AICC={AICC−(AICCの最小値)}/{(AICCの最大値)−(AICCの最小値)} …(13)
正規化Err ={Err−(Errの最小値)}/{(Errの最大値)−(Errの最小値)} …(14)
【0088】
最適モデルの決定は、正規化AICCと正規化Errの和が最小となるモデル(次数パターン)を選択する処理である。但し、以下のように、正規化AICCと正規化Errの組み合わせが所定範囲内であるモデル(次数パターン)は除外する。なお、図7のS416〜S420において、正規化を「(正)」と略記した。
【0089】
まず、正規化AICCが閾値C1を超え、且つ正規化Errが閾値D1未満であるか否かを判定する(S416)。正規化AICCが閾値C1を超え、且つ正規化Errが閾値D1未満である場合は、該当モデルを採用せず、次のパラメータiに移行する。
【0090】
次に、正規化AICCが閾値C2を超え、且つ正規化Errが閾値D2未満であるか否かを判定する(S418)。正規化AICCが閾値C2を超え、且つ正規化Errが閾値D2未満である場合は、該当モデルを採用せず、次のパラメータiに移行する。
【0091】
図9(A)は、図6のフローにおけるS416及びS418で除外される、正規化AICC及び正規化Errの範囲を示す図である。
【0092】
これによって、前述のように、予測誤差と誤差のバラツキを小さくすることができ、予測精度を向上させることができる。
【0093】
図10は、図9におけるα点に相当するモデルを用いて予測を行った場合の実績値との乖離を示す図である。一方、図11は、図9におけるβ点に相当するモデルを用いて予測を行った場合の実績値との乖離を示す図である。図10及び図11の上段は実測値についてのグラフであり、下段は差分データについてのグラフとなっている。これらは、正規化AICCと正規化Errの和が等しい組み合わせであるが、β点に相当するモデルの方が、予測値と実績値の乖離が大きくなっている。
【0094】
なお、図9(A)に示した範囲に代えて、図9(B)に示すように、より細かく設定された領域を除外してもよい。すなわち、正規化誤差指標Errは小さいものの正規化AICCが大きい傾向である領域を除外すれば、本発明の目的は達成される。
【0095】
そして、正規化AICCと正規化Errの和が、これまでの最小値であるか否かを判定する(S420)。なお、正規化AICCと正規化Errの和は、初期値として値2(とりうる最大値)が与えられているものとする。
【0096】
正規化AICCと正規化Errの和がこれまでの最小値である場合には、正規化AICCと正規化Errの和、及び当該回に相当するモデルを更新する(S422)。より具体的には、レジスタやフラッシュメモリ上に予め設定されている所定の領域に、正規化AICCと正規化Errの和の最小値、及びモデルの識別子等を上書き保存する。
【0097】
こうして、全てのパラメータiについてS412〜S422の処理を実行し、最終的に書き込まれているモデルが、最適なモデルとして選択される。選択されたモデルは、RAM30に格納される。
【0098】
−−−−−−(2.ARMAモデル推定)−−−−−−
以下、図7のフローにおけるS406のARMAモデル推定処理について説明する。図12は、ARMAモデル推定部222により実行されるARMAモデル推定処理の流れを示すフローチャートである。
【0099】
まず、ARMAモデル推定部222は、パラメータの推定精度を定義する(S500)。ここでは、パラメータ推定の刻み幅Δを10-7とする。
【0100】
次に、ARMAモデルの初期値を定義する(S502)。例えば、φ0=−1、φ1〜φp=0、θ0=1、θ1〜θq=0とする。
【0101】
次に、AR係数ベクトル{φ1,…,φp}とMA係数ベクトル{θ1,…,θq}の合体ベクトルΘを定義する(S504)。合体ベクトルΘの初期値は、{0,0,…,0}とする。
【0102】
次に、合体ベクトルΘの初期値{0,0,…,0}に対する{−2×logeL}を算出する(S506)。Lは、尤度である。{−2×logeL}の算出は、後述する図13のフローに基づいて行う。
【0103】
次に、合体ベクトルΘの初期値{0,0,…,0}における、勾配ベクトルgを算出する(S508)。勾配ベクトルgの算出は、後述する図15のフローに基づいて行う。
【0104】
次に、(p+q)次の正方行列Aを定義する(S510)。正方行列Aの初期値は、(p+q)次の単位行列とする。
【0105】
そして、以下のようにパラメータ探索を行う(S512〜S520)。
【0106】
まず、Θ(k)、g(k)、A(k)に対して、{−2×logeL}が最小となるようなΘ(k+1)を選択する(S512)。ここで、上付き添え字の(k)は、S512〜S520のループ処理におけるk回目の処理であることを示している。
【0107】
次に、合体ベクトルの変化量ΔΘ=Θ(k+1)−Θ(k)を算出し(S514)、Θ(k+1)に対応する勾配ベクトルg(k+1)を求める(S516;後述する図15)。
【0108】
そして、勾配ベクトルの変化量Δg=g(k+1)−g(k)を算出し(S518)、合体ベクトルΘや勾配ベクトルgを更新すると共に、これらに基づき決定される行列Aを更新する(S520)。ここで、行列Aは、その時点で決定されている行列Aと、Δg、ΔΘを用いて次式(15)により決定される。
【0109】
【数6】

【0110】
係る処理を、ΔΘ、及び勾配ベクトルの最大ノルムが共にΔ以上である間(換言すると、ΔΘ、及び勾配ベクトルの最大ノルムがΔ未満となるまでの間)、繰り返し実行する。
【0111】
上記ループ処理が終了すると、合体ベクトルΘを、AR係数ベクトル{φ1,…,φp}とMA係数ベクトル{θ1,…,θq}に分離し(S522)、尤度Lとホワイトノイズの分散σ2を算出する(S524;後述する図13)。
【0112】
このようにして得られたAR係数ベクトルとMA係数ベクトル、及びσ2が、当該次数パターンにおける最適なパラメータである。
【0113】
そして、次式(16)によりAICCを算出し(S526)、S522で得られたφ、θを用いて過去の時系列データから予測値を算出する(S528;後述する図17)。そして、算出した予測値と実測値に対して次式(17)を適用し、Errを算出する(S528)。式中、nは時系列データの個数である。
【0114】
AICC={−2×logeL}+{2n(p+q+1)/(n−p−q−2)} …(16)
Err =log10|誤差合計|+log10(誤差標準偏差) …(17)
【0115】
−−−−−−(3.尤度計算)−−−−−−
以下、尤度(対数尤度)計算処理について説明する。尤度Lは、次式(18)によって表される。また、{−2×logeL}は、次式(19)のように変形できる。
【0116】
【数7】

【0117】
図13は、対数尤度計算部223により実行される尤度計算処理の流れを示すフローチャートである。
【0118】
まず、対数尤度計算部223は、イノベーションアルゴリズムを起動する(S600)。そして、イノベーションアルゴリズムが正常に終了したか否かを判定する(S602)。
【0119】
イノベーションアルゴリズムが正常に終了した場合は、次式(20)に基づいて、ベクトルyi(i=1〜n(データ個数))を生成する(S604)。ここで、xkは時系列データであり(k=1〜n(データ個数))、ri、及びθi,jはイノベーションアルゴリズムにおいて算出される値である。
【0120】
【数8】

【0121】
なお、このような累積加算を含む数式は、周知のループ処理等により実現されるが、本明細書では、ループ処理の詳細についての説明を省略する。
【0122】
ベクトルyiを生成すると(或いはベクトルyiの生成に付随して)、次式(21)、(22)に基づいて、S及びlogRを算出する(S606)。
【0123】
【数9】

【0124】
そして、ホワイトノイズの分散σ2を次式(23)により算出し(S608)、これを用いて次式(24)で示される値を出力する(S610)。上式(19)より、式(24)は{−2×logeL}に相当する。
【0125】
σ2=S/n …(23)
(出力)={log(2πσ2)+1}×n+logR …(24)
【0126】
一方、イノベーションアルゴリズムが正常に終了しなかった場合は、ホワイトノイズの分散σ2を値0とし(S612)、エラー値(最大値)を出力する(S614)。
【0127】
−−−−−−(4.イノベーションアルゴリズム)−−−−−−
以下、イノベーションアルゴリズムについて説明する。図14は、イノベーションアルゴリズム処理部224により実行されるイノベーションアルゴリズムの流れを示すフローチャートである。
【0128】
まず、イノベーションアルゴリズム処理部224は、次数p、qのうち大きい方の値をパラメータmとし(S700)、(m+1)次のベクトルΨを、次式(25)に基づき生成してレジスタ等に格納する(S702)。
【0129】
【数10】

【0130】
次に、((m+1)×(m+1))次の行列mat、及び(m+1)次のベクトルvecを、次式(26)、(27)により生成してレジスタ等に格納する(S704)。
【0131】
【数11】

【0132】
次に、mat×γ=vecを満たす(m+1)次のベクトルγを求める(S706)。なお、係るベクトルの解法は、既に代数学の分野において種々の手法が公知となっているため、説明を省略する。
【0133】
次に、((2m+1)×(m+1))次の行列κを次式(28)に基づき生成してレジスタ等に格納する(S708)。
【0134】
【数12】

【0135】
次に、イノベーションアルゴリズムの出力ri、θi,jを、次式(29)、(30)に基づき算出する(S710)。
【0136】
【数13】

【0137】
次に、全てのri(i=1〜n−1)について値が正であるか負であるかを判定し(S712)、少なくとも一つのriの値が負である場合には、失敗フラグを設定する(S714)。係るフラグは、前述した図13のS602において用いられる。
【0138】
そして、算出したri、θi,jを出力する(S716)。
【0139】
−−−−−−(5.勾配計算)−−−−−−
以下、勾配計算について説明する。図15は、勾配ベクトル計算部225により実行される勾配計算の処理の流れを示すフローチャートである。
【0140】
まず、勾配ベクトル計算部225は、{−1、φ1、φ2、…φp}という要素値を有する(p+1)次のベクトルtmpφを生成してレジスタ等に格納する(S800)。
【0141】
次に、{1、θ1、θ2、…θq}という要素値を有する(q+1)次のベクトルtmpθを生成してレジスタ等に格納する(S802)。
【0142】
次に、極小点フラグflgの初期値をtrueとする(S804)。
【0143】
そして、入力されたφ、θに対する{−2×logeL}を、図13のフローによって求める(S806)。以下、これをlと表記する。
【0144】
続いて、AR係数φに対する勾配ベクトルの成分(偏微分係数)を求める。
【0145】
ARIMA予測処理部220は、以下の処理を、パラメータiが、値1を起点として1ずつインクリメントさせながらpとなるまで繰り返し実行する。
【0146】
まず、φのi番目の要素φ[i]からΔを減算してtmpφのi番目の要素 tmpφ[i]を書き換え(S808)、tmpφ、及びθに対応する{−2×logeL}を算出してパラメータlとし(S810)、パラメータlがlに比して小さいか否かを判定し(S812)、パラメータlがlに比して小さい場合には、極小点フラグflgをfalseに変更する(S814)。
【0147】
同様に、φのi番目の要素φ[i]φ[i]にΔを加算してtmpφのi番目の要素 tmpφ[i]を書き換え(S816)、tmpφ、及びθに対応する{−2×logeL}を算出してパラメータlとし(S818)、パラメータlがlに比して小さいか否かを判定し(S820)、パラメータlがlに比して小さい場合には、極小点フラグflgをfalseに変更する(S822)。
【0148】
そして、パラメータlに対する{−2×logeL}、及びパラメータlに対する{−2×logeL}が求まったか否かを判定する(S824)。
【0149】
パラメータlに対する{−2×logeL}が求まらなかった場合は、勾配ベクトルgの(i−1)番目の要素g[i−1]を次式(31)に基づいて決定し(S826)、パラメータlに対する{−2×logeL}とパラメータlに対する{−2×logeL}の双方が求まった場合は、勾配ベクトルgの(i−1)番目の要素g[i−1]を次式(32)に基づいて決定し(S828)、パラメータlに対する{−2×logeL}が求まらなかった場合は、勾配ベクトルgの(i−1)番目の要素g[i−1]を次式(33)に基づいて決定する(S830)。
【0150】
g[i−1]=(l−l)/Δ …(31)
g[i−1]=(l−l)/(2×Δ) …(32)
g[i−1]=(l−l)/Δ …(33)
【0151】
続いて、MA係数θに対する勾配ベクトルの成分(偏微分係数)を求める。
【0152】
ARIMA予測処理部220は、以下の処理を、パラメータiが、値1を起点として1ずつインクリメントさせながらqとなるまで繰り返し実行する。
【0153】
まず、θのi番目の要素θ[i]からΔを減算してtmpθのi番目の要素tmpθ[i]を書き換え(S832)、φ、及びtmpθに対応する{−2×logeL}を算出してパラメータlとし(S834)、パラメータlがlに比して小さいか否かを判定し(S836)、パラメータlがlに比して小さい場合には、極小点フラグflgをfalseに変更する(S838)。
【0154】
同様に、θのi番目の要素θ[i]にΔを加算してtmpθのi番目の要素tmpθ[i]を書き換え(S840)、φ、及びtmpθに対応する{−2×logeL}を算出してパラメータlとし(S842)、パラメータlがlに比して小さいか否かを判定し(S844)、パラメータlがlに比して小さい場合には、極小点フラグflgをfalseに変更する(S846)。
【0155】
そして、パラメータlに対する{−2×logeL}、及びパラメータlに対する{−2×logeL}が求まったか否かを判定する(S848)。
【0156】
パラメータlに対する{−2×logeL}が求まらなかった場合は、勾配ベクトルの(i+p−1)番目の要素g[i+p−1]を次式(34)に基づいて決定し(S850)、パラメータlに対する{−2×logeL}とパラメータlに対する{−2×logeL}の双方が求まった場合は、勾配ベクトルの(i+p−1)番目の要素g[i+p−1]を次式(35)に基づいて決定し(S852)、パラメータlに対する{−2×logeL}が求まらなかった場合は、勾配ベクトルの(i+p−1)番目の要素g[i+p−1]を次式(36)に基づいて決定する(S854)。
【0157】
g[i+p−1]=(l−l)/Δ …(34)
g[i+p−1]=(l−l)/(2×Δ) …(35)
g[i+p−1]=(l−l)/Δ …(36)
【0158】
続いて、極小点フラグがtrueであるか否かを判定し(S856)、極小点フラグがtrueであれば、勾配ベクトルの全成分を値0とする(S858)。
【0159】
そして、勾配ベクトルgを出力する(S860)。
【0160】
−−−−−−(6.{−2×logeL}の最小値探索)−−−−−−
以下、{−2×logeL}の最小値探索について説明する。図16は、最小値探索部226により実行される最小値探索処理の流れを示すフローチャートである。
【0161】
以下に説明する最小値探索処理は、合体ベクトルΘ(k)に対して、Θ(k+1)=Θ(k)+sAgを満たす修正合体ベクトルに対応する{−2×logeL}が、最小となるようなsを探索するものである。
【0162】
まず、最小値探索部226は、AR係数ベクトル{φ1,…,φp}とMA係数ベクトル{θ1,…,θq}の合体ベクトルΘを定義する(S900)。
【0163】
次に、スカラ配列{s0、s1、s2、s3、s4}、及びこれらに対応する{−2×logeL}の配列{l0、l1、l2、l3、l4}を定義する(S902)。
【0164】
次に、s2の初期値を値0、端点決定フラグflagの初期値をfalse、デクリメントカウンタのカウント値iの初期値をp、係数cの初期値を値1とする(S904)。
【0165】
次に、カウント値iが値0よりも大きいか否かを判定する(S906)。カウント値iが値0よりも大きい場合は、行列Aと勾配ベクトルgを乗算したベクトルAgのi−1番目の要素{Ag[i−1]}が値0であるか否かを判定し(S908)、値0である場合には、次式(37)に基づき係数cを決定すると共にパラメータiを1デクリメントして(S910)、S906に戻る。
【0166】
c=c×i/(p+1−i) …(37)
【0167】
係る処理によって、端点s0及びs4を決定する際に分母が値0となることを回避している。
【0168】
{(Ag)[i−1]}が値0でない場合は、次式(38)によりs0を決定し(S912)、次式(39)によりs4を決定する(S914)。
【0169】
0=(φ[i]−c)/(Ag[i−1]) …(38)
4=(φ[i]+c)/(Ag[i−1]) …(39)
【0170】
そして、端点決定フラグflagをtrueに変更する(S916)。
【0171】
S916の処理を実行した場合、及びS906においてカウント値iが値0以下であると判定された場合は、端点決定フラグflagがtrueであるか、falseであるかを判定する(S920)。
【0172】
端点決定フラグflagがtrueである場合は、図13のフローを実行し、l2、すなわちs2に対応する{−2×logeL}を算出する(S922)。具体的には、Θ(k+1)=Θ(k)+s2Agを満たす修正合体ベクトルを算出し、これらをφとθに分解したベクトルを用いて{−2×logeL}を算出する(但し、s2は初期値0であるため、実際にはΘ(k)をφとθに分解したベクトルを用いて{−2×logeL}を算出することになる)。
【0173】
そして、以下のように、{−2×logeL}を最小値とするsを探索する(S924〜S954)。
【0174】
まず、s1を、s0とs2の中点とする(S924)。次に、l1、すなわちs1に対応する{−2×logeL}を算出する(S926)。具体的には、Θ(k+1)=Θ(k)+s1Agを満たす修正合体ベクトルを算出し、これらをφとθに分解したベクトルを用いて{−2×logeL}を算出する。
【0175】
続いて、s3を、s2とs4の中点とする(S928)。次に、l3、すなわちs3に対応する{−2×logeL}を算出する(S930)。具体的には、Θ(k+1)=Θ(k)+s3Agを満たす修正合体ベクトルを算出し、これらをφとθに分解したベクトルを用いて{−2×logeL}を算出する。
【0176】
そして、l1、l2、l3の大小関係を比較し(S932)、l1<l2且つl1<l3であれば、s4にs2を代入し、s2にs1を代入し、l4にl2を代入し、l2にl1を代入する(S934)。
【0177】
また、l1≧l2又はl2≦l3であれば、s0にs1を代入し、s4にs3を代入し、l0にl1を代入し、l4にl3を代入する(S936)。
【0178】
また、l1>l3且つl2>l3であれば、s0にs2を代入し、s2にs3を代入し、l0にl2を代入し、l2にl3を代入する(S938)。
【0179】
このような処理を、ベクトル(s1−s3)Agの絶対値が10−7となるまでの間、繰り返し実行する。
【0180】
ベクトル(s1−s3)Agの絶対値が10−7となると、{Θ+s2Ag}を出力する(S956)。
【0181】
なお、S920において端点決定フラグflagがfalseであると判定された場合は、AR係数で端点を決定することができなかったことを意味する。従って、以下のようにMA係数によって端点を決定する。
【0182】
まず、デクリメントカウンタのカウント値iの初期値をq、係数cの初期値を値1とする(S960)。
【0183】
次に、カウント値iが値0よりも大きいか否かを判定する(S962)。カウント値iが値0よりも大きい場合は、行列Aと勾配ベクトルgを乗算したベクトルAgのp+i−1番目の要素{Ag[p+i−1]}が値0であるか否かを判定し(S964)、値0である場合には、次式(40)に基づき係数cを決定すると共にパラメータiを1デクリメントして(S966)、S962に戻る。
【0184】
c=c×i/(q+1−i) …(40)
【0185】
{Ag[p+i−1]}が値0でない場合は、次式(41)によりs0を決定し(S968)、次式(42)によりs4を決定する(S970)。
【0186】
0=(θ[i]−c)/(Ag[p+i−1]) …(41)
4=(θ[i]+c)/(Ag[p+i−1]) …(42)
【0187】
そして、端点決定フラグflagをtrueに変更する(S972)。
【0188】
S972の処理を実行した場合、及びS962においてカウント値iが値0以下であると判定された場合は、端点決定フラグflagがtrueであるか、falseであるかを判定する(S974)。
【0189】
端点決定フラグflagがtrueである場合は、S922に進む。一方、端点決定フラグflagが依然としてfalseである場合は、初期値Θを出力する(S976)。
【0190】
−−−−−−(7.予測処理)−−−−−−
以下、予測処理について説明する。図17は、予測処理部227により実行される予測処理の流れを示すフローチャートである。本フローは、図12のフローによって得られた次数パターン毎の最適なパラメータ(モデル)について実行される。
【0191】
まず、予測処理部227は、イノベーションアルゴリズムを起動し(S1000)、上記得られたパラメータに基づくri、θi,jを取得する。
【0192】
次に、次式(43)に基づき、(n+m)次の予測値系列yを生成し(S1002)、次式(44)に基づき、(n+m)次の残差系列zを生成する(S1004)。
【0193】
【数14】

【0194】
なお、ここで生成されたyiとxiの差分が、図12のS528における「誤差」に相当する。
【0195】
続いて、次式(45)に基づき、指標値Syを算出し(S1006)、次式(46)に基づき、指標値Sを算出する(S1008)。
【0196】
【数15】

【0197】
そして、指標値SyがS以下であるか否かを判定し(S1010)、指標値SyがS以下である場合には予測値系列yを出力し(S1012)、指標値SyがSを超える場合には残差系列zを出力する(S1014)。
【0198】
[和分処理]
和分処理部230は、予測処理部227の出力に和分処理を行って、実データ系列に変換する。具体的には、例えば「前日同日差分の前日差分」を入力される時系列データとしている場合、(該当日の予測値+該当日の前日の予測値)+(該当日の一週間前の予測値(実績値が存在する場合は実績値)を算出する。このように、差分系列化処理において行われた処理を逆算するような処理を行って、実データ系列の予測値に変換する。図18は、和分処理が行われる様子を示す図である。
【0199】
[最適モデル選択処理]
前述したように、ARIMA予測処理部220及び和分処理部230の処理は、差分系列化処理部210によって用意された複数のデータパターン(異常値処理を施す/施さない、平方根を求める/対数を求める/これらを施さない、どの態様で差分処理を行うかにより異なる)に対して行われる。
【0200】
最適モデル選択部240は、複数のデータパターンから、最適なモデルが導出されたデータパターンを選択する。具体的には、和分処理が行われた実データ系列の予測値のうち、実績値と重複している範囲において、予測値と実績値の差分(誤差)についての誤差指標Errを算出し、誤差指標Errが最も小さいモデル(及びデータパターン)を選択する。そして、選択されたモデルによる予測値を、変動値予測結果として出力する。
【0201】
以上説明した本実施例の変動値予測システム200によれば、正規化AICCが所定値を超え、正規化誤差指標Errが所定値未満である一又は複数の領域を除外するため、予測誤差と誤差のバラツキを小さくすることができ、予測精度を向上させることができる。
【0202】
また、差分系列化処理部210が複数パターンのデータ系列を用意し、これらから将来の予測に最も適したデータ系列を選択するため、予測精度を更に向上させることができる。
【0203】
なお、本出願の出願人は、時系列データとしてある商品の84週分の売り上げデータを用意し、差分系列化処理において2〜24パターンのデータ系列を生成、上記のように次数パターンを50パターンとして計算量の見積もりを行った。その結果、1商品あたりの計算量は2億回〜120億回となり、近年のコンピュータの性能から、十分に実用に耐えるものであるとの確認を得ている。
【0204】
[在庫管理処理]
在庫管理処理部120には、スーパー等の販売店における日々の販売量がフィルタ処理部110を介して変動値予測システム200に入力されることにより、変動値予測システム200によって算出された予測販売量が入力される。
【0205】
そして、在庫管理処理部120は、変動値予測システム200によって算出された将来の予測販売量S*と、ユーザーによりキーボードやマウス等の入力デバイスを介して入力される目標値である目標在庫日数D*と、許容品切れ率M*とに基づいて、最適な発注量を決定し出力する。
【0206】
図19は、在庫管理処理部120が有する複数の機能を表す機能ブロック図である。図示するように、在庫管理処理部120は、目標最大在庫量算出部122と、目標最小在庫量124と、発注量決定部126と、係数決定テーブル128と、を備える。
【0207】
目標最大在庫量算出部122は、過去の在庫量Aの平均値に、目標在庫日数D*を乗じることにより、目標最大在庫量AMax*を算出する(次式47)。
【0208】
Max*=E(A)×D* …(47)
【0209】
目標最小在庫量124は、過去の所定期間における予測販売量S*iと実際の販売量Siの差分と(i=1、2、…n(nは上記所定期間を表す))、許容品切れ率M*に基づいて、次式(48)に基づき目標最小在庫量AMin*を算出する。
【0210】
Min*=α×[{(S*i−Si)の標準偏差}−{(S*i−Si)の平均}] …(48)
【0211】
ここで、係数αは、許容品切れ率M*と正規分布における標準偏差基準値との関係を実現するためのものである。図20は、許容品切れ率M*と係数αの関係を規定した係数決定テーブル128の内容を示す図である。係数決定テーブル128は、在庫管理様プログラム16に付随するデータとしてプログラムメモリ10に予め格納されており、レジスタ等にロードされて用いられる。目標最小在庫量124は、係数決定テーブル128を参照することにより、許容品切れ率M*から係数αを決定する。
【0212】
また、図21は、許容品切れ率M*と正規分布における標準偏差基準値との関係を示す図である。図20から、許容品切れ率M*が14%であるとすると、αは1.08となる。この場合、図21に示すように、グラフ左端部の最小値からの累積分布が14%となるポイントが、正規分布におけるμ(平均)−1.08σとなる。係数決定テーブル128は、このような関係を実現するように予め設定されている。
【0213】
発注量決定部126は、予測販売量S*、前日在庫量A、目標最大在庫量AMax*、目標最小在庫量AMin*に基づいて最適な発注量Oを算出して出力する。発注量Oは、次式(49)に基づいて算出する。なお、式(*)のS*よりも後の項を、調整発注量Oadjと称することとする。
【0214】
O=S*−Max(0,A−AMax*)+Max(0,AMin*−A) …(49)
【0215】
ここで、前日在庫量Aは、マイナスの値をとり得るものとする。前日在庫量Aのマイナス値は、欠品量を示している。なお、欠品した商品を後日配送等しないのであれば、前日在庫量Aはマイナスの値をとらないものとしてもよい。
【0216】
このような手法により、入力値である目標在庫日数D*や許容品切れ率M*を実現するように、最適な発注量Oを算出することができる。
【0217】
また、目標在庫日数D*や許容品切れ率M*を入力するのに代えて、ユーザーが目標最小在庫量AMin*や目標最大在庫量AMax*を直接入力する形式としてもよい。
【0218】
図22は、在庫管理処理部120により最適な発注量Oが算出され、これに基づいて商品が発注された場合の、販売量S、予測販売量S*、前日在庫量A、発注量O、納品量I、調整発注量Oadjの推移を示す図である。本図においては、目標最小在庫量AMin*=35、目標最大在庫量AMax*=49と設定されているものとする。
【0219】
図示するように、例えば5月24日においては、前日在庫量Aがマイナス12となるため、発注量Oは、予測販売量S*(=68)に調整発注量Oadj(目標最小在庫量AMin*の35+前日在庫量Aの符号を反転させたもの12=47)が加算され、115単位となる。
【0220】
また、5月29日においては、前日在庫量Aが目標最大在庫量AMax*の49日を超えるため、発注量Oは、予測販売量S*(=142)から調整発注量Oadj(前日在庫量Aの71−目標最大在庫量AMax*の49=22)が差し引かれ、120単位となる。
【0221】
[まとめ]
以上説明した本実施例の在庫管理システム100によれば、変動値予測システム200によって出力された予測値をベースとし、目標値として設定される目標最小在庫量と目標最大在庫量を実現するように、最適な発注量を算出することができる。これによって、販売店において過剰な在庫や品切れが発生するのを抑制することができる。
【0222】
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【産業上の利用可能性】
【0223】
本発明は、コンピュータ・ソフトウエア産業、経営コンサルティング産業、金融業、流通業等に利用可能である。
【符号の説明】
【0224】
10 プログラムメモリ
20 CPU
30 RAM
40 データ取得装置
100 在庫管理システム
110 フィルタ処理部
120 在庫管理処理部
122 目標最大在庫量算出部
124 目標最小在庫量
126 発注量決定部
128 係数決定テーブル
200 変動値予測システム
210 差分系列化処理部
220 ARIMA予測処理部
221 ARMA自動当てはめ部
222 ARMAモデル推定部
223 対数尤度計算部
224 イノベーションアルゴリズム処理部
225 勾配ベクトル計算部
226 最小値探索部
227 予測処理部
230 和分処理部
240 最適モデル選択部

【特許請求の範囲】
【請求項1】
ARIMA(Autoregressive Integrated Moving Average)モデルを用いて変動値の時系列データから将来の予測値を出力する変動値予測システムであって、
前記時系列データが格納される記憶手段と、
前記記憶手段に格納された時系列データを用いて、前記ARIMAモデルに準じた複数のモデル候補についての最適パラメータを決定する最適パラメータ決定手段と、
該最適パラメータ決定手段により最適パラメータが決定されたモデルについて、統計学上の情報量の正規化値と誤差指標の正規化値との和が最も小さいモデルを選択するモデル選択手段と、
該モデル選択手段により選択されたモデルを前記記憶手段に格納された時系列データに適用して将来の予測値を出力する予測手段と、
を備え、
前記モデル選択手段は、前記統計学上の情報量の正規化値が第1の閾値を超え、前記誤差指標の正規化値が第2の閾値未満であるモデルを除外してモデルを選択することを特徴とする、
変動値予測システム。
【請求項2】
請求項1に記載の変動値予測システムであって、
前記統計学上の情報量は、AICCであることを特徴とする、
変動値予測システム。
【請求項3】
請求項1又は2に記載の変動値予測システムであって、
前記時系列データに対して、複数パターンの差分系列化を含むデータ加工を行って複数パターンのデータ系列を生成して前記記憶手段に格納するデータ加工手段を備えることを特徴とする、
変動値予測システム。
【請求項4】
請求項1ないし3のいずれか1項に記載の変動値予測システムであって、
前記モデル選択手段がモデルを選択する処理は、前記ARIMAモデルにおける次数が異なる複数のモデルから最適な次数のモデルを選択する処理であることを特徴とする、
変動値予測システム。
【請求項5】
請求項1ないし4のいずれか1項に記載の変動値予測システムであって、
前記時系列データにおける標準偏差と歪度に基づいて、所定傾向を有するデータ群を補正するためのフィルタ手段を更に備えることを特徴とする、
変動値予測システム。
【請求項6】
請求項5に記載の変動値予測システムであって、
前記フィルタ手段は、前記歪度が目標範囲内となるまで、標準偏差基準で所定値以上のデータを除外する手段である、
変動値予測システム。
【請求項7】
請求項1ないし6のいずれか1項に記載の変動値予測システムと、
該変動値予測システムによって出力された予測値から、在庫量が目標値として設定される目標最大在庫量を超過した分を差し引き、在庫量が目標値として設定される目標最小在庫量を下回った分を加算して最適発注量を算出する在庫管理処理部と、
を備える在庫管理システム。
【請求項8】
請求項7に記載の在庫管理システムであって、
前記目標最大在庫量は、過去の在庫量の平均値に、ユーザーにより入力される目標在庫日数を乗じて算出されることを特徴とする、
在庫管理システム。
【請求項9】
請求項7又は8に記載の在庫管理システムであって、
前記目標最小在庫量は、ユーザーにより入力される許容品切れ率と正規分布との関係から導出される係数と、過去の所定期間における予測販売量と実際の販売量の差分に基づいて算出されることを特徴とする、
在庫管理システム。
【請求項10】
変動値の時系列データから将来の予測値を出力する変動値予測システムと、
該変動値予測システムによって出力された予測値から、在庫量が目標値として設定される目標最大在庫量を超過した分を差し引き、在庫量が目標値として設定される目標最小在庫量を下回った分を加算して最適発注量を算出する在庫管理処理部と、
を備える在庫管理システム。
【請求項11】
請求項10に記載の在庫管理システムであって、
前記時系列データにおける標準偏差と歪度に基づいて、所定傾向を有するデータ群を補正するためのフィルタ手段を更に備えることを特徴とする、
在庫管理システム。
【請求項12】
請求項11に記載の変動値予測システムであって、
前記フィルタ手段は、前記歪度が目標範囲内となるまで、標準偏差基準で所定値以上のデータを除外する手段である、
在庫管理システム。
【請求項13】
コンピュータを、
ARIMAモデルを用いて変動値の時系列データから将来の予測値を出力する変動値予測システムとして機能させるためのコンピュータ読み取り可能なプログラムであって、
前記コンピュータを、
記憶手段に格納された時系列データを用いて、前記ARIMAモデルに準じた複数のモデル候補についての最適パラメータを決定する最適パラメータ決定手段と、
該最適パラメータ決定手段により最適パラメータが決定されたモデルについて、統計学上の情報量の正規化値が第1の閾値を超え、誤差指標の正規化値が第2の閾値未満であるモデルを除外しつつ、前記統計学上の情報量の正規化値と誤差指標の正規化値との和が最も小さいモデルを選択するモデル選択手段と、
該モデル選択手段により選択されたモデルを前記記憶手段に格納された時系列データに適用して将来の予測値を出力する予測手段と、
として機能させるためのコンピュータ読み取り可能なプログラム。
【請求項14】
請求項13に記載のプログラムであって、
前記統計学上の情報量は、AICCであることを特徴とする、
プログラム。
【請求項15】
請求項13又は14に記載のプログラムであって、
前記コンピュータを、
前記時系列データに対して、複数パターンの差分系列化を含むデータ加工を行って複数パターンのデータ系列を生成して前記記憶手段に格納するデータ加工手段として機能させるためのプログラム単位を更に備えることを特徴とする、
プログラム。
【請求項16】
請求項13ないし15のいずれか1項に記載のプログラムであって、
前記モデル選択手段がモデルを選択する処理は、前記ARIMAモデルにおける次数が異なる複数のモデルから最適な次数のモデルを選択する処理であることを特徴とする、
プログラム。
【請求項17】
請求項13ないし16のいずれか1項に記載のプログラムであって、
前記コンピュータを、
前記時系列データにおける標準偏差と歪度に基づいて、所定傾向を有するデータ群を補正するためのフィルタ手段として機能させるためのプログラム単位を更に備えることを特徴とする、
プログラム。
【請求項18】
請求項17に記載のプログラムであって、
前記フィルタ手段は、前記歪度が目標範囲内となるまで、標準偏差基準で所定値以上のデータを除外する手段である、
プログラム。
【請求項19】
コンピュータを、
請求項13ないし18のいずれか1項に係る変動値予測システムと、
該変動値予測システムによって出力された予測値から、在庫量が目標値として設定される目標最大在庫量を超過した分を差し引き、在庫量が目標値として設定される目標最小在庫量を下回った分を加算して最適発注量を算出する在庫管理処理部と、
として機能させるためのコンピュータ読み取り可能なプログラム。
【請求項20】
請求項19に記載のプログラムであって、
前記目標最大在庫量は、過去の在庫量の平均値に、ユーザーにより入力される目標在庫日数を乗じて算出されることを特徴とする、
プログラム。
【請求項21】
請求項19又は20に記載のプログラムであって、
前記目標最小在庫量は、ユーザーにより入力される許容品切れ率と正規分布との関係から導出される係数と、過去の所定期間における予測販売量と実際の販売量の差分に基づいて算出されることを特徴とする、
プログラム。
【請求項22】
コンピュータを、
変動値の時系列データから将来の予測値を出力する変動値予測システムと、
該変動値予測システムによって出力された予測値から、在庫量が目標値として設定される目標最大在庫量を超過した分を差し引き、在庫量が目標値として設定される目標最小在庫量を下回った分を加算して最適発注量を算出する在庫管理処理部と、
として機能させるためのコンピュータ読み取り可能なプログラム。
【請求項23】
請求項22に記載のプログラムであって、
前記コンピュータを、
前記時系列データにおける標準偏差と歪度に基づいて、所定傾向を有するデータ群を補正するためのフィルタ手段として機能させるためのプログラム単位を更に備えることを特徴とする、
プログラム。
【請求項24】
請求項23に記載のプログラムであって、
前記フィルタ手段は、前記歪度が目標範囲内となるまで、標準偏差基準で所定値以上のデータを除外する手段である、
プログラム。
【請求項25】
請求項13ないし24のいずれか1項に記載のプログラムを格納した、コンピュータにより読み取り可能な記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2012−153512(P2012−153512A)
【公開日】平成24年8月16日(2012.8.16)
【国際特許分類】
【出願番号】特願2011−15738(P2011−15738)
【出願日】平成23年1月27日(2011.1.27)
【特許番号】特許第4981976号(P4981976)
【特許公報発行日】平成24年7月25日(2012.7.25)
【出願人】(511025020)有限会社アールファイブ (1)