以下、図面に基づいて、本願の開示するグループ分け処理方法、グループ分け処理プログラムおよび情報処理装置の実施例を詳細に説明する。なお、本実施例により、開示技術が限定されるものではない。また、以下の実施例は、矛盾しない範囲で適宜組みあわせてもよい。
図1は、実施例の情報処理装置の構成の一例を示すブロック図である。図1に示す情報処理装置100は、分析対象データが入力されると、分析対象データの複数の要素それぞれについての属性値に基づき、複数の要素を複数のグループに分類する。情報処理装置100は、例えば、複数の要素を属性値が大きい順に並べて、要素の数値構成比率の累積が70%までをAランク、70%から90%までをBランク、90%から100%までをCランクに分類する。情報処理装置100は、複数のグループのうち、少なくとも1つのグループに分類される要素についての属性値のバラツキを示す指標値を算出する。情報処理装置100は、例えば、Aランクに分類される要素についての属性値の差分を算出し、算出した差分の標準偏差を算出する。
情報処理装置100は、属性値のバラツキを示す指標値が、該グループに分類される要素のうち、属性値が最大及び/又は最小の要素以外の要素についての属性値のバラツキを示す指標値よりも小さくなるように制御する。すなわち、情報処理装置100は、例えば、Aランクの最初の因子A(1)から最終の因子A(n)までの属性値の差分の標準偏差が、因子A(1)から因子A(n−1)までの該標準偏差よりも小さくなるように、AランクとBランクとの境界を移動させる。なお、nはAランク内連番である。これにより、情報処理装置100は、グループ内の要素のバラツキを抑制できる。
次に、情報処理装置100の構成について説明する。図1に示すように、情報処理装置100は、入力部111と、表示部112と、操作部113と、記憶部120と、制御部130とを有する。なお、情報処理装置100は、図1に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイス等の機能部を有することとしてもかまわない。
入力部111は、例えば、媒体読取装置である。入力部111は、CD−ROMやDVDディスク、USB(Universal Serial Bus)メモリ等の可搬型記録媒体に記憶された分析対象データを読み込む。すなわち、入力部111には、記録媒体から分析対象データが入力される。入力部111は、入力された分析対象データを制御部130に出力する。また、入力部111は、他の情報処理装置と通信可能な通信部とし、他の情報処理装置から分析対象データを受信して入力されるようにしてもよい。
表示部112は、各種情報を表示するための表示デバイスである。表示部112は、例えば、表示デバイスとして液晶ディスプレイ等によって実現される。表示部112は、制御部130から入力された1次結果テーブル、2次結果テーブル、3次結果テーブル、パレート図等を含む各種画面を表示する。
操作部113は、ユーザから各種操作を受け付ける入力デバイスである。操作部113は、例えば、入力デバイスとして、キーボードやマウス等によって実現される。操作部113は、ユーザによって入力された操作を操作情報として制御部130に出力する。なお、操作部113は、入力デバイスとして、タッチパネル等によって実現されるようにしてもよく、表示部112の表示デバイスと、操作部113の入力デバイスとは、一体化されるようにしてもよい。
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部120は、1次結果テーブル121と、2次結果テーブル122と、入替後2次結果テーブル123と、標準偏差テーブル124と、3次結果テーブル125とを有する。また、記憶部120は、制御部130での処理に用いる情報を記憶する。
1次結果テーブル121は、分析対象データのABC分析結果である1次結果を記憶する。図2は、1次結果テーブルの一例を示す図である。図2に示すように、1次結果テーブル121は、「連番」、「因子名称」、「因子数値」、「因子累計値」、「因子累計割合」、「ランク」、「ランク内連番」といった項目を有する。1次結果テーブル121は、例えば、因子ごとに1レコードとして記憶する。
「連番」は、分析対象データの因子に対して振られる番号であり、各因子を識別する識別子である。「因子名称」は、因子の名称を示す情報である。「因子数値」は、因子の属性値を示す情報である。「因子累計値」は、連番の若い順に因子数値を加算した累計値を示す情報である。「因子累計割合」は、因子累計値の全体に占める割合を示す情報である。「ランク」は、ABC分析の各ランクを示す情報である。「ランク内連番」は、各ランク内において因子に対して振られる番号であり、各ランク内において各因子を識別する識別子である。
図1の説明に戻って、2次結果テーブル122は、1次結果に対して因子数値差分を付加した2次結果を記憶する。図3は、2次結果テーブルの一例を示す図である。図3に示すように、2次結果テーブル122は、「連番」、「因子名称」、「因子数値」、「因子累計値」、「因子累計割合」、「ランク」、「ランク内連番」、「因子数値差分」といった項目を有する。2次結果テーブル122は、例えば、因子ごとに1レコードとして記憶する。
「連番」、「因子名称」、「因子数値」、「因子累計値」、「因子累計割合」、「ランク」および「ランク内連番」は、1次結果テーブル121の同名の項目と同じであるので、その説明を省略する。「因子数値差分」は、ある因子の因子数値と、次の因子の因子数値との差分である。図3の1行目の例では、連番「1」の因子数値差分は、連番「1」の因子数値「678」と、連番「2」の因子数値「634」との差分「44」となる。
図1の説明に戻って、入替後2次結果テーブル123は、2次結果に対してランク間の境界を移動させて、すなわち、ランク境界の因子を移動させた後の2次結果を記憶する。図4は、入替後2次結果テーブルの一例を示す図である。図4に示すように、入替後2次結果テーブル123は、「連番」、「因子名称」、「因子数値」、「因子累計値」、「因子累計割合」、「ランク」、「ランク内連番」、「因子数値差分」といった項目を有する。入替後2次結果テーブル123は、例えば、因子ごとに1レコードとして記憶する。
入替後2次結果テーブル123の各項目は、2次結果テーブル122の各項目と同一であるので、その説明を省略する。入替後2次結果テーブル123は、2次結果テーブル122と比べて、連番「12」の因子が、AランクからBランクへと移動されている。すなわち、入替後2次結果テーブル123では、2次結果テーブル122と比べて、AランクとBランクとの境界が、Aランク側、つまり、連番「12」と「13」との間から、連番「11」と「12」との間に移動されている。
図1の説明に戻って、標準偏差テーブル124は、各ランクにおける因子の入れ替え前後の標準偏差を記憶する。図5は、標準偏差テーブルの一例を示す図である。図5に示すように、標準偏差テーブル124は、「入替前標準偏差」、「入替後標準偏差」といった項目を有する。また、「入替前標準偏差」および「入替後標準偏差」は、それぞれ「Aランク」、「Bランク」、「Cランク」といった項目を有する。
「入替前標準偏差」は、因子のランク間の入れ替え前、つまり、2次結果テーブル122の各ランクにおける因子数値差分の標準偏差を示す情報である。「入替後標準偏差」は、因子のランク間の入れ替え後、つまり、入替後2次結果テーブル123の各ランクにおける因子数値差分の標準偏差を示す情報である。「Aランク」は、Aランクに分類される因子の因子数値差分の標準偏差を示す情報である。「Bランク」は、Bランクに分類される因子の因子数値差分の標準偏差を示す情報である。「Cランク」は、Cランクに分類される因子の因子数値差分の標準偏差を示す情報である。
図1の説明に戻って、3次結果テーブル125は、ランク境界の因子を移動させた後の2次結果に対して、各ランク内のサブランクを付加した3次結果を記憶する。図6は、3次結果テーブルの一例を示す図である。図6に示すように、3次結果テーブル125は、「連番」、「因子名称」、「因子数値」、「因子累計値」、「因子累計割合」、「ランク」、「ランク内連番」、「因子数値差分」、「サブランク」といった項目を有する。3次結果テーブル125は、例えば、因子ごとに1レコードとして記憶する。
「連番」、「因子名称」、「因子数値」、「因子累計値」、「因子累計割合」、「ランク」、「ランク内連番」および「因子数値差分」は、2次結果テーブル122の同名の項目と同じであるので、その説明を省略する。「サブランク」は、各ランク内において、さらにグループ分けされたサブランクを示す情報である。サブランクは、例えば、Aランク内であれば、「a1」、「a2」といったサブランクが付加される。
図1の説明に戻って、制御部130は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、内部の記憶装置に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。また、制御部130は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されるようにしてもよい。制御部130は、算出部131と、判定部132と、分類部133とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、図1に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
制御部130は、複数の要素それぞれについての属性値に基づき、複数の要素を複数のグループに分類する際、複数のグループのうち、少なくとも1つのグループに分類される要素についての属性値のバラツキを示す指標値に基づいて制御する。制御部130は、該属性値のバラツキを示す指標値が、該グループに分類される要素のうち、属性値が最大及び/又は最小の要素以外の要素についての属性値のバラツキを示す指標値よりも小さくなるように制御する。
算出部131は、入力部111から分析対象データが入力されると、分析対象データに対してABC分析を行って1次結果を生成し、生成した1次結果を1次結果テーブル121に記憶する。すなわち、算出部131は、1次結果テーブル121を生成する。算出部131は、例えば、分析対象データの各要素(因子)の属性値、つまり因子数値が最大である因子が先頭になるようにソートする。算出部131は、ソートした分析対象データについて、例えば、因子の数値構成比率の累積である因子累計割合について、70%までをAランク、70%から90%までをBランク、90%から100%までをCランクに分類する。言い換えると、算出部131は、複数の要素について、複数の要素それぞれの属性値が最大の要素から順に並べて複数のグループに分類する。
ここで、ABC分析の結果である1次結果に基づくパレート図について説明する。図7は、パレート図の一例を示す図である。図7に示すように、パレート図であるグラフ5は、横軸に各因子を並べ、縦軸に各因子の因子数値、因子累計値および因子累計割合をプロットしたものである。ABC分析の結果は、グラフ5に示すように、AからCの各ランクが一目で判別できる。また、パレート図は、1次結果だけでなく、2次結果および3次結果に基づいて生成してもよい。本実施例では、パレート図のAランクとBランクとの境界、および、BランクとCランクとの境界における因子の分類を最適化する。
図1の説明に戻って、算出部131は、1次結果テーブル121を参照し、各因子間の差分を算出する。算出部131は、算出した差分である因子数値差分を1次結果とともに2次結果テーブル122に記憶する。すなわち、算出部131は、2次結果テーブル122を生成する。算出部131は、例えば、Aランクの最初の因子A(1)の因子数値と、2番目の因子A(2)の因子数値との差分A(1)−A(2)を、因子A(1)の因子数値差分として算出する。なお、以下の説明では、因子数値差分を単に差分とも表現する。
算出部131は、2次結果テーブル122を生成すると、AランクとBランクとの分類処理であるABランク分類処理を実行する。なお、ABランク分類処理は、算出部131および判定部132で分担して実行される。また、以下の説明では、分類処理についてAランクとBランクとの分類処理について説明するが、BランクとCランクとの分類処理であるBCランク分類処理も同様であるので、その説明を省略する。なお、BCランク分類処理では、ABランク分類処理のAランクおよびBランクを、BランクおよびCランクに読み替える。
算出部131は、2次結果テーブル122に基づいて、各ランクの因子数値差分の標準偏差を算出し、標準偏差テーブル124の入替前標準偏差欄に格納する。また、算出部131は、2次結果テーブル122の内容を入替後2次結果テーブル123にコピーして記憶する。算出部131は、2次結果テーブル122の内容について、入替後2次結果テーブル123へのコピーが完了すると、判定部132に判定指示を出力する。
算出部131は、判定部132から算出指示が入力されると、算出指示に応じたランクの標準偏差を算出し、標準偏差テーブル124の入替後標準偏差欄の対応するランク欄に格納する。算出部131は、算出指示に応じたランクの標準偏差の算出が完了すると、判定部132に算出完了情報を出力する。
判定部132は、算出部131から判定指示が入力されると、AランクとBランクとの境界因子差分A(n)−B(1)、および、Aランクの最終因子とひとつ上位の因子との差分A(n−1)−A(n)を比較する。なお、nはAランクのランク内連番である。判定部132は、比較の結果、差分A(n)−B(1)が差分A(n−1)−A(n)以上であるか否かを判定する。判定部132は、差分A(n)−B(1)が差分A(n−1)−A(n)以上である場合には、AランクとBランクとの境界因子差分A(n)−B(1)、および、Bランクの先頭因子とひとつ下位の因子との差分B(1)−B(2)を比較する。判定部132は、比較の結果、差分A(n)−B(1)が差分B(1)−B(2)以上であるか否かを判定する。判定部132は、差分A(n)−B(1)が差分B(1)−B(2)以上である場合には、1次結果のAランクとBランクとの境界は妥当であると判定する。すなわち、判定部132は、AランクとBランクとの境界を移動しないと判定する。
ここで、図8を用いて、差分A(n)−B(1)が差分A(n−1)−A(n)以上、かつ、差分A(n)−B(1)が差分B(1)−B(2)以上である場合の例について説明する。図8は、ランク境界の判定の一例を示す図である。図8に示すように、2次結果テーブル122aでは、Aランクは連番「1」〜「12」、Bランクは連番「13」〜「26」となっている。このとき、AランクとBランクとの境界因子差分A(n)−B(1)は、A(12)−B(1)=272−241=31となる。また、差分A(n−1)−A(n)は、A(11)−A(12)=298−272=26となる。また、差分B(1)−B(2)は、B(1)−B(2)=241−222=20となる。すなわち、差分A(n)−B(1)が差分A(n−1)−A(n)以上である条件は、31≧26であるので満たす。また、差分A(n)−B(1)が差分B(1)−B(2)以上である条件は、31≧20であるので満たす。このため、図8の例では、AランクとBランクとの境界を移動しないと判定する。
図1の説明に戻って、判定部132は、差分A(n)−B(1)が差分A(n−1)−A(n)以上であるが、差分A(n)−B(1)が差分B(1)−B(2)以上でない場合には、BA組み入れ処理を実行する。なお、BA組み入れ処理は、Bランクの因子をAランクに組み入れるか否かを判定する処理である。判定部132は、BA組み入れ処理として、まず、Bランクの因子の先頭+1から順に確認するための位置パラメータmに初期値「1」をセットする。また、判定部132は、入替後2次結果テーブル123を参照して、Bランク最終因子のランク内連番をパラメータpにセットする。
判定部132は、mをインクリメントして、pがm以上であるか否かを判定する。判定部132は、pがm以上でない場合には、BA組み入れ処理を終了する。判定部132は、pがm以上である場合には、AランクとBランクとの境界因子差分A(n)−B(1)、および、Bランクの因子B(m)とB(m+1)との差分B(m)−B(m+1)を比較する。判定部132は、比較の結果、差分A(n)−B(1)がB(m)−B(m+1)以上であるか否かを判定する。判定部132は、差分A(n)−B(1)がB(m)−B(m+1)以上でない場合には、mをインクリメントして、pがm以上であるか否かの判定に戻る。判定部132は、差分A(n)−B(1)がB(m)−B(m+1)以上である場合には、Bランクの因子B(m−1)までをAランクに組み入れて、BA組み入れ処理を終了する。
ここで、図9を用いて、差分A(n)−B(1)が差分A(n−1)−A(n)以上であるが、差分A(n)−B(1)が差分B(1)−B(2)以上でない場合の例について説明する。図9は、ランク境界の判定の他の一例を示す図である。図9に示すように、2次結果テーブル122bでは、Aランクは連番「1」〜「12」、Bランクは連番「13」〜「26」となっている。このとき、AランクとBランクとの境界因子差分A(n)−B(1)は、A(12)−B(1)=278−244=34となる。また、差分A(n−1)−A(n)は、A(11)−A(12)=308−278=30となる。また、差分B(1)−B(2)は、B(1)−B(2)=244−201=43となる。すなわち、差分A(n)−B(1)が差分A(n−1)−A(n)以上である条件は、34≧30であるので満たす。また、差分A(n)−B(1)が差分B(1)−B(2)以上である条件は、34<43であるので満たさない。このため、図8の例では、BA組み入れ処理を実行する。
BA組み入れ処理では、まず、判定部132は、パラメータm=1、p=14をセットする。判定部132は、mをインクリメントしてm=2とする。判定部132は、pとmとを比較すると、14≧2であるので、差分A(n)−B(1)と、B(m)−B(m+1)とを比較する。差分A(n)−B(1)は、A(12)−B(1)=278−244=34となる。B(m)−B(m+1)は、B(2)−B(3)=201−198=3となる。すなわち、差分A(n)−B(1)がB(m)−B(m+1)以上である条件は、34≧3であるので満たす。このため、判定部132は、B(m−1)=B(1)までをAランクに組み入れる。つまり、新たな境界因子差分は連番「13」の因子数値差分である「34」となる。
図1の説明に戻る。判定部132は、差分A(n)−B(1)が差分A(n−1)−A(n)以上でない場合には、AランクとBランクとの境界因子差分A(n)−B(1)、および、Bランクの先頭因子とひとつ下位の因子との差分B(1)−B(2)を比較する。判定部132は、比較の結果、差分A(n)−B(1)が差分B(1)−B(2)以上であるか否かを判定する。判定部132は、差分A(n)−B(1)が差分B(1)−B(2)以上である場合には、Aランクの最終因子A(n)はBランクに適していると判定する。また、判定部132は、入替後2次結果テーブル123のA(n)をAランクから外し、Bランクの先頭にずらして境界を移動する。さらに、判定部132は、境界の移動に伴って、ランク内連番を再付番する。
判定部132は、境界の移動後に、入替後2次結果テーブル123のAランクの因子数値差分の標準偏差を算出する旨の算出指示を算出部131に出力する。判定部132は、算出部131から、入替後2次結果テーブル123のAランクの因子数値差分の標準偏差の算出完了情報が入力されると、標準偏差テーブル124の入替後標準偏差のAランクを参照する。判定部132は、Aランクの入替後標準偏差が入替前標準偏差以下であるか否かを判定する。判定部132は、入替後標準偏差が入替前標準偏差以下である場合には、入替結果は妥当であると判定し、移動後の境界についての比較を繰り返す。判定部132は、入替後標準偏差が入替前標準偏差以下でない場合には、入替結果を不適とし、境界を元に戻す。
ここで、図10を用いて、差分A(n)−B(1)が差分A(n−1)−A(n)以上でなく、かつ、差分A(n)−B(1)が差分B(1)−B(2)以上である場合の例について説明する。図10は、ランク境界の判定の他の一例を示す図である。図10に示すように、2次結果テーブル122cでは、Aランクは連番「1」〜「12」、Bランクは連番「13」〜「26」となっている。このとき、AランクとBランクとの境界因子差分A(n)−B(1)は、A(12)−B(1)=271−244=27となる。また、差分A(n−1)−A(n)は、A(11)−A(12)=308−271=37となる。また、差分B(1)−B(2)は、B(1)−B(2)=244−235=9となる。すなわち、差分A(n)−B(1)が差分A(n−1)−A(n)以上である条件は、27<37であるので満たさない。また、差分A(n)−B(1)が差分B(1)−B(2)以上である条件は、27≧9であるので満たす。このため、図10の例では、A(12)をBランクに移動させる。
まず、判定部132は、差分A(n)−B(1)が差分B(1)−B(2)以上である条件を満たすので、Aランクの最終因子A(12)は、Bランクに適していると判定する。判定部132は、入替後2次結果テーブル123aのA(12)をAランクから外し、Bランクの先頭であるB(1)にずらして境界を移動する。なお、図10の入替後2次結果テーブル123aは、A(12)をAランクから外し、Bランクの先頭であるB(1)にずらして境界を移動した状態である。
判定部132は、A(1)からA(10)に対応する因子数値差分の標準偏差を算出して、入替後標準偏差とする。なお、A(11)に対応する因子数値差分は、Bランクの先頭因子との差分であるので除外している。判定部132は、入替後標準偏差が、A(1)からA(11)に対応する因子数値差分の標準偏差である入替前標準偏差以下であるか否かを判定する。判定部132は、入替後標準偏差が入替前標準偏差以下である場合には、入替結果は妥当であると判定する。判定部132は、入替後標準偏差が入替前標準偏差以下でない場合には、入替結果を不適とし、境界を元に戻す。
図1の説明に戻って、判定部132は、差分A(n)−B(1)が差分A(n−1)−A(n)以上でなく、かつ、差分A(n)−B(1)が差分B(1)−B(2)以上でない場合には、BAまたはAB組み入れ処理を実行する。なお、BAまたはAB組み入れ処理は、Bランクの因子をAランクに組み入れるか否か、または、Aランクの因子をBランクに組み入れるか否かを判定する処理である。判定部132は、BAまたはAB組み入れ処理として、入替後2次結果テーブル123を参照して、Aランク最終因子のランク内連番をパラメータnにセットする。
判定部132は、Aランク最終2因子の差分A(n−1)−A(n)と、Bランク先頭2因子の差分B(1)−B(2)とを比較する。判定部132は、比較の結果、差分A(n−1)−A(n)が差分B(1)−B(2)以上であるか否かを判定する。判定部132は、差分A(n−1)−A(n)が差分B(1)−B(2)以上である場合には、差分A(n−1)−A(n)が差分B(1)−B(2)よりも大きいか否かを判定する。判定部132は、差分A(n−1)−A(n)が差分B(1)−B(2)よりも大きくない、すなわち、差分A(n−1)−A(n)と差分B(1)−B(2)とが等しい場合には、Aランクの最終因子A(n)はBランクに近いと判定する。また、判定部132は、入替後2次結果テーブル123のA(n)をAランクから外し、Bランクの先頭にずらして境界を移動する。さらに、判定部132は、境界の移動に伴って、ランク内連番を再付番して、BAまたはAB組み入れ処理を終了する。
ここで、図11を用いて、差分A(n−1)−A(n)と差分B(1)−B(2)とが等しい場合の例について説明する。図11は、ランク境界の判定の他の一例を示す図である。図11に示すように、2次結果テーブル122dでは、Aランクは連番「1」〜「12」、Bランクは連番「13」〜「26」となっている。このとき、AランクとBランクとの境界因子差分A(n)−B(1)は、A(12)−B(1)=256−244=12となる。また、差分A(n−1)−A(n)は、A(11)−A(12)=298−256=42となる。また、差分B(1)−B(2)は、B(1)−B(2)=244−202=42となる。すなわち、差分A(n−1)−A(n)と差分B(1)−B(2)とは、42=42となり等しい。このため、図11の例では、Aランクの最終因子A(12)はBランクに近いと判定する。
図1の説明に戻って、判定部132は、A(n−1)−A(n)が差分B(1)−B(2)よりも大きい場合には、AB処理を実行する。なお、AB処理は、Aランクの因子をBランクに組み入れるか否かを判定する処理である。判定部132は、AB処理として、まず、因子A(n)のBランクへの組み込み前のAランクの標準偏差を算出する。なお、Aランクの標準偏差の算出では、Aランクの境界因子A(n)とBランクの先頭因子B(1)との差分は除いてAランクの標準偏差を算出する。判定部132は、算出した因子A(n)のBランクへの組み込み前のAランクの標準偏差を組み込み前標準偏差として記憶部120に一時的に記憶する。なお、標準偏差の算出は、判定部132から算出部131に算出指示を出力し、算出部131が算出した標準偏差を記憶部120に一時的に記憶するようにしてもよい。
判定部132は、パラメータnをデクリメントして、nがゼロであるか否かを判定する。判定部132は、nがゼロである場合には、AB処理を終了する。判定部132は、nがゼロでない場合には、AランクとBランクとの境界因子差分A(n)−B(1)、および、Aランクの因子A(n−1)とA(n)との差分A(n−1)−A(n)を比較する。判定部132は、比較の結果、差分A(n)−B(1)が差分A(n−1)−A(n)以上であるか否かを判定する。判定部132は、差分A(n)−B(1)が差分A(n−1)−A(n)以上である場合には、Aランクの因子A(n+1)までをBランクに組み込んで、AB処理を終了する。
判定部132は、差分A(n)−B(1)が差分A(n−1)−A(n)以上でない場合には、因子A(n)のBランクへの組み込み前のAランクの標準偏差を算出する。すなわち、判定部132は、nのデクリメント前に算出したAランクの標準偏差よりも、Aランクの因子がひとつ少ない状態のAランクの標準偏差を算出する。つまり、算出される標準偏差は、nのデクリメント前のA(n)をBランクに組み込んだ後の標準偏差である。判定部132は、算出したnのデクリメント前のA(n)をBランクに組み込んだ後の標準偏差を組み込み後標準偏差として記憶部120に一時的に記憶する。なお、AB処理および後述するBA処理における標準偏差の算出は、判定部132から算出部131に算出指示を出力し、算出部131が算出した標準偏差を記憶部120に一時的に記憶するようにしてもよい。
判定部132は、記憶部120に一時的に記憶した組み込み前標準偏差と組み込み後標準偏差とを読み出して、組み込み前標準偏差が、組み込み後標準偏差以上であるか否かを判定する。判定部132は、組み込み前標準偏差が、組み込み後標準偏差以上である場合には、Aランクの因子A(n+1)をBランクに組み込み、新Aランクの標準偏差を算出する。判定部132は、算出した新Aランクの標準偏差を、組み込み前標準偏差として記憶部120に一時的に記憶する。判定部132は、新Aランクの標準偏差を算出すると、nをデクリメントして、nがゼロであるか否かの判定に戻る。
判定部132は、組み込み前標準偏差が、組み込み後標準偏差以上でない場合には、因子A(n)のBランクへの組み込みは不適合と判定し、Aランクの因子A(n+1)までをBランクに組み込んで、AB処理を終了する。判定部132は、AB処理を終了すると、BAまたはAB組み入れ処理を終了する。
判定部132は、Aランク最終2因子の差分A(n−1)−A(n)と、Bランク先頭2因子の差分B(1)−B(2)との比較の結果、A(n−1)−A(n)が差分B(1)−B(2)以上でない場合には、BA処理を実行する。なお、BA処理は、Bランクの因子をAランクに組み入れるか否かを判定する処理である。判定部132は、BA処理として、まず、Bランクの因子の先頭+1から順に確認するための位置パラメータmに初期値「1」をセットする。また、判定部132は、入替後2次結果テーブル123を参照して、Bランク最終因子のランク内連番をパラメータpにセットする。判定部132は、因子B(m)のAランクへの組み込み前のAランクの標準偏差を算出する。判定部132は、算出した因子B(m)のAランクへの組み込み前のAランクの標準偏差を組み込み前標準偏差として記憶部120に一時的に記憶する。
判定部132は、パラメータmをインクリメントして、mがp以下であるか否かを判定する。判定部132は、mがp以下でない場合には、BA処理を終了する。判定部132は、mがp以下である場合には、AランクとBランクとの境界因子差分A(n)−B(1)、および、Bランクの因子B(m)とB(m+1)との差分B(m)−B(m+1)を比較する。判定部132は、比較の結果、差分A(n)−B(1)が差分B(m)−B(m+1)以上であるか否かを判定する。判定部132は、差分A(n)−B(1)が差分B(m)−B(m+1)以上である場合には、Bランクの因子B(m−1)までをAランクに組み込んで、BA処理を終了する。
判定部132は、差分A(n)−B(1)が差分B(m)−B(m+1)以上でない場合には、因子B(m)のAランクへの組み込み前のAランクの標準偏差を算出する。すなわち、判定部132は、mのインクリメント前に算出したAランクの標準偏差よりも、Aランクの因子がひとつ多い状態のAランクの標準偏差を算出する。つまり、算出した標準偏差は、mのインクリメント前のB(m)をAランクに組み込んだ後の標準偏差である。判定部132は、算出したmのインクリメント前のB(m)をAランクに組み込んだ後の標準偏差を組み込み後標準偏差として記憶部120に一時的に記憶する。
判定部132は、記憶部120に一時的に記憶した組み込み前標準偏差と組み込み後標準偏差とを読み出して、組み込み前標準偏差が、組み込み後標準偏差以上であるか否かを判定する。判定部132は、組み込み前標準偏差が、組み込み後標準偏差以上である場合には、Bランクの因子B(m−1)をAランクに組み込み、新Aランクの標準偏差を算出する。判定部132は、算出した新Aランクの標準偏差を、組み込み前標準偏差として記憶部120に一時的に記憶する。判定部132は、新Aランクの標準偏差を算出すると、mをインクリメントして、mがp以下であるか否かの判定に戻る。
判定部132は、組み込み前標準偏差が、組み込み後標準偏差以上でない場合には、因子B(m)のAランクへの組み込みは不適合と判定し、Bランクの因子B(m−1)までをAランクに組み込んで、BA処理を終了する。判定部132は、BA処理を終了すると、BAまたはAB組み入れ処理を終了する。また、判定部132は、BAまたはAB組み入れ処理を終了した時点で、記憶部120に一時的に記憶された組み込み後標準偏差を読み出して、標準偏差テーブル124の入替後標準偏差欄のAランク欄に記憶する。
ここで、図12を用いて、BA処理の一例について説明する。図12は、ランク境界の判定の他の一例を示す図である。図12に示すように、2次結果テーブル122eでは、Aランクは連番「1」〜「12」、Bランクは連番「13」〜「26」となっている。このとき、AランクとBランクとの境界因子差分A(n)−B(1)は、A(12)−B(1)=256−244=12となる。また、差分A(n−1)−A(n)は、A(11)−A(12)=298−256=42となる。また、差分B(1)−B(2)は、B(1)−B(2)=244−185=59となる。すなわち、差分A(n−1)−A(n)が差分A(n)−B(1)以上である条件は、42<59であるので満たさない。このため、図12の例では、BA処理を実行する。
BA処理では、まず、判定部132は、パラメータm=1、p=14をセットする。判定部132は、因子A(1)からA(11)に対応する差分に基づいて、Aランクの標準偏差を算出する。ここで、因子A(1)からA(11)に対応する差分のAランクの標準偏差は、例えば、36.63であったとする。判定部132は、mをインクリメントしてm=2とする。判定部132は、pとmとを比較すると、14≧2であるので、差分A(n)−B(1)と、B(m)−B(m+1)とを比較する。差分A(n)−B(1)は、A(12)−B(1)=256−244=12となる。B(m)−B(m+1)は、B(2)−B(3)=185−169=16となる。すなわち、差分A(n)−B(1)がB(m)−B(m+1)以上である条件は、12<16であるので満たさない。
判定部132は、B(2)のAランクへの組み込み前の、Aランクの標準偏差を算出する。すなわち、判定部132は、B(1)をAランクに組み込んだ後のAランクの標準偏差を算出する。すなわち、判定部132は、A(1)からA(12)に対応する差分に基づいて、Aランクの標準偏差を算出する。ここで、B(1)をAランクに組み込んだ後のAランクの標準偏差は、35.82であったとする。判定部132は、組み込み前標準偏差=36.63が、組み込み後標準偏差=35.82以上であるので、Bランクの因子B(1)をAランクに組み込み、新Aランクの標準偏差を算出する。判定部132は、算出した新Aランクの標準偏差を、組み込み前標準偏差としてBA処理を繰り返し、組み込み後標準偏差が組み込み前標準偏差よりも大きくなった時点でBランク因子のAランクへの追加を終了する。
図1の説明に戻って、判定部132は、ABランク分類処理およびBCランク分類処理が終了すると、判定完了情報を分類部133に出力する。ここで、入替後2次結果テーブル123には、判定部132の処理により、AランクとBランクとの境界、および、BランクとCランクとの境界の判定結果として、各因子が分類されるランクが記憶されている。すなわち、ABランク分類処理およびBCランク分類処理は、当該処理が終了した時点で、複数のグループのうち、第1のグループと、前記第1のグループと隣接する第2のグループとの境界を、各要素の属性値間の差分に基づいて移動するか否かの判定について完了していることとなる。つまり、ABランク分類処理およびBCランク分類処理は、ABC分析における重要度の高いAランクから順に、因子を各ランクに分類する。また、入替後2次結果テーブル123には、各因子が分類されるランクが記憶されているが、これらの各因子はランクの確定前であるので、各グループに分類される要素候補であるといえる。
分類部133は、判定部132から判定完了情報が入力されると、入替後2次結果テーブル123の内容を3次結果テーブル125にコピーして記憶する。すなわち、分類部133は、判定部132でのAランクとBランクとの境界、および、BランクとCランクとの境界の判定結果を確定させる。言い換えると、分類部133は、判定部132での判定の結果に基づいて、各要素を、それぞれのグループに分類する。
分類部133は、3次結果テーブル125を参照し、サブランク付加処理を実行する。サブランク付加処理では、同一ランク内の因子の数値差が大きい(薄い)部分、つまり、因子間の関係が薄い部分と、因子の数値差が小さい(濃い)部分、つまり、因子間の関係が濃い部分とについて、グループ分けを行う。これにより、本来は別の視点で分析すべきところを同一ランク内因子として分析してしまうことに対し、ランク内をさらにサブランクに分けることで、より精度の高い、かつ、実践的なABC分析ができる。
分類部133は、パラメータqに「0」をセットし、パラメータrにAランクの最終因子のランク内連番をセットする。分類部133は、qをインクリメントし、qとrとが等しいか否かを判定する。分類部133は、qとrとが等しくない場合には、Aランクのq番目の因子A(q)の因子数値差分と、標準偏差テーブル124の入替後標準偏差のAランクとを比較する。
分類部133は、比較の結果、因子A(q)の因子数値差分が入替後標準偏差のAランクの値よりも小さいか否かを判定する。分類部133は、因子A(q)の因子数値差分が入替後標準偏差のAランクの値よりも小さい場合には、因子A(q)と因子A(q+1)とを同一のサブランクとする。分類部133は、因子A(q)の因子数値差分が入替後標準偏差のAランクの値以上の場合には、因子A(q)と因子A(q+1)とを同一のサブランクとしない。分類部133は、Aランク内の他の因子についても同様に判定する。分類部133は、qとrとが等しいか否かの判定で、qとrとが等しい場合には、Bランクのサブランク付加を行う。
分類部133は、パラメータsに「0」をセットし、パラメータtにBランクの最終因子のランク内連番をセットする。分類部133は、sをインクリメントし、sとtとが等しいか否かを判定する。分類部133は、sとtとが等しくない場合には、Bランクのs番目の因子B(s)の因子数値差分と、標準偏差テーブル124の入替後標準偏差のBランクとを比較する。
分類部133は、比較の結果、因子B(s)の因子数値差分が入替後標準偏差のBランクの値よりも小さいか否かを判定する。分類部133は、因子B(s)の因子数値差分が入替後標準偏差のBランクの値よりも小さい場合には、因子B(s)と因子B(s+1)とを同一のサブランクとする。分類部133は、因子B(s)の因子数値差分が入替後標準偏差のBランクの値以上の場合には、因子B(s)と因子B(s+1)とを同一のサブランクとしない。分類部133は、Bランク内の他の因子についても同様に判定する。分類部133は、sとtとが等しいか否かの判定で、sとtとが等しい場合には、Cランクのサブランク付加を行う。
分類部133は、パラメータuに「0」をセットし、パラメータvにCランクの最終因子のランク内連番をセットする。分類部133は、uをインクリメントし、uとvとが等しいか否かを判定する。分類部133は、uとvとが等しくない場合には、Cランクのu番目の因子C(u)の因子数値差分と、標準偏差テーブル124の入替後標準偏差のCランクとを比較する。
分類部133は、比較の結果、因子C(u)の因子数値差分が入替後標準偏差のCランクの値よりも小さいか否かを判定する。分類部133は、因子C(u)の因子数値差分が入替後標準偏差のCランクの値よりも小さい場合には、因子C(u)と因子C(u+1)とを同一のサブランクとする。分類部133は、因子C(u)の因子数値差分が入替後標準偏差のCランクの値以上の場合には、因子C(u)と因子C(u+1)とを同一のサブランクとしない。分類部133は、Cランク内の他の因子についても同様に判定する。分類部133は、uとvとが等しいか否かの判定で、uとvとが等しい場合には、A〜Cの各ランク内の付加したサブランクを3次結果テーブル125に記憶して、サブランク付加処理を終了する。
ここで、図13を用いて、サブランク付加の一例について説明する。図13は、サブランクの付加の一例を示す図である。図13に示すように、3次結果テーブル125aでは、Aランクは連番「1」〜「12」、Bランクは連番「13」〜「26」、Cランクは連番「27」〜「52」となっている。Aランク内では、連番「3」〜「8」がサブランクa1に分類され、連番「10」、「11」がサブランクa2に分類されている。また、サブランクの分類に用いたAランクの標準偏差は36.63である。
同様に、Bランク内では、連番「14」〜「16」がサブランクb1に分類され、連番「17」〜「25」がサブランクb2に分類されている。また、サブランクの分類に用いたBランクの標準偏差は15.78である。Cランク内では、連番「27」〜「29」がサブランクc1に分類され、連番「33」、「34」がサブランクc2に分類されている。なお、Cランクのサブランクは、サブランクc5まで分類されているが、図13では省略している。また、サブランクの分類に用いたCランクの標準偏差は2.36である。
図1の説明に戻って、分類部133は、サブランク付加処理を終了すると、3次結果テーブル125を参照し、3次結果テーブルを表示する表示画面を生成する。分類部133は、生成した3次結果テーブルを表示する表示画面を表示部112に表示させる。
次に、実施例の情報処理装置100の動作について説明する。図14は、実施例のグループ分け処理の一例を示すフローチャートである。
算出部131は、入力部111から分析対象データが入力されると、分析対象データに対してABC分析を行って1次結果テーブル121を生成する(ステップS1)。算出部131は、1次結果テーブル121を参照し、各因子間の差分を算出する。算出部131は、算出した差分である因子数値差分と1次結果とに基づいて、2次結果テーブル122を生成する(ステップS2)。算出部131は、2次結果テーブル122を生成すると、AランクとBランクとの分類処理であるABランク分類処理を実行する(ステップS3)。
ここで、図15を用いてABランク分類処理について説明する。図15は、分類処理の一例を示すフローチャートである。算出部131は、2次結果テーブル122に基づいて、各ランクの因子数値差分の標準偏差を算出し、標準偏差テーブル124の入替前標準偏差欄に格納する(ステップS11)。また、算出部131は、2次結果テーブル122の内容を入替後2次結果テーブル123にコピーして記憶する(ステップS12)。算出部131は、2次結果テーブル122の内容について、入替後2次結果テーブル123へのコピーが完了すると、判定部132に判定指示を出力する。
判定部132は、算出部131から判定指示が入力されると、AランクとBランクとの境界因子差分A(n)−B(1)、および、Aランクの最終因子とひとつ上位の因子との差分A(n−1)−A(n)を比較する(ステップS13)。判定部132は、比較の結果、差分A(n)−B(1)が差分A(n−1)−A(n)以上であるか否かを判定する(ステップS14)。判定部132は、差分A(n)−B(1)が差分A(n−1)−A(n)以上である場合には(ステップS14:肯定)、差分A(n)−B(1)と差分B(1)−B(2)とを比較する。すなわち、判定部132は、AランクとBランクとの境界因子差分A(n)−B(1)、および、Bランクの先頭因子とひとつ下位の因子との差分B(1)−B(2)を比較する(ステップS15)。
判定部132は、比較の結果、差分A(n)−B(1)が差分B(1)−B(2)以上であるか否かを判定する(ステップS16)。判定部132は、差分A(n)−B(1)が差分B(1)−B(2)以上である場合には(ステップS16:肯定)、1次結果のAランクとBランクとの境界は妥当であると判定し(ステップS17)、ABランク分類処理を終了して、元の処理に戻る。
判定部132は、差分A(n)−B(1)が差分B(1)−B(2)以上でない場合には(ステップS16:否定)、BA組み入れ処理を実行する(ステップS18)。
ここで、図16を用いてBA組み入れ処理について説明する。図16は、BA組み入れ処理の一例を示すフローチャートである。判定部132は、Bランクの因子の先頭+1から順に確認するための位置パラメータmに初期値「1」をセットする。また、判定部132は、入替後2次結果テーブル123を参照して、Bランク最終因子のランク内連番をパラメータpにセットする(ステップS181)。
判定部132は、mをインクリメントして(ステップS182)、pがm以上であるか否かを判定する(ステップS183)。判定部132は、pがm以上でない場合には(ステップS183:否定)、BA組み入れ処理を終了し、元の処理に戻る。判定部132は、pがm以上である場合には(ステップS183:肯定)、AランクとBランクとの境界因子差分A(n)−B(1)、および、Bランクの因子B(m)とB(m+1)との差分B(m)−B(m+1)を比較する(ステップS184)。判定部132は、比較の結果、差分A(n)−B(1)がB(m)−B(m+1)以上であるか否かを判定する(ステップS185)。判定部132は、差分A(n)−B(1)がB(m)−B(m+1)以上でない場合には(ステップS185:否定)、ステップS182に戻る。判定部132は、差分A(n)−B(1)がB(m)−B(m+1)以上である場合には(ステップS185:肯定)、Bランクの因子B(m−1)までをAランクに組み入れて(ステップS186)、BA組み入れ処理を終了し、元の処理に戻る。これにより、Bランクの因子をAランクに組み入れることができる。
図15のABランク分類処理の説明に戻って、判定部132は、ステップS18のBA組み入れ処理が終了すると、ABランク分類処理を終了し、元の処理に戻る。
判定部132は、差分A(n)−B(1)が差分A(n−1)−A(n)以上でない場合には(ステップS14:否定)、差分A(n)−B(1)と差分B(1)−B(2)とを比較する。すなわち、判定部132は、AランクとBランクとの境界因子差分A(n)−B(1)、および、Bランクの先頭因子とひとつ下位の因子との差分B(1)−B(2)を比較する(ステップS19)。
判定部132は、比較の結果、差分A(n)−B(1)が差分B(1)−B(2)以上であるか否かを判定する(ステップS20)。判定部132は、差分A(n)−B(1)が差分B(1)−B(2)以上である場合には(ステップS20:肯定)、Aランクの最終因子A(n)はBランクに適していると判定する。また、判定部132は、入替後2次結果テーブル123のA(n)をAランクから外し、Bランクの先頭にずらして境界を移動する(ステップS21)。
判定部132は、境界の移動後に、入替後2次結果テーブル123のAランクの因子数値差分の標準偏差を算出する旨の算出指示を算出部131に出力する。算出部131は、判定部132から算出指示が入力されると、Aランクの因子数値差分の標準偏差を算出し、標準偏差テーブル124の入替後標準偏差のAランクに格納する(ステップS22)。算出部131は、Aランクの因子数値差分の標準偏差の算出が完了すると、判定部132に算出完了情報を出力する。判定部132は、算出部131から算出完了情報が入力されると、標準偏差テーブル124の入替後標準偏差のAランクを参照する。判定部132は、Aランクの入替後標準偏差が入替前標準偏差以下であるか否かを判定する(ステップS23)。
判定部132は、入替後標準偏差が入替前標準偏差以下である場合には(ステップS23:肯定)、入替結果は妥当であると判定し(ステップS24)、ステップS13に戻る。判定部132は、入替後標準偏差が入替前標準偏差以下でない場合には(ステップS23:否定)、入替結果を不適とし、境界を元に戻して(ステップS25)、ABランク分類処理を終了し、元の処理に戻る。
判定部132は、差分A(n)−B(1)が差分B(1)−B(2)以上でない場合には(ステップS20:否定)、BAまたはAB組み入れ処理を実行する(ステップS26)。
ここで、図17を用いてBAまたはAB組み入れ処理について説明する。図17は、BAまたはAB組み入れ処理の一例を示すフローチャートである。判定部132は、入替後2次結果テーブル123を参照して、Aランク最終因子のランク内連番をパラメータnにセットする(ステップS261)。
判定部132は、Aランク最終2因子の差分A(n−1)−A(n)と、Bランク先頭2因子の差分B(1)−B(2)とを比較する(ステップS262)。判定部132は、比較の結果、差分A(n−1)−A(n)が差分B(1)−B(2)以上であるか否かを判定する(ステップS263)。判定部132は、差分A(n−1)−A(n)が差分B(1)−B(2)以上である場合には(ステップS263:肯定)、差分A(n−1)−A(n)が差分B(1)−B(2)よりも大きいか否かを判定する(ステップS264)。判定部132は、差分A(n−1)−A(n)が差分B(1)−B(2)よりも大きくない、すなわち、等しい場合には(ステップS264:否定)、Aランクの最終因子A(n)はBランクに近いと判定する。また、判定部132は、入替後2次結果テーブル123のA(n)をAランクから外し、Bランクの先頭にずらして境界を移動して(ステップS265)、元の処理に戻る。
判定部132は、A(n−1)−A(n)が差分B(1)−B(2)よりも大きい場合には(ステップS264:肯定)、AB処理を実行する(ステップS266)。
ここで、図18を用いてAB処理について説明する。図18は、AB処理の一例を示すフローチャートである。判定部132は、因子A(n)のBランクへの組み込み前のAランクの標準偏差を算出する(ステップS2661)。判定部132は、算出した因子A(n)のBランクへの組み込み前のAランクの標準偏差を組み込み前標準偏差として記憶部120に一時的に記憶する。判定部132は、パラメータnをデクリメントして(ステップS2662)、nがゼロであるか否かを判定する(ステップS2663)。判定部132は、nがゼロである場合には(ステップS2663:肯定)、元の処理に戻る。
判定部132は、nがゼロでない場合には(ステップS2663:否定)、AランクとBランクとの境界因子差分A(n)−B(1)、および、Aランクの因子A(n−1)とA(n)との差分A(n−1)−A(n)を比較する(ステップS2664)。判定部132は、比較の結果、差分A(n)−B(1)が差分A(n−1)−A(n)以上であるか否かを判定する(ステップS2665)。判定部132は、差分A(n)−B(1)が差分A(n−1)−A(n)以上である場合には(ステップS2665:肯定)、Aランクの因子A(n+1)までをBランクに組み込んで(ステップS2666)、元の処理に戻る。
判定部132は、差分A(n)−B(1)が差分A(n−1)−A(n)以上でない場合には(ステップS2665:否定)、因子A(n)のBランクへの組み込み前のAランクの標準偏差を算出する(ステップS2667)。すなわち、判定部132は、nのデクリメント前のA(n)をBランクに組み込んだ後の標準偏差を算出する。判定部132は、算出したnのデクリメント前のA(n)をBランクに組み込んだ後の標準偏差を組み込み後標準偏差として記憶部120に一時的に記憶する。
判定部132は、記憶部120に一時的に記憶した組み込み前標準偏差と組み込み後標準偏差とを読み出して、組み込み前標準偏差が、組み込み後標準偏差以上であるか否かを判定する(ステップS2668)。判定部132は、組み込み前標準偏差が、組み込み後標準偏差以上である場合には(ステップS2668:肯定)、Aランクの因子A(n+1)をBランクに組み込み、新Aランクの標準偏差を算出し(ステップS2669)、ステップS2662に戻る。判定部132は、組み込み前標準偏差が、組み込み後標準偏差以上でない場合には(ステップS2668:否定)、因子A(n)のBランクへの組み込みは不適合と判定する(ステップS2670)。判定部132は、Aランクの因子A(n+1)までをBランクに組み込んで(ステップS2666)、元の処理に戻る。これにより、Aランクの因子をBランクに組み入れることができる。
図17のBAまたはAB組み入れ処理の説明に戻って、判定部132は、A(n−1)−A(n)が差分B(1)−B(2)以上でない場合には(ステップS263:否定)、BA処理を実行する(ステップS267)。
ここで、図19を用いてBA処理について説明する。図19は、BA処理の一例を示すフローチャートである。判定部132は、Bランクの因子の先頭+1から順に確認するための位置パラメータmに初期値「1」をセットする。また、判定部132は、入替後2次結果テーブル123を参照して、Bランク最終因子のランク内連番をパラメータpにセットする(ステップS2671)。判定部132は、因子B(m)のAランクへの組み込み前のAランクの標準偏差を算出する(ステップS2672)。判定部132は、算出した因子B(m)のAランクへの組み込み前のAランクの標準偏差を組み込み前標準偏差として記憶部120に一時的に記憶する。
判定部132は、パラメータmをインクリメントして(ステップS2673)、mがp以下であるか否かを判定する(ステップS2674)。判定部132は、mがp以下でない場合には(ステップS2674:否定)、元の処理に戻る。判定部132は、mがp以下である場合には(ステップS2674:肯定)、AランクとBランクとの境界因子差分A(n)−B(1)、および、Bランクの因子B(m)とB(m+1)との差分B(m)−B(m+1)を比較する(ステップS2675)。判定部132は、比較の結果、差分A(n)−B(1)が差分B(m)−B(m+1)以上であるか否かを判定する(ステップS2676)。判定部132は、差分A(n)−B(1)が差分B(m)−B(m+1)以上である場合には(ステップS2676:肯定)、Bランクの因子B(m−1)までをAランクに組み込んで(ステップS2677)、元の処理に戻る。
判定部132は、差分A(n)−B(1)が差分B(m)−B(m+1)以上でない場合には(ステップS2676:否定)、因子B(m)のAランクへの組み込み前のAランクの標準偏差を算出する(ステップS2678)。すなわち、判定部132は、mのインクリメント前のB(m)をAランクに組み込んだ後の標準偏差を算出する。判定部132は、算出したmのインクリメント前のB(m)をAランクに組み込んだ後の標準偏差を組み込み後標準偏差として記憶部120に一時的に記憶する。
判定部132は、記憶部120に一時的に記憶した組み込み前標準偏差と組み込み後標準偏差とを読み出して、組み込み前標準偏差が、組み込み後標準偏差以上であるか否かを判定する(ステップS2679)。判定部132は、組み込み前標準偏差が、組み込み後標準偏差以上である場合には(ステップS2679:肯定)、Bランクの因子B(m−1)をAランクに組み込み、新Aランクの標準偏差を算出し(ステップS2680)、ステップS2673に戻る。
判定部132は、組み込み前標準偏差が、組み込み後標準偏差以上でない場合には(ステップS2679:否定)、因子B(m)のAランクへの組み込みは不適合と判定する(ステップS2681)。判定部132は、Bランクの因子B(m−1)までをAランクに組み込んで(ステップS2677)、元の処理に戻る。これにより、Bランクの因子をAランクに組み入れることができる。
図17のBAまたはAB組み入れ処理の説明に戻って、判定部132は、ステップS265、S266またはS267の処理が終了すると、BAまたはAB組み入れ処理を終了し、元の処理に戻る。これにより、Bランクの因子をAランクに、または、Aランクの因子をBランクに組み入れることができる。
図15のABランク分類処理の説明に戻って、判定部132は、ステップS26のBAまたはAB組み入れ処理が終了すると、ABランク分類処理を終了し、元の処理に戻る。これにより、AランクとBランクとの間で各因子を分類できる。
図14のグループ分け処理に戻って、判定部132は、ステップS3のABランク分類処理が終了すると、BCランク分類処理を実行する(ステップS4)。BCランク分類処理は、図15から図19を用いて説明したABランク分類処理について、AランクおよびBランクを、それぞれBランクおよびCランクに読み替えたものであるので、その説明は省略する。なお、BCランク分類処理により、BランクとCランクとの間で各因子を分類できる。
判定部132は、ABランク分類処理およびBCランク分類処理が終了すると、判定完了情報を分類部133に出力する。分類部133は、判定部132から判定完了情報が入力されると、入替後2次結果テーブル123の内容を3次結果テーブル125にコピーして記憶する。分類部133は、3次結果テーブル125を参照し、サブランク付加処理を実行する(ステップS5)。
ここで、図20から図22を用いてサブランク付加処理について説明する。図20から図22は、サブランク付加処理の一例を示すフローチャートである。分類部133は、パラメータqに「0」をセットし、パラメータrにAランクの最終因子のランク内連番をセットする(ステップS51)。分類部133は、qをインクリメントし(ステップS52)、qとrとが等しいか否かを判定する(ステップS53)。分類部133は、qとrとが等しくない場合には(ステップS53:否定)、Aランクのq番目の因子A(q)の因子数値差分と、標準偏差テーブル124の入替後標準偏差のAランクとを比較する(ステップS54)。
分類部133は、比較の結果、因子A(q)の因子数値差分が入替後標準偏差のAランクの値よりも小さいか否かを判定する(ステップS55)。分類部133は、因子A(q)の因子数値差分が入替後標準偏差のAランクの値よりも小さい場合には(ステップS55:肯定)、因子A(q)と因子A(q+1)とを同一のサブランクとし(ステップS56)、ステップS52に戻る。分類部133は、因子A(q)の因子数値差分が入替後標準偏差のAランクの値以上の場合には(ステップS55:否定)、因子A(q)と因子A(q+1)とを同一のサブランクとせずに(ステップS57)、ステップS52に戻る。
分類部133は、qとrとが等しい場合には(ステップS53:肯定)、パラメータsに「0」をセットし、パラメータtにBランクの最終因子のランク内連番をセットする(ステップS58)。分類部133は、sをインクリメントし(ステップS59)、sとtとが等しいか否かを判定する(ステップS60)。分類部133は、sとtとが等しくない場合には(ステップS60:否定)、Bランクのs番目の因子B(s)の因子数値差分と、標準偏差テーブル124の入替後標準偏差のBランクとを比較する(ステップS61)。
分類部133は、比較の結果、因子B(s)の因子数値差分が入替後標準偏差のBランクの値よりも小さいか否かを判定する(ステップS62)。分類部133は、因子B(s)の因子数値差分が入替後標準偏差のBランクの値よりも小さい場合には(ステップS62:肯定)、因子B(s)と因子B(s+1)とを同一のサブランクとし(ステップS63)、ステップS59に戻る。分類部133は、因子B(s)の因子数値差分が入替後標準偏差のBランクの値以上の場合には(ステップS62:否定)、因子B(s)と因子B(s+1)とを同一のサブランクとせずに(ステップS64)、ステップS59に戻る。
分類部133は、sとtとが等しい場合には(ステップS60:肯定)、パラメータuに「0」をセットし、パラメータvにCランクの最終因子のランク内連番をセットする(ステップS65)。分類部133は、uをインクリメントし(ステップS66)、uとvとが等しいか否かを判定する(ステップS67)。分類部133は、uとvとが等しくない場合には(ステップS67:否定)、Cランクのu番目の因子C(u)の因子数値差分と、標準偏差テーブル124の入替後標準偏差のCランクとを比較する(ステップS68)。
分類部133は、比較の結果、因子C(u)の因子数値差分が入替後標準偏差のCランクの値よりも小さいか否かを判定する(ステップS69)。分類部133は、因子C(u)の因子数値差分が入替後標準偏差のCランクの値よりも小さい場合には(ステップS69:肯定)、因子C(u)と因子C(u+1)とを同一のサブランクとし(ステップS70)、ステップS66に戻る。分類部133は、因子C(u)の因子数値差分が入替後標準偏差のCランクの値以上の場合には(ステップS69:否定)、因子C(u)と因子C(u+1)とを同一のサブランクとせずに(ステップS71)、ステップS66に戻る。
分類部133は、uとvとが等しい場合には(ステップS67:肯定)、A〜Cの各ランク内の付加したサブランクを3次結果テーブル125に記憶して、サブランク付加処理を終了し、元の処理に戻る。これにより、分類部133は、A〜Cの各ランク内の因子について、さらにサブグループに分類することができる。
図14のグループ分け処理に戻って、分類部133は、サブランク付加処理を終了すると、3次結果テーブル125を参照し、3次結果テーブルを表示する表示画面を生成する。分類部133は、生成した3次結果テーブルを表示する表示画面を表示部112に表示させる(ステップS6)。これにより、情報処理装置100は、A〜Cの各ランク内の因子のバラツキを抑制できる。すなわち、情報処理装置100は、グループ内の要素のバラツキを抑制できる。
このように、情報処理装置100は、複数の要素それぞれについての属性値に基づき、複数の要素を複数のグループに分類する際、複数のグループのうち、少なくとも1つのグループに分類される要素についての属性値のバラツキを示す指標値が、該グループに分類される要素のうち、属性値が最大及び/又は最小の要素以外の要素についての属性値のバラツキを示す指標値よりも小さくなるように制御する。その結果、グループ内の要素のバラツキを抑制できる。
また、情報処理装置100は、複数の要素それぞれの属性値に基づき、複数の要素を複数のグループに分類する際、第1のグループに含める要素候補についての属性値のバラツキを示す指標値が、該要素候補から属性値が最小の要素候補を除いた要素候補についての属性値のバラツキを示す指標値よりも小さい場合、属性値が最小の要素候補を第2のグループに分類する。その結果、グループ内の要素のバラツキを抑制できる。
また、情報処理装置100は、複数の要素について、複数の要素それぞれの属性値が最大の要素から順に並べて複数のグループに分類するとともに、各要素の属性値間の差分を算出する。また、情報処理装置100は、複数のグループのうち、第1のグループと、第1のグループと隣接する第2のグループとの境界を、差分に基づいて移動するか否かを判定する。また、情報処理装置100は、判定の結果に基づいて、各要素を、それぞれのグループに分類する。その結果、グループ内の要素のバラツキを抑制できる。
また、情報処理装置100は、境界に接する第1のグループの要素の属性値と、境界に接する第2のグループの要素の属性値との差分を基準の差分とし、基準の差分と、基準の差分の前の差分および後の差分とを比較して、前の差分または後の差分が基準の差分よりも大きい場合に、基準の差分よりも大きい前の差分または後の差分側に境界を移動する判定を行う。その結果、グループの境界の要素を、グループ内の要素のバラツキを抑制できる側のグループに組み込むことができる。なお、前の差分は、境界に接する第1のグループの要素の属性値と、境界に接する第1のグループの要素の隣の第1のグループの要素の属性値との差分である。また、後ろの差分は、境界に接する第2のグループの要素の属性値と、境界に接する第2のグループの要素の隣の第2のグループの要素の属性値との差分である。
また、情報処理装置100は、前の差分と、後の差分とが等しい場合には、境界に接する第1のグループの要素を、第2のグループに分類するように、境界を移動する判定を行う。その結果、第1のグループ内の要素のバラツキを抑制できる。
また、情報処理装置100は、境界の移動前後の複数のグループごとに差分のバラツキを示す指標値を算出する。また、情報処理装置100は、境界の移動後の差分のバラツキを示す指標値が、境界の移動前の差分のバラツキを示す指標値よりも小さい場合に、境界を移動する判定を行う。その結果、差分のバラツキを示す指標値が小さくなる側のグループについて、グループ内の要素のバラツキを抑制できる。
また、情報処理装置100では、差分のバラツキを示す指標値は、複数のグループごとの差分の標準偏差である。その結果、グループごとの標準偏差に基づいて、グループ内の要素のバラツキを抑制できる。
また、情報処理装置100は、さらに、複数のグループごとに、差分と、標準偏差とを比較して、差分が標準偏差よりも小さい場合に、比較対象の差分を求めた各要素を、同一のサブグループに分類する。その結果、各グループ内の要素を、さらにサブグループに分類することができる。
なお、上記実施例では、因子数値差分の標準偏差を、バラツキを示す指標値として用いたが、これに限定されない。例えば、因子数値の標準偏差を、バラツキを示す指標値として用いてもよい。また、バラツキを示す指標値は、標準偏差だけでなく、平均値、中央値等の他の統計に用いる値でもよい。
また、上記実施例では、ランクの1段階下にサブランクを設けたが、これに限定されない。例えば、サブランクの下にさらに下位階層のランクを設けてもよい。
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、算出部131と判定部132とを統合してもよい。また、図示した各処理は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲において、同時に実施してもよく、順序を入れ替えて実施してもよい。
さらに、各装置で行われる各種処理機能は、CPU(またはMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、CPU(またはMPU、MCU等のマイクロ・コンピュータ)で解析実行されるプログラム上、またはワイヤードロジックによるハードウェア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。
ところで、上記の実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図23は、グループ分け処理プログラムを実行するコンピュータの一例を示す図である。
図23に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、データ入力を受け付ける入力装置202と、モニタ203とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読み取る媒体読取装置204と、各種装置と接続するためのインタフェース装置205と、他の情報処理装置等と有線または無線により接続するための通信装置206とを有する。また、コンピュータ200は、各種情報を一時記憶するRAM207と、ハードディスク装置208とを有する。また、各装置201〜208は、バス209に接続される。
ハードディスク装置208には、図1に示した算出部131、判定部132および分類部133の各処理部と同様の機能を有するグループ分け処理プログラムが記憶される。また、ハードディスク装置208には、一次結果テーブル121、2次結果テーブル122、入替後2次結果テーブル123、標準偏差テーブル124、3次結果テーブル125、および、グループ分け処理プログラムを実現するための各種データが記憶される。入力装置202は、例えば、コンピュータ200の管理者から、分析対象データ、管理情報等の各種情報の入力を受け付ける。モニタ203は、例えば、コンピュータ200の管理者に対して3次結果テーブル等の画面、管理情報の画面等の各種画面を表示する。インタフェース装置205は、例えば、印刷装置等が接続される。通信装置206は、例えば、図1に示した入力部111の一例である通信部と同様の機能を有し、図示しないネットワークと接続され、他の情報処理装置から分析対象データを受信するとともに各種情報をやりとりする。
CPU201は、ハードディスク装置208に記憶された各プログラムを読み出して、RAM207に展開して実行することで、各種の処理を行う。また、これらのプログラムは、コンピュータ200を図1に示した算出部131、判定部132および分類部133として機能させることができる。
なお、上記のグループ分け処理プログラムは、必ずしもハードディスク装置208に記憶されている必要はない。例えば、コンピュータ200が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ200が読み出して実行するようにしてもよい。コンピュータ200が読み取り可能な記憶媒体は、例えば、CD−ROMやDVDディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN等に接続された装置にこのグループ分け処理プログラムを記憶させておき、コンピュータ200がこれらからグループ分け処理プログラムを読み出して実行するようにしてもよい。
以上、本実施例を含む実施の形態に関し、さらに以下の付記を開示する。
(付記1)複数の要素それぞれについての属性値に基づき、前記複数の要素を複数のグループに分類する際、前記複数のグループのうち、少なくとも1つのグループに分類される要素についての属性値のバラツキを示す指標値が、該グループに分類される要素のうち、属性値が最大及び/又は最小の要素以外の要素についての属性値のバラツキを示す指標値よりも小さくなるように制御する、
処理をコンピュータが実行することを特徴とするグループ分け処理方法。
(付記2)複数の要素それぞれの属性値に基づき、前記複数の要素を複数のグループに分類する際、第1のグループに含める要素候補についての属性値のバラツキを示す指標値が、該要素候補から属性値が最小の要素候補を除いた要素候補についての属性値のバラツキを示す指標値よりも小さい場合、前記属性値が最小の要素候補を第2のグループに分類する、
処理をコンピュータが実行することを特徴とするグループ分け処理方法。
(付記3)複数の要素について、前記複数の要素それぞれの属性値が最大の前記要素から順に並べて複数のグループに分類するとともに、前記各要素の属性値間の差分を算出し、
前記複数のグループのうち、第1のグループと、前記第1のグループと隣接する第2のグループとの境界を、前記差分に基づいて移動するか否かを判定し、
前記判定の結果に基づいて、前記各要素を、それぞれの前記グループに分類する、
処理をコンピュータが実行することを特徴とするグループ分け処理方法。
(付記4)前記判定する処理は、前記境界に接する前記第1のグループの前記要素の属性値と、前記境界に接する前記第2のグループの前記要素の属性値との差分を基準の差分とし、前記基準の差分と、前記基準の差分の前の差分および後の差分とを比較して、前記前の差分または前記後の差分が前記基準の差分よりも大きい場合に、前記基準の差分よりも大きい前記前の差分または前記後の差分側に前記境界を移動する判定を行う、
ことを特徴とする付記3に記載のグループ分け処理方法。
(付記5)前記判定する処理は、前記前の差分と、前記後の差分とが等しい場合には、前記境界に接する前記第1のグループの前記要素を、前記第2のグループに分類するように、前記境界を移動する判定を行う、
ことを特徴とする付記4に記載のグループ分け処理方法。
(付記6)前記算出する処理は、前記境界の移動前後の前記複数のグループごとに前記差分のバラツキを示す指標値を算出し、
前記判定する処理は、前記境界の移動後の前記差分のバラツキを示す指標値が、前記境界の移動前の前記差分のバラツキを示す指標値よりも小さい場合に、前記境界を移動する判定を行う、
ことを特徴とする付記3に記載のグループ分け処理方法。
(付記7)前記差分のバラツキを示す指標値は、前記複数のグループごとの前記差分の標準偏差であることを特徴とする付記6に記載のグループ分け処理方法。
(付記8)前記分類する処理は、さらに、前記複数のグループごとに、前記差分と、前記標準偏差とを比較して、前記差分が前記標準偏差よりも小さい場合に、比較対象の前記差分を求めた前記各要素を、同一のサブグループに分類する、
ことを特徴とする付記7に記載のグループ分け処理方法。
(付記9)複数の要素それぞれについての属性値に基づき、前記複数の要素を複数のグループに分類する際、前記複数のグループのうち、少なくとも1つのグループに分類される要素についての属性値のバラツキを示す指標値が、該グループに分類される要素のうち、属性値が最大及び/又は最小の要素以外の要素についての属性値のバラツキを示す指標値よりも小さくなるように制御する、
処理をコンピュータに実行させることを特徴とするグループ分け処理プログラム。
(付記10)複数の要素それぞれの属性値に基づき、前記複数の要素を複数のグループに分類する際、第1のグループに含める要素候補についての属性値のバラツキを示す指標値が、該要素候補から属性値が最小の要素候補を除いた要素候補についての属性値のバラツキを示す指標値よりも小さい場合、前記属性値が最小の要素候補を第2のグループに分類する、
処理をコンピュータに実行させることを特徴とするグループ分け処理プログラム。
(付記11)複数の要素について、前記複数の要素それぞれの属性値が最大の前記要素から順に並べて複数のグループに分類するとともに、前記各要素の属性値間の差分を算出し、
前記複数のグループのうち、第1のグループと、前記第1のグループと隣接する第2のグループとの境界を、前記差分に基づいて移動するか否かを判定し、
前記判定の結果に基づいて、前記各要素を、それぞれの前記グループに分類する、
処理をコンピュータに実行させることを特徴とするグループ分け処理プログラム。
(付記12)前記判定する処理は、前記境界に接する前記第1のグループの前記要素の属性値と、前記境界に接する前記第2のグループの前記要素の属性値との差分を基準の差分とし、前記基準の差分と、前記基準の差分の前の差分および後の差分とを比較して、前記前の差分または前記後の差分が前記基準の差分よりも大きい場合に、前記基準の差分よりも大きい前記前の差分または前記後の差分側に前記境界を移動する判定を行う、
ことを特徴とする付記11に記載のグループ分け処理プログラム。
(付記13)前記判定する処理は、前記前の差分と、前記後の差分とが等しい場合には、前記境界に接する前記第1のグループの前記要素を、前記第2のグループに分類するように、前記境界を移動する判定を行う、
ことを特徴とする付記12に記載のグループ分け処理プログラム。
(付記14)前記算出する処理は、前記境界の移動前後の前記複数のグループごとに前記差分のバラツキを示す指標値を算出し、
前記判定する処理は、前記境界の移動後の前記差分のバラツキを示す指標値が、前記境界の移動前の前記差分のバラツキを示す指標値よりも小さい場合に、前記境界を移動する判定を行う、
ことを特徴とする付記11に記載のグループ分け処理プログラム。
(付記15)前記差分のバラツキを示す指標値は、前記複数のグループごとの前記差分の標準偏差であることを特徴とする付記14に記載のグループ分け処理プログラム。
(付記16)前記分類する処理は、さらに、前記複数のグループごとに、前記差分と、前記標準偏差とを比較して、前記差分が前記標準偏差よりも小さい場合に、比較対象の前記差分を求めた前記各要素を、同一のサブグループに分類する、
ことを特徴とする付記15に記載のグループ分け処理プログラム。
(付記17)複数の要素それぞれについての属性値に基づき、前記複数の要素を複数のグループに分類する際、前記複数のグループのうち、少なくとも1つのグループに分類される要素についての属性値のバラツキを示す指標値が、該グループに分類される要素のうち、属性値が最大及び/又は最小の要素以外の要素についての属性値のバラツキを示す指標値よりも小さくなるように制御する制御部、
を有することを特徴とする情報処理装置。
(付記18)複数の要素それぞれの属性値に基づき、前記複数の要素を複数のグループに分類する際、第1のグループに含める要素候補についての属性値のバラツキを示す指標値が、該要素候補から属性値が最小の要素候補を除いた要素候補についての属性値のバラツキを示す指標値よりも小さい場合、前記属性値が最小の要素候補を第2のグループに分類する分類部、
を有することを特徴とする情報処理装置。
(付記19)複数の要素について、前記複数の要素それぞれの属性値が最大の前記要素から順に並べて複数のグループに分類するとともに、前記各要素の属性値間の差分を算出する算出部と、
前記複数のグループのうち、第1のグループと、前記第1のグループと隣接する第2のグループとの境界を、前記差分に基づいて移動するか否かを判定する判定部と、
前記判定の結果に基づいて、前記各要素を、それぞれの前記グループに分類する分類部と、
を有することを特徴とする情報処理装置。
(付記20)前記判定部は、前記境界に接する前記第1のグループの前記要素の属性値と、前記境界に接する前記第2のグループの前記要素の属性値との差分を基準の差分とし、前記基準の差分と、前記基準の差分の前の差分および後の差分とを比較して、前記前の差分または前記後の差分が前記基準の差分よりも大きい場合に、前記基準の差分よりも大きい前記前の差分または前記後の差分側に前記境界を移動する判定を行う、
ことを特徴とする付記19に記載の情報処理装置。
(付記21)前記判定部は、前記前の差分と、前記後の差分とが等しい場合には、前記境界に接する前記第1のグループの前記要素を、前記第2のグループに分類するように、前記境界を移動する判定を行う、
ことを特徴とする付記20に記載の情報処理装置。
(付記22)前記算出部は、前記境界の移動前後の前記複数のグループごとに前記差分のバラツキを示す指標値を算出し、
前記判定部は、前記境界の移動後の前記差分のバラツキを示す指標値が、前記境界の移動前の前記差分のバラツキを示す指標値よりも小さい場合に、前記境界を移動する判定を行う、
ことを特徴とする付記19に記載の情報処理装置。
(付記23)前記差分のバラツキを示す指標値は、前記複数のグループごとの前記差分の標準偏差であることを特徴とする付記22に記載の情報処理装置。
(付記24)前記分類部は、さらに、前記複数のグループごとに、前記差分と、前記標準偏差とを比較して、前記差分が前記標準偏差よりも小さい場合に、比較対象の前記差分を求めた前記各要素を、同一のサブグループに分類する、
ことを特徴とする付記23に記載の情報処理装置。