(57)【特許請求の範囲】
【請求項１】
所定数個のデータに対する誤差許容率の逆数個のデータの単位を区間とし、１区間分のデータに係るデータ値毎の出現頻度の計数処理を終了する毎に、出現頻度が低いデータ値の計数に係る頻度情報を記憶手段から削除しながら、データ値毎の出現頻度の計数を行って前記頻度情報を記憶手段に記憶する統計処理方法において、
前記所定数個のデータに係る計数処理を終了した後及び１区間分のデータに係るデータ値の計数処理を終了する毎に、
前記記憶手段に前記頻度情報が記憶された各データ値について、
前記所定数個分のデータにおける先頭区間の次の区間の出現頻度の推定値を算出しなければならないかどうかを判断する工程と、
前記次の区間の出現頻度の推定値を算出しなければならないものと判断すると、前記記憶手段に前記頻度情報として記憶された前記先頭区間における出現頻度となる先頭区間出現頻度、前記所定数個のデータにおける最終区間における出現頻度となる最終区間出現頻度及び前記計数処理に係る出現頻度に基づいて、前記計数処理に係る出現頻度から前記先頭区間出現頻度を減じ、１区間分ずらした、前記所定数個−１区間分のデータにおける計数処理に係る出現頻度として前記記憶手段に記憶し、また、前記次の区間の出現頻度の推定値を算出し、１区間分ずらした次の所定数個分のデータにおける先頭区間出現頻度として前記記憶手段に記憶する工程と
を有することを特徴とする統計処理方法。
【請求項２】
前記先頭区間出現頻度と前記最終区間出現頻度とを結び、前記計数処理に係る出現頻度がその区間の面積となる二次曲線に基づく式から、前記次の区間の出現頻度の推定値を算出することを特徴とする請求項１記載の統計処理方法。
【請求項３】
前記先頭区間出現頻度、前記最終区間出現頻度及び前記計数処理に係る出現頻度に基づいて、前記データ値毎の出現頻度の変化率の推定値を算出する工程をさらに有することを特徴とする請求項１又は２記載の統計処理方法。
【請求項４】
前記先頭区間出現頻度と前記最終区間出現頻度とを結び、前記計数処理に係る出現頻度がその区間の面積となる二次曲線を微分した式に基づいて算出した前記最終区間における微分値を、前記出現頻度の変化率の推定値とすることを特徴とする請求項３記載の統計処理方法。
【請求項５】
前記所定数個のデータに係る計数処理を終了した後及び１区間分のデータに係るデータ値の計数処理を終了する毎に、所定の出現率に基づく値以上の出現頻度を計数したデータ値の頻度情報を前記記憶手段から検索して抽出する処理をさらに行うことを特徴とする請求項１〜４のいずれかに記載の統計処理方法。
【請求項６】
請求項１乃至請求項５のいずれかに記載の統計処理方法をコンピュータに行わせることを特徴とする統計処理方法のプログラム。
【請求項７】
所定数個のデータに対する誤差許容率の逆数個のデータの単位を区間としたときに、前記所定数個分のデータにおける先頭区間の各データ値に係る出現頻度となる先頭区間出現頻度、最終区間の各データ値に係る出現頻度となる最終区間出現頻度及び各データ値の所定数個分のデータに係る出現頻度を組とした頻度情報を記憶する記憶手段と、
１区間分のデータに係るデータ値の出現頻度の計数処理を終了する毎に、出現頻度が低いデータ値の計数に係る頻度情報を記憶手段から削除しながら、データ値毎の出現頻度の計数を行って前記頻度情報を記憶手段に記憶する処理を行う演算手段を備え、
前記演算手段は、さらに、前記所定数個のデータに係る計数処理を終了した後及び１区間分のデータに係るデータ値の計数処理を終了する毎に、前記記憶手段に前記頻度情報が記憶された各データ値について、
前記所定数個分のデータにおける先頭区間の次の区間の出現頻度の推定値を算出しなければならないかどうかを判断し、前記次の区間の出現頻度の推定値を算出しなければならないものと判断すると、前記計数処理に係る出現頻度から前記先頭区間出現頻度を減じ、１区間分ずらした、前記所定数個−１区間分のデータにおける計数処理に係る出現頻度として前記記憶手段に記憶し、また、前記先頭区間出現頻度、前記最終区間出現頻度及び前記計数処理に係る出現頻度に基づいて、前記次の区間の出現頻度の推定値を算出し、１区間分ずらした次の所定数個分のデータにおける先頭区間出現頻度として前記記憶手段に記憶する処理を行うことを特徴とする統計処理装置。
【請求項８】
所定数個分のデータを１サイクルとし、前記所定数個のデータに対する誤差許容率の逆数個のデータの単位を区間としたときに、前記所定数個分のデータにおける先頭区間の各データ値に係る出現頻度となる先頭区間出現頻度、最終区間の各データ値に係る出現頻度となる最終区間出現頻度、各データ値の計数に係る出現頻度及び各データ値において前記所定数個分のデータに係る出現頻度の計数を開始した区間を表す誤差見積もり値を組とした計数に係る頻度情報を記憶する記憶手段と、
前記１サイクルの中から一定以上の出現率で出現するデータに係るデータ値を前記記憶手段を検索することで得られるように、前記記憶手段内の頻度情報の追加・削除・変更を行うとともに、最初の所定数個のデータに基づく前記記憶手段内の頻度情報の追加・削除・変更後は、新たに１区間数分のデータを処理する度に、前記１区間分ずらした所定数個分のデータを次の１サイクルとして一定以上の出現率で出現するデータに係るデータ値を前記記憶手段を検索して得られるように、前記記憶手段内の頻度情報の追加・削除・変更を行う演算手段とを備え、
該演算手段は、
順次入力されるデータのデータ値について、前記頻度情報が前記記憶手段に記憶されていない場合、前記記憶手段に前記データ値の頻度情報を新たに追加し、前記記憶手段に記憶されている場合、前記データ値の頻度情報の出現頻度に関する事項を加算更新する処理を行うデータ値計数処理部と、
１区間分取得したデータに係る処理が終了すると、所定数個分のデータに係る各データ値の出現頻度と誤差見積もり値とに基づいて、処理した区間数分のデータに対して、出現頻度が低いデータ値に係る前記頻度情報を前記記憶手段から削除する処理を行う計数決定処理部と、
最初のサイクルの所定数個のデータに対して、前記データ値計数処理部及び前記計数決定処理部の処理が終了した場合、前記記憶手段に記憶された各データ値の前記誤差見積もり値に基づいて前記計数処理に係る出現頻度を調整し、前記次の区間の出現頻度の推定値を算出しなければならないものと判断すると、前記計数処理に係る出現頻度から前記先頭区間出現頻度を減じ、１区間分ずらした前記所定数個−１区間分のデータにおける計数処理に係る出現頻度として前記記憶手段に記憶し、また、前記先頭区間出現頻度、前記最終区間出現頻度及び前記計数処理に係る出現頻度に基づいて、前記次の区間の出現頻度の推定値を算出し、１区間分ずらした次の所定数個分のデータにおける先頭区間出現頻度として前記記憶手段に記憶する処理を行う近似頻度演算処理部と
を有し、
その後入力されるデータが、前記次のサイクルの最後の区間の最初のデータから入力されているものとして、前記データ値計数処理部、計数決定処理部及び近似頻度演算処理部が処理を継続して行うことを特徴とする統計処理装置。
【請求項９】
前記近似頻度演算処理部において、前記次の区間の出現頻度の推定値を算出しなくてもよいものと判断すると、前記誤差見積もり値の値を１減らすことを特徴とする請求項８記載の統計処理装置。
【請求項１０】
前記演算手段は、前記先頭区間出現頻度と前記最終区間出現頻度とを結び、前記計数処理に係る出現頻度がその区間の面積となる二次曲線に基づく式から、前記次の区間の出現頻度の推定値を算出することを特徴とする請求項７〜９のいずれかに記載の統計処理装置。
【請求項１１】
前記演算手段は、前記先頭区間出現頻度、前記最終区間出現頻度及び前記計数処理に係る出現頻度に基づいて、前記データ値毎の出現頻度の変化率の推定値を算出する処理をさらに行うことを特徴とする請求項７〜１０のいずれかに記載の統計処理装置。
【請求項１２】
前記演算手段は、前記先頭区間出現頻度と前記最終区間出現頻度とを結び、前記計数処理に係る出現頻度がその区間の面積となる二次曲線を微分した式に基づいて算出した前記最終区間における微分値を、前記出現頻度の変化率の推定値として算出することを特徴とする請求項１１記載の統計処理装置。
【請求項１３】
前記演算手段は、前記所定数個のデータに係る計数処理を終了した後及び１区間分のデータに係るデータ値の計数処理を終了する毎に、所定の出現率に基づく値以上の出現頻度を計数したデータ値の頻度情報を前記記憶手段から検索して抽出する処理を行う結果抽出処理部をさらに有することを特徴とする請求項７〜１２のいずれかに記載の統計処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理対象となるデータについて、データに係る値毎の出現頻度の計数等の処理を行う統計処理方法等に関するものである。特に、値が取り得る範囲が広いために、全ての値に係る計数値等の記憶（記録）を保持し続けることが困難で、かつ、例えば時系列のデータにおいて、時間と共に、出現する値の傾向が変化するような場合にも対応できるようにしたものである。
【背景技術】
【０００２】
例えば継続的に得られる大規模な時系列のデータから、一定の出現頻度以上出現するデータに係る値（以下、データ値という）の出現頻度などの処理結果を抽出するための統計処理を行うことは、様々な場面で必要になる。例えば、通信網を伝送する信号に含まれるＩＰアドレスをデータ（データ値）とし、通信網中からパケットロス等のエラー発生を検出したＩＰアドレス毎にエラー検出数を計数処理し、一定割合（一定数）以上のエラー発生の要因となっているＩＰアドレス、通信経路等を特定するトラフィック観測を監視システムにおいて行う場合などがある。
【０００３】
通信網上におけるエラー検出数をＩＰアドレス毎に計数するための最も単純な処理方法としては、ＩＰアドレス（データ値）毎にカウンタ（計数した値を記憶する記憶領域）を用意し、エラーを検出する毎に、エラー検出に係るＩＰアドレスのカウンタに増加させた数値（以下、カウント数という）を記憶させることが考えられる。しかし、ＩＰアドレス空間は膨大であるため、例えば監視システムにより管理している端末分程度のカウンタを用意するとしても、多くのメモリ容量を要することになる。また、一定の出現頻度以上計数したカウンタ（ＩＰアドレス）を探索し、そのデータ値などの結果を抽出するにはメモリ空間をスキャンする必要があるが、カウンタを多く用意するほどスキャンに時間を要する。以上のことから、全てのデータ値に対してカウンタを設けても実用的でないことが多い。
【０００４】
そこで、確率的に、もしくはある一定誤差範囲内に収まるように、出現頻度が低いと判断したデータ値に係るカウント数などのデータ（以下、データ値毎の計数処理などに関するデータを頻度情報（スケッチ）という）を、随時、記憶手段から削除することにより、少ないメモリ容量（記憶容量）で、一定以上のデータ値の出現頻度を効率よく計数し、データ値などの結果を抽出する統計処理などするための方法が論じられている（非特許文献１参照）。
【０００５】
この方法は、例えばコンピュータ等からなる統計処理装置において、次のような処理を行うことにより実現する。
（１）計数処理を行う単位（以下、サイクルという）となる所定数Ｎ個分のデータを、記憶手段の確保した記憶領域に記憶させる。ここで、Ｎ個分のデータについては、頻度の誤差範囲を決める値となる許容誤差率ε（％）の逆数個のデータ毎に分割するものとする（以下、この分割に係る単位を区間というものとする（１サイクルにおける区間数はεＮとなる））。そして、各区間には例えば１から始まる区間番号を付すものとする。
【０００６】
（２）１番目のデータ（＝区間番号１の最初のデータ）から順に処理を開始する。処理に係るデータが新たなデータ値を有しているものと判断すると、データ値及びデータが属する区間番号−１で表される誤差見積もり値Δとともに、カウント数ｆを１にした頻度情報を記憶手段に記憶する。一方、処理に係るデータが有するデータ値が既に記憶済みであると判断すると、そのデータ値に係るカウント数ｆを１増やして記憶手段に記憶する。
【０００７】
（３）区間の境界に到達する度（区間の最後のデータを処理する度）に、以下の基準に従い、カウント数ｆの少ないデータ値に係る頻度情報を記憶手段から削除するか残すかを判断して処理する。
（３．１）ｆ＋Δ≦処理に係る区間番号となるカウント数ｆ、誤差見積もり値Δを有するデータ値に係る頻度情報は記憶手段から削除する。
（３．２）上記式を満たさないデータ値に係る頻度情報は記憶手段に残す。
【０００８】
上記（２）及び（３）の処理を、Ｎ番目のデータまで繰り返すと、一定数以上計数したデータ値に係る頻度情報は全て記憶手段に残されることが数学的に保証されており、かつカウント数ｆの少ないデータ値に係る頻度情報は削除されて残らない。したがって、カウント数ｆの多い、重要なデータ値の数を計数するために必要な分のメモリ容量を用意すればよくなり、より少ないメモリ容量で、必要なデータ値の出現頻度を計数することができる。
【非特許文献１】Gurmeet Singh Manku, Rajeev Motwani, 「Approximate Frequency Counts over Data Stream」, VLDB 2002 (28th VLDB), p 346-357, August 2002
【発明の開示】
【発明が解決しようとする課題】
【０００９】
ここで、例えば、信号が継続して終端なく伝送し、かつ、通信網に伝送する信号においてＩＰアドレスが頻繁に入れ替わるような場合には、エラー検出に係るＩＰアドレスも時間とともに変化することが多い。この場合のトラフィック観測では、エラー検出に係るＩＰアドレスの経時変化をできる限りリアルタイムで把握する観点から、できる限り短い間隔で、処理した結果を抽出できることが望ましい。
【００１０】
しかし、上記の方法では、Ｎ個分のデータを一区切として処理することになるため、基本的には、Ｎ個のデータの処理終了毎でなければ、処理した結果を抽出することができない。（Ｎ個のデータにおける）許容誤差率εに基づいて各区間におけるデータ数（１／ε）、区間数（εＮ）が決まることを考慮すると、処理単位のデータ数Ｎを少なくして間隔を短くしようとすることにも限界がある。
【００１１】
もし、上記の処理を行って、Ｎ個のデータの処理終了毎まで待つことなく、処理した結果を抽出しようとすると、処理を開始するデータを所望のデータ数ｗだけずらしていってそれぞれ計数処理を並行して行う必要がある。この場合には、ｗ個のデータを処理する毎に結果の抽出を行うことができる。ただ、複数の並行処理を行うには、各処理について、処理に係る記憶容量とデータ処理能力が必要となるため、多大なリソースを消費してしまう。そして、上記のメモリ容量抑制の目的との間でずれが生じる可能性がある。
【００１２】
そこで、メモリ容量抑制をはかりつつ、より短い間隔で有効な処理の結果を抽出する統計処理を行うことができる統計処理方法等の実現が望まれていた。
【課題を解決するための手段】
【００１３】
本発明に係る統計処理方法は、所定数個のデータに対する誤差許容率の逆数個のデータの単位を区間とし、１区間分のデータに係るデータ値毎の出現頻度の計数処理を終了する毎に、出現頻度が低いデータ値の計数に係る頻度情報を記憶手段から削除しながら、データ値毎の出現頻度の計数を行って頻度情報を記憶手段に記憶する統計処理方法において、所定数個のデータに係る計数処理を終了した後及び１区間分のデータに係るデータ値の計数処理を終了する毎に、記憶手段に頻度情報が記憶された各データ値について、所定数個分のデータにおける先頭区間の次の区間の出現頻度の推定値を算出しなければならないかどうかを判断する工程と、次の区間の出現頻度の推定値を算出しなければならないものと判断すると、記憶手段に頻度情報として記憶された先頭区間における出現頻度となる先頭区間出現頻度、所定数個のデータにおける最終区間における出現頻度となる最終区間出現頻度及び計数処理に係る出現頻度に基づいて、計数処理に係る出現頻度から先頭区間出現頻度を減じ、１区間分ずらした所定数個−１区間分のデータにおける計数処理に係る出現頻度として記憶手段に記憶し、また、次の区間の出現頻度の推定値を算出し、１区間分ずらした次の所定数個分のデータにおける先頭区間出現頻度として記憶手段に記憶する工程と有するものである。
【発明の効果】
【００１４】
本発明によれば、１区間分ずらした所定数個−１区間分のデータにおける計数処理に係る出現頻度を算出すると共に、必要に応じて、先頭区間の次の区間の出現頻度の推定値を算出して記憶手段に記憶しておくようにしたので、さらに１区間分の処理を行うだけで、１区間分ずれた次の区間を先頭区間とする所定数個のデータに係るデータ値毎の出現頻度を得ることができるため、計数処理、統計処理に必要な記憶容量、処理能力を抑えつつ、所定数個のデータを処理する毎しか出現頻度が得られない場合に比べて、はるかに短い間隔で、結果の抽出を行うことができる。
【発明を実施するための最良の形態】
【００１５】
実施の形態１．
図１は本発明の実施の形態１の統計処理装置１０００の構成を示すブロック図である。統計処理装置１０００は、処理対象のデータに基づく処理を行う各種処理部を有する演算手段２０００、データ等を一時的、長期的に記憶する記憶手段３０００及び外部装置から処理対象となるデータを含む信号を受信するためのインタフェース手段４０００とを備えている。
【００１６】
本実施の形態の演算手段２０００は、所定数Ｎ個のデータにおける出現率がｓ（％）以上のデータ値などの結果を抽出する統計処理を、１／ε個の新たなデータの計数処理を行う毎に行えるようにするものである。演算手段２０００は、データ取得処理部２００１、データ値計数処理部２００２、区間内データ処理数判断部２００３、データ処理数判断部２００４、計数決定処理部２００５、近似頻度演算処理部２００６及び結果検索抽出処理部２００７で構成する。
【００１７】
データ取得処理部２００１は、インタフェース手段４０００が受信した信号に含まれるデータに係るデータ値を判断するデータ取得処理を行う。データ値計数処理部２００２は、データ取得処理部２００１が判断したデータ値に基づいて、スケッチ記憶部３００２に記憶する頻度情報を追加するデータ追加処理及び最終区間頻度ｙn の値を増加させる区間頻度加算処理による頻度情報の追加、更新等に係る計数処理を行う。
【００１８】
区間内データ処理数判断部２００３は、各区間の先頭のデータからのデータ処理数を計数して、区間内処理データ数記憶部３００３に記憶した区間処理データ数の値に基づいて、区間境界であるかどうかを判断する区間内データ数計数処理を行う。計数決定処理部２００５は、各区間境界におけるデータ処理終了により、最終的なカウント数ｆの確定等を行う頻度加算処理及び出現頻度の低いデータ値に係る頻度情報のスケッチ記憶部３００２からの削除等を行う低頻度データ削除処理による頻度情報の更新、削除等に係る計数処理を行う。
【００１９】
データ処理数判断部２００４は、処理開始からのデータ処理数を計数して、処理データ数記憶部３００４に記憶した処理データ数の値に基づいて、Ｎ個以上のデータを処理したかどうかを判断するデータ数計数処理を行う。
【００２０】
近似頻度演算処理部２００６は、確定したＮ個分のデータによる頻度情報に基づいて先頭区間出現頻度演算処理を行う。特に本実施の形態では、後述するように、Ｎ個分のデータ（サイクル）における先頭区間の次の区間（次のサイクルの先頭の区間となる）におけるの出現頻度（近似値となる）を算出する頻度近似処理を、必要に応じて行う。
【００２１】
結果検索抽出処理部２００７は、スケッチ記憶部３００２に記憶されている頻度情報に基づいてデータ値毎のカウント数などの結果を抽出し、表示手段（図示せず）等に表示させる統計処理などを行う。本実施の形態では、Ｎ個のデータの中から出現率ｓ（％）以上のデータ値に係る出現頻度を検索し、抽出するものとする。ここで、誤差許容率εが存在することから、実際にはｓ−ε（％）以上の出現率のデータ値に係る出現頻度が抽出される（ｆ≧（ｓ−ε）Ｎを満たすデータ値に係るカウンタ数ｆが出現頻度として抽出される）。例えば出現率ｓ＝１（％）、誤差許容率ε＝０．１（％）の場合、出現率が１（％）以上のデータを抽出することが目的であるが、０．１（％）の誤差があるために、実際には０．９（％）以上の出現率であれば抽出する可能性がある。
【００２２】
ここで、演算手段２０００の各処理部について、それぞれ異なる専用機器（ハードウェア）で構成することもできるが、一般的には、例えば、ＣＰＵ（Central Processing Unit ）を中心とする演算制御手段（コンピュータ）でハードウェアを構成し、各処理部が行う処理手順をあらかじめプログラム化し、ソフトウェア、ファームウェア等で構成しておく。そして、演算手段２０００がそのプログラムを実行して、プログラムに基づく処理を行うことにより、上記の各処理部が行う処理を実現する。これらのプログラムに係るデータは例えば記憶手段３０００に記憶しておくようにする。
【００２３】
本実施の形態の記憶手段３０００は、頻度情報をはじめとして、演算手段２０００の各処理部が行う処理に係るデータを一時的又は長期的に記憶するための手段である。例えばＲＡＭ（Random Access Memory）のような半導体素子を利用した記憶手段でもよいし、ＨＤＤ（Hard disk drive ）のような大きなメモリ容量を有する記憶手段でもよい。スケッチ記憶部３００１、区間内処理データ数記憶部３００２及び処理データ数記憶部３００３で構成する。図１では各記憶部を記憶手段３０００が有しているが、それぞれ異なる記憶手段に記憶させるようにしてもよい。
【００２４】
図２はスケッチ記憶部３００１に記憶される頻度情報の例を表す図である。スケッチ記憶部３００１は、出現したデータに係るデータ値、出現頻度（出現数）を表すカウント数ｆ、出現頻度の誤差見積もり値Δ、先頭区間頻度ｙ1 及び最終区間頻度ｙn の各事項を組とした頻度情報を、例えばテーブル形式のデータとして記憶する。この頻度情報は、データ値計数処理部２００２等の処理により、追加、更新又は削除される。図２を参照した統計処理装置１０００による統計処理の手順については後述する。
【００２５】
区間内処理データ数記憶部３００２は、区間内データ処理数判断部２００３の処理に基づいて、処理中の区間内において処理したデータ数を記憶する。また、処理データ数記憶部３００３は、データ処理数判断部２００４の処理に基づいて、統計処理開始から処理したデータ数と、処理を終えた区間境界（＝区間）の数を記憶する。区間境界の数は、例えば、現在処理している区間番号が５の場合、その区間番号から１減算した４が記憶している区間境界の数となる。そして、現在処理中の区間番号内の全データの処理を終了したものと判断すると５が記憶される。
【００２６】
図３は統計処理に係るデータの概念図である。図３中の○は、各データを示しており、図３の左端のデータから順に時系列にデータの処理がなされるものとする。前述したようにＮ個のデータが仮想的に１／ε毎の区間に分けられる（各区間の境界を区間境界とする）ものとし、区間番号ｂを１から順に付けるものとする。例えばＮ＝１０００００であるとすると、区間数εＮは、（０．１／１００）×１０００００＝１００となる。そのため、１０００００個のデータは、１０００個ずつ１００個の区間に分けられることになる。
【００２７】
本実施の形態の統計処理装置１０００は、Ｎ個のデータに対する処理を行った後、それよりも少ない数のデータ数（１／ε）を単位とする区間における計数処理などが終了する毎に、一定の出現率以上出現するデータ値などを検索、抽出する統計処理を行えるようにしたものである。例えば、図３において、サイクルｂ１内のＮ個のデータにおいて一定出現率以上現れるデータ値などを抽出する処理を行った後、新たに１／ε個のデータを処理すると、今度はサイクルｂ２におけるＮ個のデータ中において一定出現率以上現れるデータを抽出する処理を行うもので、新たに１／ε個のデータが得られる度に継続して行うものである。
【００２８】
その際、１区間ずらしたＮ個のデータには、そのＮ個のデータに含まれなくなった区間における出現頻度（出現数）は含めないため、その区間における出現頻度を減算しなければならない。しかしながら、各区間の出現頻度を記憶することはメモリ容量の増大につながる（基本的にはεＮ区間分に係る各出現頻度を記憶できるだけの記憶容量をデータ値毎に用意する必要がある）ことになり、メモリ容量抑制の効果を著しく損なうことになる。そこで、実施の形態１の統計処理装置１０００では、出現頻度の減算する必要がある（例えば出現頻度が高く、頻度情報の削除がなされていない等）と判断すると、Ｎ個分のデータにおける先頭区間（１区間目）の出現頻度（先頭区間頻度ｙ1 ）と最終区間（εＮ区間目）の出現頻度（最終区間頻度ｙn ）とに基づいて、先頭区間の次の区間（２区間目。Ｎ個分のデータを１区間分ずらしたときの先頭区間となる）の出現頻度を近似推定するものとする。ここで、本実施の形態では二次曲線に係る式を用いた推定を行う。これにより、εＮ番目の区間以降の各区間における処理を終了する毎に、Ｎ個分のデータにおけるデータ値毎の出現頻度を推定し、その結果を抽出することができる。
【００２９】
図３のサイクルｂ１及びサイクルｂ２に基づいて説明する。例えば、サイクルｂ１の１〜εＮ区間（Ｎ個分のデータ）に係るカウント数ｆなどの結果が処理により得られている場合、その結果には、サイクルｂ２の１〜εＮ−１区間に係る結果も反映されている。そのため、次の区間に係るデータを処理すれば、サイクルｂ２の１〜εＮ区間に係る結果が得られることになる。ただ、このときイクルｂ１の１区間目における出現頻度が余分に含まれる場合がある。そこで、ｂ１＝１〜εＮまでの処理した結果からサイクル１の先頭区間における出現頻度を減ずることでサイクルｂ２の１〜εＮ−１までを処理した結果として見なす。そして、このような処理を継続して続けていくため、本実施の形態では、あるサイクルの先頭区間における出現頻度を必要に応じて近似推定するための処理を行い、減算する。
【００３０】
図４は統計処理装置１０００の演算手段２０００における処理の流れ及び処理時に参照するデータの流れを組み合わせて表した図である。図４に基づいて、本実施の形態における統計処理装置１０００の処理手順について説明する。また、図２の頻度情報の例に基づいて適宜説明する。
【００３１】
まず、データが含まれた信号をインタフェース手段４０００が受信し、演算手段２０００が処理できる形式のデータに変換する。データ取得処理部２００１はデータを取得し、データ値を判断するデータ取得処理を行う（Ｓ１）。データ値計数処理部２００２は、データ取得処理部２００１が判断したデータ値に係る頻度情報がスケッチ記憶部３００１に記憶されていないかどうかを判断する（Ｓ２）。例えば処理開始直後等、スケッチ記憶部３００１に頻度情報が記憶されていないものと判断すると、そのデータに係る頻度情報を作成してスケッチ記憶部３００１に記憶する、頻度情報追加処理を行う（Ｓ３）。このとき、頻度情報において、誤差見積もり値Δは区間番号ｂから１減じた値ｂ−１とする（例えば処理開始直後の区間番号が１の場合は０となる）。また、区間内における計数値となる最終区間頻度ｙn は１とする。また、この時点ではカウント数ｆと先頭区間頻度ｙ1 との値を確定しない。
【００３２】
一方、そのデータ値に係る設計事項がスケッチ記憶部３００１に記憶されていると判断すると、最終区間頻度ｙn を１増やしてスケッチ記憶部３００１に記憶する区間頻度加算処理を行う（Ｓ４）。
【００３３】
区間内データ処理数判断部２００３は、区間内データ数計数処理を行って、区間内処理データ数記憶部３００２に記憶した区間処理データ数の値を１増やす（Ｓ５）。さらに、区間処理データ数に基づいて区間境界かどうか（区間処理データ数が１／εであるかどうか）を判断する（Ｓ６）。区間境界でないと判断すると、Ｓ１に戻り、次のデータについてデータ取得処理などの処理を行う。
【００３４】
例えば、図２（ａ）は、Ｄ１というデータ値を有するデータが１番目の区間（区間番号１の区間）において、５回出現したことを表しているものとする。この時点では、確定していないカウント数ｆを０とし、先頭区間頻度ｙ1 を空とする。
【００３５】
そして、区間内データ処理数判断部２００３は、区間境界であると判断すると、区間処理データ数の値を０とする（Ｓ７）。次に、計数決定処理部２００５は、カウント数ｆを確定するための頻度加算処理を行う（Ｓ８）。頻度加算処理については、区間におけるデータの処理が終了したときの最終区間頻度ｙn の値をカウント数ｆに加算する。また、頻度情報を追加した区間の場合のみ、最終区間頻度ｙn の値を先頭区間頻度ｙ1 の値とする。
【００３６】
例えば、図２（ｂ）のデータ値Ｄ１について、最終区間頻度ｙn の値である５をカウント数ｆに加算し、その値を０＋５＝５とする。また、先頭区間頻度ｙ1 の値も５とする。
【００３７】
さらに、計数決定処理部２００５は、処理開始から現在までの区間において許容誤差率ε（％）以下の出現率のデータ値に係る頻度情報をスケッチ記憶部３００１から削除する低頻度データ削除処理を行う（Ｓ９）。ここで、上述したように、１区間に係るデータ数が１／ε個であることから、区間内で１回のみ出現したときの出現率がε（％）に相当する。よって、処理開始から（処理が終了している）現区間における出現頻度が、現区間番号ｂ以下の値となる頻度情報をスケッチ記憶部３００１から削除することになる。
【００３８】
ここで、低頻度データ削除処理は、区間境界における頻度加算処理が終了する度に行われる処理であるため、例えば以前の区間における低頻度データ削除処理で頻度情報が削除された可能性がある。そこで、低頻度データ削除処理では、以前の低頻度データ削除処理により削除された可能性のあるカウント数ｆも考慮して処理を行う必要がある。
【００３９】
誤差見積もり値Δは、前述したように頻度情報追加処理を行ったときの区間ｂ−１の値が記憶される。この誤差見積もり値Δにより、区間ｂ以降のデータに係る計数についてはカウント数ｆに反映されていることがわかる。例えば、スケッチ記憶部３００１の頻度情報において、あるデータ値について、カウント数ｆが２０、誤差見積もり値Δが１０として記憶されている場合には、区間番号１１の区間において頻度情報追加処理を行い、その区間からの出現頻度が２０回であることがわかる。
【００４０】
一方で、区間ｂ−１以前のデータに係る計数した数については、カウント数ｆに反映されていないことになる。ここで、上述したように、区間内における出現頻度が平均１回以下になると頻度情報は削除されることになる。そのため、区間番号ｂ−１までの区間において最終区間頻度ｙn （出現頻度）が平均１回であったとすると、そのときのカウント数ｆ（出現頻度）はｂ−１＝Δとなる。実際には、最終区間頻度ｙn が平均１回以下の場合もあるため、誤差見積もり値Δは、削除された可能性のあるカウント数ｆの最大値を表すことになる。
【００４１】
以上のことから、低頻度データ削除処理では、ｆ＋Δ≦ｂを満たすカウント数ｆ、誤差見積もり値Δを有する頻度情報をスケッチ記憶部３００１から削除する処理を行い、区間境界になる度に行い、スケッチ記憶部３００１内の頻度情報を整理する。
【００４２】
例えばスケッチ記憶部３００１が図２（ｂ）のような状態において、区間番号１の区間での処理が終了したときに、データ値Ｄ１については、２＋０≦１であるため頻度情報は残されるが、データ値Ｄ２については１＋０≦１となるために頻度情報は削除されることになる。
【００４３】
次に、データ処理数判断部２００４は、Ｎ個以上のデータの処理を行っているか（εＮ番目の区間以上の区間の処理を行ったか）どうかを、処理データ数記憶部３００３に記憶した処理データ数の値に基づいて判断する（Ｓ１０）。Ｎ個以上のデータについて処理を行っていないと判断すると、データ数計数処理を行って、処理データ数記憶部３００３に記憶した処理データ数の値を１／ε増やす。さらに、処理を行った区間の数を表す区間境界数の値を１増やす（Ｓ１１）。そして、データ値計数処理部２００２が、各データ値に係る頻度情報の最終区間頻度ｙn の値をそれぞれ０とする最終区間頻度初期化処理を行う（Ｓ１３）。そして、Ｓ１に戻り、次のデータについてデータ取得処理を行う。一方、データ処理数判断部２００４が、Ｎ個以上のデータの処理を行ったものと判断すると、近似頻度演算処理部２００６により先頭区間出現頻度近似処理を行う（Ｓ１２）。なお、Ｎ個以上のデータについて処理を終了した後は、常に先頭区間出現頻度近似処理を行うことになる。
【００４４】
図５は近似頻度演算処理部２００６による先頭区間出現頻度演算処理のフローチャートを表す図である。次に図５に基づいて近似頻度演算処理部２００６が行う処理について説明する。まず、スケッチ記憶部３００１に記憶されたあるデータ値に係る頻度情報を取得し（Ｓ２１）、誤差見積もり値Δが０であるかどうかを判断する（Ｓ２２）。誤差見積もり値Δが０でなければ、先頭区間の出現頻度（先頭区間頻度ｙ1 ）がカウント数ｆに反映されていないことになるため、Δの値を１減らす減算処理（頻度情報追加処理が行われた区間を概念的に１ずらす）を行う（Ｓ２４）。そして、全てのデータ値に係る頻度情報について処理を終了したかどうかを判断し（Ｓ２５）、処理が終了していなければＳ２１に戻って次のデータ値の頻度情報について処理を行う。
【００４５】
図６は２区間目の出現頻度の推定に係る概念を表す図である。一方、Ｓ２２において、誤差見積もり値Δが０であると判断すると頻度近似処理を行う（Ｓ２３）。頻度近似処理では、カウント数ｆから先頭区間頻度ｙ1 を減じて、１区間ずらした際の、先頭区間（データ）からεＮ−１区間分のカウント数ｆの値を算出する。また、カウント数ｆ≦εＮ−１であるかどうかを判断する。ｆ≦εＮ−１であれば、区間内における出現頻度が平均１回以下となるため、そのデータ値に係る頻度情報をスケッチ記憶部３００２から削除する。
【００４６】
そして、ｆ≦εＮ−１でなければ、２区間目の出現頻度（１区間ずらしたときの先頭区間頻度）の近似値ｙ2 を、現在の先頭区間頻度ｙ1 、最終区間頻度ｙn 及びカウント数ｆから近似推定、算出する。算出に際し、まず、例えば図６に示すように区間の出現頻度のヒストグラムを仮想的に考える。１区間目が先頭区間頻度ｙ1 、εＮ区間目が最終区間頻度ｙn となり、その間の区間における出現頻度のヒストグラムは、所定の２次曲線に沿っているものとする。
この２次曲線については、例えば２次元座標系において、（１，ｙ1 ）、（εＮ，ｙn ）を通るものとする。また、ｘ＝１、ｘ＝εＮ及びｙ＝０と２次曲線で囲まれる面積がｆ’となるようにする。ここで、面積ｆ’は、ｆ’＝ｆ−（ｙ0 ＋ｙn ）／２となるようにして、カウント数ｆにより表される面積から、先頭の区間の中心以前及び最終区間の中心以降の部分に係る面積を除く調整を行ったものである。この２次曲線を表す次式（１）から、２区間目における区間頻度（の近似値）ｙ2 を算出する。ここで、算出した値が負の値であれば０とする。（１）式は、２次曲線の一般式から、（１，ｙ1 ）、（εＮ，ｙn ）及びｘ＝１〜εＮにおける積分値がｆ’を満たすときの係数を求めて得たものである。
【００４７】
【数１】
0004513878.tif 000002
【００４８】
先頭区間出現頻度演算処理が終了すると、図３に示すように、最終区間頻度初期化処理を行い（Ｓ１３）、Ｓ１に戻り、次のデータについてデータ取得処理等を行う。そして、結果検索抽出処理部２００７による検索抽出処理を行って、表示手段（図示せず）などへの結果の出力を行う（Ｓ１４）。
【００４９】
例えば図２（ｃ）においては、データ値Ｄ１に係る誤差見積もり値Δ＝０であるので頻度近似処理を行う。まず、カウント数ｆ＝１５００から先頭区間頻度ｙ1 ＝５を減じて１４９５を算出する。これがサイクル２における区間番号１からεＮ−１までのεＮ−１区間（Ｎ−１／ε個のデータ）におけるカウント数ｆとなる。
【００５０】
次にデータ値Ｄ１に係る先頭区間頻度ｙ1 ＝５、最終区間頻度ｙn ＝５０、カウント数ｆ＝１５００であり、εＮ＝１００であるため、これらを（１）式に代入して算出したｙ2 ＝３．９５≒４を近似値として、新たな先頭区間頻度ｙ1 （サイクルｂ２における先頭区間頻度ｙ1 ）として記憶する。一方、データ値Ｄ２に係る誤差見積もり値Δは０でないので、Δ減算処理により誤差見積もり値Δとして１０−１＝９を記憶する。
【００５１】
以上のように処理により、スケッチ記憶部３００１に記憶された各データ値に係る頻度情報は、図２（ｄ）のようになる。これは、サイクルｂ２における区間番号１からεＮ−１までの処理が終了した状態となる。サイクルｂ２における区間番号εＮのデータに係る処理を行う。このように、先頭区間出現頻度演算処理を行うことで、あるサイクルにおける区間番号εＮ−１までの処理が終了したことになる。そのため、次の区間の処理を終了することにより、そのサイクルに係るＮ個分のデータの処理を終了したことになる。なお、次の区間における頻度情報追加処理では、誤差見積もり値Δとして記憶される値は常にεＮ−１となる。
【００５２】
Ｎ個以上のデータについて、先頭区間出現頻度演算処理を継続して行っていくことにより、１／ε個のデータの処理が終了する度に、結果検索抽出処理部２００７が結果を抽出することができる。ここで、結果検索抽出処理部２００７は、スケッチ記憶部３００１に頻度情報が残された、カウント数ｆが（ｓ−ε）Ｎ以上となるデータ値に係る頻度情報について抽出処理することができる。
【００５３】
以上のように、実施の形態１の統計処理装置１０００によれば、演算手段２０００の近似頻度演算処理部２００６が行う先頭区間出現頻度演算処理により、次サイクルに係る頻度情報の処理を行い、スケッチ記憶部３００１に記憶するようにしたので、スケッチ記憶部３００２をサイクル毎に重複して有する必要がなく、また、同じ処理を並行して行うこともなく、１／ε個のデータを処理する毎に、Ｎ個分のデータを処理した結果を抽出することができる。その際、１区間ずらした際の、先頭区間（データ）からεＮ−１区間分のカウント数ｆの値を算出するとともに、必要に応じて、２区間目の出現頻度ｙ2 （次の区間における先頭区間出現頻度となる）を、先頭区間頻度ｙ1 、最終区間頻度ｙn 、カウント数ｆにより得られる二次曲線の式に基づいて算出して、カウント数ｆから減算することにより、次のサイクルに前のサイクルの先頭区間の出現頻度を含めないようにすることができるため、より精度の高い計数処理、統計処理を行って結果を抽出することができる。
【００５４】
また、上述したように、処理を開始するデータを所望のデータ数ｗ（１／ε以下）だけずらしていってそれぞれ計数処理を並行して行う場合についても、処理とメモリ容量の重複は１／（εｗ）個で済むことになり、さらに短い間隔で結果の抽出を行うことができることになる。本実施の形態による処理を行わない場合に、この並行処理を行うために必要な記憶容量とデータ処理能力はＮ／ｗ倍となるとなるが、これと比較しても、１／（εＮ）のメモリ容量及び処理時間の消費だけで済むことになる。そのため、εＮが充分に大きくなるほど、大きな効果を発揮することができる。
【００５５】
実施の形態２．
図７は実施の形態２における統計処理装置１０００Ａの構成を示すブロック図である。図７の統計処理装置１０００Ａは、予兆出力処理部２００８を有している点で図１の統計処理装置１０００と異なる。予兆出力処理部２００８は、変化率推定処理を行って、各データ値に係る出現頻度の変化の傾向を算出し、算出した傾向に基づいて、例えば表示手段、発音手段（図示せず）による警告教示を行う。
【００５６】
図８は統計処理装置１０００の演算手段２０００における処理の流れ及び処理時に参照するデータの流れを組み合わせて表した図である。図８において、図２と同じ番号を付しているものは、同様の動作、処理を行うものであるため、説明を省略する。図８に示すように、予兆出力処理部２００８が行う変化率推定処理は、先頭区間出現頻度演算処理と同様に、Ｎ個以上のデータを処理した後に行う処理である（Ｓ１５）。ただし、先頭区間出現頻度演算処理による頻度情報の変更が行われる前に処理を行う。
【００５７】
予兆出力処理部２００８は、実施の形態１において説明した（１）式に係る２次曲線の微分に係る次式（２）に基づいて、εＮ区間（最終の区間）目における微分値ｙ’n を変化率の推定値として算出する。ここで、実施の形態１と異なり、誤差見積もり値Δ＞０の場合がある。Δ＞０の場合は１区間目ではなくΔ＋１区間目（ｂ区間目）からの計数に係るカウント数ｆに基づく変化率の推定値が算出されることになる。また、Δ＞εＮ−２の場合は、２次曲線への近似ができず、変化率の推定値を算出することができないため、変化率推定処理は行わないものとする。
【００５８】
【数２】
0004513878.tif 000003
【００５９】
予兆出力処理部２００８は、算出した変化率の推定値に基づき、予め定めたルールを満たしているかどうか判断する。ここで、例えば一定以上の出現頻度を観測する場合、算出した変化率に基づいて、今後、所定のデータ数以内に所定のカウント数ｆを越える可能性があるかどうかを判断する、変化率が所定の値以上と判断する等、その予兆を警告教示するためのルールを任意に定めることができる。
【００６０】
例えば図２（ｃ）においては、データ値Ｄ１に係る先頭区間頻度ｙ0 ＝５、最終区間頻度ｙn ＝５０、カウント数ｆ＝１５００であり、εＮ＝１００であるため、これらを（２）式に代入して算出した変化率の推定値は５．１７となる。また、データ値Ｄ１に係る先頭区間頻度ｙ0 ＝１５、最終区間頻度ｙn ＝２、カウント数ｆ＝７２０であり、εＮ＝１００であるため、変化率の推定値は−０．１８となる。
【００６１】
ここで、予兆出力処理部２００８には、例えば今後２０区間以内に、カウント数ｆが閾値となる１５５０を越える可能性があれば警告教示を行うルールが定められているものとする。データ値Ｄ１については、変化率の推定値が５．１７であるため、２０区間でカウント数ｆは５．１７×２０＝１０３．４増加する可能性がある。このとき、１５００＋１０３．４＝１６０３．４であり、閾値となる１５５０を越えることが見込まれるため、予兆出力処理部２００８は警告教示を行う。
【００６２】
一方、データ値Ｄ２については、変化率の推定値が−０．１８であり、減少傾向にある。また、閾値１５５０を越えると見込めないため、予兆出力処理部２００８は警告教示を行わない。
【００６３】
以上のように、実施の形態２によれば、予兆出力処理部２００８をさらに有し、スケッチ記憶部３００２に頻度情報が記憶された各データ値に係る先頭区間頻度ｙ0 、最終区間頻度ｙn 、カウント数ｆに基づいて、Ｎ個のデータにおける最終区間となるεＮ番目の区間における出現頻度の変化率を、上述した二次曲線の微分値に基づいて算出するするようにしたので、各データ値における出現頻度の増加（減少）傾向を推定することができる。そして、出現頻度の傾向に基づいて、例えば注目しなければならないほど出現頻度が増加しそうな場合など、所定のルールに基づいて事前にオペレータ等に警告を発するなどの処理を行うことができ、信頼性の向上をはかることができる。
【００６４】
実施の形態３．
上述の実施の形態において、先頭区間頻度ｙ0 、最終区間頻度ｙn 及びカウント数ｆの関係を二次曲線で表し、２区間目の出現頻度（１区間ずらしたときの先頭区間頻度）の算出を行うようにしたが、二次曲線に限定するものではなく、他の曲線などで近似させるようにしてもかまわない。例えば、出現頻度の変化モデルに基づいている曲線にすることが望ましい。
【００６５】
実施の形態４．
上述の実施の形態においては、インターフェース手段４０００を介して得られるデータを処理するようにしたが、例えば、記憶手段３０００にＮ個分のデータを一時的に蓄えてから演算手段２０００において各種処理を行うこともできる。
【００６６】
また、上述の実施の形態では、最終区間頻度ｙn を更新することにより、１区間分の出現頻度の計数した値を最終区間頻度ｙn に一時的に蓄え、１区間分の処理が終了するとカウント数ｆの値などに更新、反映させるようにしたが、この方法に限定するものではない。場合によっては同時に更新していってもよいし、また、通常はカウント数ｆを更新し、最終区間のみ最終区間頻度ｙn も更新するようにしてもよい。
【産業上の利用可能性】
【００６７】
上述した各実施の形態では、時系列データから一定以上の出現頻度で現われるデータを抽出するための統計処理方法、処理を行う装置などについて説明した。ここで、本発明に係る方法などを実際に利用する場面としては、オペレータがデータ値などに基づく目視検査する場合に高い出現頻度に係るデータから提示する可視化装置の一部として利用する場合が考えられる。また、処理コストが高い解析処理を行うにあたって、処理対象を高い出現頻度に係るデータに絞るための前処理として用いる場合などが考えられる。
【図面の簡単な説明】
【００６８】
【図１】実施の形態１の統計処理装置１０００の構成を示すブロック図である。
【図２】スケッチ記憶部３００１に記憶される頻度情報の例を表す図である。
【図３】統計処理に係るデータの概念図である。
【図４】実施の形態１における処理及びデータの流れを表した図である。
【図５】近似頻度演算処理部２００６による処理のフローチャートを表す図である。
【図６】２区間目の出現頻度の推定に係る概念を表す図である。
【図７】実施の形態２の統計処理装置１０００Ａの構成を示すブロック図である。
【図８】実施の形態２における処理及びデータの流れを表した図である。
【符号の説明】
【００６９】
１０００、１０００Ａ  統計処理装置
２０００  演算手段
２００１  データ取得処理部
２００２  データ値計数処理部
２００３  区間内データ処理数判断部
２００４  データ処理数判断部
２００５  計数決定処理部
２００６  近似頻度演算処理部
２００７  結果検索抽出処理部
２００８  予兆出力処理部
３０００  記憶手段
３００１  スケッチ記憶部
３００２  区間内処理データ数記憶部
３００３  処理データ数記憶部
４０００  インタフェース部
【図１】
0004513878.tif 000004
【図２】
0004513878.tif 000005
【図３】
0004513878.tif 000006
【図４】
0004513878.tif 000007
【図５】
0004513878.tif 000008
【図６】
0004513878.tif 000009
【図７】
0004513878.tif 000010
【図８】
0004513878.tif 000011