(57)【特許請求の範囲】
【請求項１】
Ｍを撹乱対象となるデータである元データの属性の数、Ａｊをｊ番目の属性（ただし、ｊは１≦ｊ≦Ｍなる整数）とし、
属性Ａｊに対する撹乱は、属性Ａｊがカテゴリ属性である場合は維持確率をρｊとする維持置換撹乱、属性Ａｊが数値属性（その値域を[ａｊ，ｂｊ] （ただし、ａｊ，ｂｊはａｊ≦ｂｊを満たす実数）とする）である場合は有界ラプラス分布のパラメータをφｊとする有界ラプラスノイズ加算を前記値域[ａｊ，ｂｊ]の分割Ｉ１＝［ｔ０，ｔ１］、Ｉ２＝［ｔ１，ｔ２］、…、ＩＫｊ＝［ｔＫｊ−１，ｔＫｊ］（ただし、ｔ０（＝ａｊ）＜ｔ１＜…＜ｔＫｊ（＝ｂｊ）、以下、ｔ０、ｔ１、…、ｔＫｊを分点という）を用いて量子化した量子化有界ラプラスノイズ加算であるとし、
｜Ａ｜を｜Ａ｜＝｜Ａ１｜×…×｜ＡＭ｜（ただし、属性Ａｊが数値属性の場合は｜Ａｊ｜＝Ｋｊ）なる整数、ｘｉ（１≦ｉ≦｜Ａ｜）を元データのｉ番目の属性値の組み合わせ、Ｎを元データのサンプルデータ数、ＨＸ（ｘｉ）を前記サンプルデータに出現するｘｉの度数とし、
前記サンプルデータ数Ｎ、前記度数ＨＸ（ｘｉ）から元データと再構築元データの誤差を推定する撹乱データ再構築誤差推定装置であって、
属性Ａｊがカテゴリ属性である場合は前記維持確率ρｊと前記｜Ａｊ｜を用いて算出される属性値ｖが属性値ｖ’に変わる条件付き確率ＰＹ｜ＸＡｊ（ｖ’｜ｖ）、属性Ａｊが数値属性である場合は前記パラメータφｊと前記値域[ａｊ，ｂｊ]と前記分点ｔ１、…、ｔＫｊ−１を用いて算出される部分区間Ｉｋが部分区間Ｉｋ’に変わる条件付き確率ＰＹ｜ＸＡｊ（Ｉｋ’｜Ｉｋ）（１≦ｋ，ｋ’≦｜Ｋｊ｜）を用いて、遷移確率行列Ｐｊを計算する遷移確率行列計算部と、
前記サンプルデータ数Ｎ、前記度数ＨＸ（ｘｉ）（１≦ｉ≦｜Ａ｜）、前記遷移確率行列Ｐｊ（１≦ｊ≦Ｍ）を用いて、ｘｍの分散（１≦ｍ，ｎ≦｜Ａ｜、ｍ＝ｎ）またはｘｍとｘｎの共分散（１≦ｍ，ｎ≦｜Ａ｜、ｍ≠ｎ）を前記誤差として計算する誤差計算部と
を含む撹乱データ再構築誤差推定装置。
【請求項２】
請求項１に記載の撹乱データ再構築誤差推定装置であって、
ｙｋ（１≦ｋ≦｜Ａ｜）を撹乱データのｋ番目の属性値の組み合わせとし、
前記誤差計算部は、
前記サンプルデータ数Ｎ、前記度数ＨＸ（ｘｉ）（１≦ｉ≦｜Ａ｜）、前記遷移確率行列Ｐｊ（１≦ｊ≦Ｍ）を用いて、撹乱データの確率密度関数ＰＹ（ｙｋ）（１≦ｋ≦｜Ａ｜）を計算する撹乱データ確率密度関数計算部と、
前記遷移確率行列Ｐｊ（１≦ｊ≦Ｍ）、前記確率密度関数ＰＹ（ｙｋ）（１≦ｋ≦｜Ａ｜）、前記サンプルデータ数Ｎを用いてフィッシャー情報行列Ｉを計算するフィッシャー情報行列計算部と、
前記フィッシャー情報行列Ｉの逆行列を分散共分散行列Ｖとして計算する分散共分散行列計算部と、
前記分散共分散行列Ｖのｍ行ｎ列の要素Ｖｍｎ（１≦ｍ，ｎ≦｜Ａ｜）を前記ｘｍの分散（１≦ｍ，ｎ≦｜Ａ｜、ｍ＝ｎ）または前記ｘｍとｘｎの共分散（１≦ｍ，ｎ≦｜Ａ｜、ｍ≠ｎ）として出力する出力結果生成部と
を含む撹乱データ再構築誤差推定装置。
【請求項３】
請求項１に記載の撹乱データ再構築誤差推定装置であって、
ｙｋ（１≦ｋ≦｜Ａ｜）を撹乱データのｋ番目の属性値の組み合わせとし、
前記誤差計算部は、
前記サンプルデータ数Ｎ、前記度数ＨＸ（ｘｉ）（１≦ｉ≦｜Ａ｜）、前記遷移確率行列Ｐｊ（１≦ｊ≦Ｍ）を用いて、撹乱データの確率密度関数ＰＹ（ｙｋ）（１≦ｋ≦｜Ａ｜）を計算する撹乱データ確率密度関数計算部と、
前記遷移確率行列Ｐｊ（１≦ｊ≦Ｍ）の逆行列Ｐｊ−１を計算する遷移確率行列逆行列計算部と、
前記確率密度関数ＰＹ（ｙｋ）（１≦ｋ≦｜Ａ｜）と前記逆行列Ｐｊ−１（１≦ｊ≦Ｍ）を用いて、前記ｘｍの分散（１≦ｍ，ｎ≦｜Ａ｜、ｍ＝ｎ）または前記ｘｍとｘｎの共分散（１≦ｍ，ｎ≦｜Ａ｜、ｍ≠ｎ）を計算する分散共分散計算部と
を含む撹乱データ再構築誤差推定装置。
【請求項４】
Ｍを撹乱対象となるデータである元データの属性の数、Ａｊをｊ番目の属性（ただし、ｊは１≦ｊ≦Ｍなる整数）とし、
属性Ａｊに対する撹乱は、属性Ａｊがカテゴリ属性である場合は維持確率をρｊとする維持置換撹乱、属性Ａｊが数値属性（その値域を[ａｊ，ｂｊ] （ただし、ａｊ，ｂｊはａｊ≦ｂｊを満たす実数）とする）である場合は有界ラプラス分布のパラメータをφｊとする有界ラプラスノイズ加算を前記値域[ａｊ，ｂｊ]の分割Ｉ１＝［ｔ０，ｔ１］、Ｉ２＝［ｔ１，ｔ２］、…、ＩＫｊ＝［ｔＫｊ−１，ｔＫｊ］（ただし、ｔ０（＝ａｊ）＜ｔ１＜…＜ｔＫｊ（＝ｂｊ）、以下、ｔ０、ｔ１、…、ｔＫｊを分点という）を用いて量子化した量子化有界ラプラスノイズ加算であるとし、
｜Ａ｜を｜Ａ｜＝｜Ａ１｜×…×｜ＡＭ｜（ただし、属性Ａｊが数値属性の場合は｜Ａｊ｜＝Ｋｊ）なる整数、ｙｋ（１≦ｋ≦｜Ａ｜）を撹乱データのｋ番目の属性値の組み合わせ、Ｎを元データのサンプルデータ数、ＨＹ（ｙｋ）を前記サンプルデータを撹乱した撹乱データに出現するｙｋの度数とし、
前記サンプルデータ数Ｎ、前記度数ＨＹ（ｙｋ）から元データと再構築元データの誤差を推定する撹乱データ再構築誤差推定装置であって、
属性Ａｊがカテゴリ属性である場合は前記維持確率ρｊと前記｜Ａｊ｜を用いて算出される属性値ｖが属性値ｖ’に変わる条件付き確率ＰＹ｜ＸＡｊ（ｖ’｜ｖ）、属性Ａｊが数値属性である場合は前記パラメータφｊと前記値域[ａｊ，ｂｊ]と前記分点ｔ１、…、ｔＫｊ−１を用いて算出される部分区間Ｉｋが部分区間Ｉｋ’に変わる条件付き確率ＰＹ｜ＸＡｊ（Ｉｋ’｜Ｉｋ）（１≦ｋ，ｋ’≦｜Ｋｊ｜）を用いて、遷移確率行列Ｐｊを計算する遷移確率行列計算部と、
前記サンプルデータ数Ｎ、前記度数ＨＹ（ｙｋ）（１≦ｋ≦｜Ａ｜）、前記遷移確率行列Ｐｊ（１≦ｊ≦Ｍ）を用いて、ｘｍの分散（１≦ｍ，ｎ≦｜Ａ｜、ｍ＝ｎ）またはｘｍとｘｎの共分散（１≦ｍ，ｎ≦｜Ａ｜、ｍ≠ｎ）を前記誤差として計算する誤差計算部と
を含む撹乱データ再構築誤差推定装置。
【請求項５】
請求項４に記載の撹乱データ再構築誤差推定装置であって、
前記誤差計算部は、
前記サンプルデータ数Ｎ、前記度数ＨＹ（ｙｋ）（１≦ｋ≦｜Ａ｜）を用いて、撹乱データの確率密度関数ＰＹ（ｙｋ）（１≦ｋ≦｜Ａ｜）を計算する撹乱データ確率密度関数計算部と、
前記遷移確率行列Ｐｊ（１≦ｊ≦Ｍ）、前記確率密度関数ＰＹ（ｙｋ）（１≦ｋ≦｜Ａ｜）、前記サンプルデータ数Ｎを用いてフィッシャー情報行列Ｉを計算するフィッシャー情報行列計算部と、
前記フィッシャー情報行列Ｉの逆行列を分散共分散行列Ｖとして計算する分散共分散行列計算部と、
前記分散共分散行列Ｖのｍ行ｎ列の要素Ｖｍｎ（１≦ｍ，ｎ≦｜Ａ｜）を前記ｘｍの分散（１≦ｍ，ｎ≦｜Ａ｜、ｍ＝ｎ）または前記ｘｍとｘｎの共分散（１≦ｍ，ｎ≦｜Ａ｜、ｍ≠ｎ）として出力する出力結果生成部と
を含む撹乱データ再構築誤差推定装置。
【請求項６】
請求項４に記載の撹乱データ再構築誤差推定装置であって、
前記誤差計算部は、
前記サンプルデータ数Ｎ、前記度数ＨＹ（ｙｋ）（１≦ｋ≦｜Ａ｜）を用いて、撹乱データの確率密度関数ＰＹ（ｙｋ）（１≦ｋ≦｜Ａ｜）を計算する撹乱データ確率密度関数計算部と、
前記遷移確率行列Ｐｊ（１≦ｊ≦Ｍ）の逆行列Ｐｊ−１を計算する遷移確率行列逆行列計算部と、
前記確率密度関数ＰＹ（ｙｋ）（１≦ｋ≦｜Ａ｜）と前記逆行列Ｐｊ−１（１≦ｊ≦Ｍ）を用いて、前記ｘｍの分散（１≦ｍ，ｎ≦｜Ａ｜、ｍ＝ｎ）または前記ｘｍとｘｎの共分散（１≦ｍ，ｎ≦｜Ａ｜、ｍ≠ｎ）を計算する分散共分散計算部と
を含む撹乱データ再構築誤差推定装置。
【請求項７】
Ｍを撹乱対象となるデータである元データの属性の数、Ａｊをｊ番目の属性（ただし、ｊは１≦ｊ≦Ｍなる整数）とし、
属性Ａｊに対する撹乱は、属性Ａｊがカテゴリ属性である場合は維持確率をρｊとする維持置換撹乱、属性Ａｊが数値属性（その値域を[ａｊ，ｂｊ] （ただし、ａｊ，ｂｊはａｊ≦ｂｊを満たす実数）とする）である場合は有界ラプラス分布のパラメータをφｊとする有界ラプラスノイズ加算を前記値域[ａｊ，ｂｊ]の分割Ｉ１＝［ｔ０，ｔ１］、Ｉ２＝［ｔ１，ｔ２］、…、ＩＫｊ＝［ｔＫｊ−１，ｔＫｊ］（ただし、ｔ０（＝ａｊ）＜ｔ１＜…＜ｔＫｊ（＝ｂｊ）、以下、ｔ０、ｔ１、…、ｔＫｊを分点という）を用いて量子化した量子化有界ラプラスノイズ加算であるとし、
｜Ａ｜を｜Ａ｜＝｜Ａ１｜×…×｜ＡＭ｜（ただし、属性Ａｊが数値属性の場合は｜Ａｊ｜＝Ｋｊ）なる整数、ｘｉ（１≦ｉ≦｜Ａ｜）を元データのｉ番目の属性値の組み合わせ、Ｎを元データのサンプルデータ数、ＨＸ（ｘｉ）を前記サンプルデータに出現するｘｉの度数とし、
撹乱データ再構築誤差推定装置が、前記サンプルデータ数Ｎ、前記度数ＨＸ（ｘｉ）から元データと再構築元データの誤差を推定する撹乱データ再構築誤差推定方法であって、
前記撹乱データ再構築誤差推定装置が、属性Ａｊがカテゴリ属性である場合は前記維持確率ρｊと前記｜Ａｊ｜を用いて算出される属性値ｖが属性値ｖ’に変わる条件付き確率ＰＹ｜ＸＡｊ（ｖ’｜ｖ）、属性Ａｊが数値属性である場合は前記パラメータφｊと前記値域[ａｊ，ｂｊ]と前記分点ｔ１、…、ｔＫｊ−１を用いて算出される部分区間Ｉｋが部分区間Ｉｋ’に変わる条件付き確率ＰＹ｜ＸＡｊ（Ｉｋ’｜Ｉｋ）（１≦ｋ，ｋ’≦｜Ｋｊ｜）を用いて、遷移確率行列Ｐｊを計算する遷移確率行列計算ステップと、
前記撹乱データ再構築誤差推定装置が、前記サンプルデータ数Ｎ、前記度数ＨＸ（ｘｉ）（１≦ｉ≦｜Ａ｜）、前記遷移確率行列Ｐｊ（１≦ｊ≦Ｍ）を用いて、ｘｍの分散（１≦ｍ，ｎ≦｜Ａ｜、ｍ＝ｎ）またはｘｍとｘｎの共分散（１≦ｍ，ｎ≦｜Ａ｜、ｍ≠ｎ）を前記誤差として計算する誤差計算ステップと
を実行する撹乱データ再構築誤差推定方法。
【請求項８】
請求項１ないし６のいずれか１項に記載の撹乱データ再構築誤差推定装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースにおける個別データを確率的手法により秘匿化したデータから個別データの統計値を推定する技術に関し、特に個別データと撹乱後再構築した個別データの誤差を推定するものに関する。
【背景技術】
【０００２】
データベース中の元データを確率的手法により秘匿化することを撹乱という。また、秘匿化したデータ（以下、撹乱データという）から元データの統計値（以下、再構築データという）を推定することを再構築という。つまり、撹乱とは撹乱データからなる秘匿データベースを作成することであり、再構築とはこの秘匿データベースに対し統計分析を行い、再構築データを得ることである。
【０００３】
このような撹乱・再構築の技術として、維持置換撹乱（非特許文献１、非特許文献２、非特許文献４）、有界ラプラスノイズ加算（非特許文献３）がある。これらの技術における再構築処理では、撹乱データから再構築データを推定する際、様々な統計分析を可能にするために、元データの生成分布を表す確率密度関数の推定を行っている。確率密度関数を知ることはデータの生成規則を知ることと等価であり、あらゆる統計分析が可能となるからである。
【０００４】
非特許文献４の技術では、確率密度関数をヒストグラムとして表現し、元データの生成分布の推定を行っている。以後、「確率密度関数の推定」と「ヒストグラムの推定」は等価なものとして取り扱う。
【０００５】
非特許文献２、非特許文献３に従い、従来提案されている攪乱方法について説明する。そのために、まず、属性、カテゴリ属性、数値属性について例をまじえながら説明する。
【０００６】
撹乱対象となるデータ、つまり元データの属性の数をＭとする。また、属性はカテゴリ属性と数値属性が混在して含まれているものとする。カテゴリ属性の例としては、性別があり、その属性値の集合は｛男性、女性｝となる。数値属性の例としては、身長があり、その属性値の集合は｛ｔ｜ｔは０ｃｍ〜２００ｃｍ｝となる。
【０００７】
ｊ番目の属性（つまり、属性値の集合）をＡｊと表し（１≦ｊ≦Ｍ）、すべての属性の集合をＡ＝Ａ１×…×ＡＭとする。また、Ａｊがカテゴリ属性の場合は集合Ａｊの濃度、Ａｊが数値属性の場合は数値属性の値の取り得る範囲（数値属性の値域）を分割する数（量子化する数）Ｋｊのことをそれぞれ｜Ａｊ｜で表す。さらに、｜Ａ｜＝｜Ａ１｜×…×｜ＡＭ｜とする。先ほどの身長の例では、その値域は｛ｔ｜ｔは０ｃｍ〜２００ｃｍ｝であり、部分区間［０，２０］、［２０，４０］、…［１８０，２００］に分割（量子化）する場合、Ｋｊ＝１０となる。このとき、｛［０，２０］、［２０，４０］、…［１８０，２００］｝を値域とする数値属性のことを量子化数値属性という。
【０００８】
図１に、Ａ１、Ａ２がそれぞれ性別、職業を表すカテゴリ属性である場合のＡ＝Ａ１×Ａ２のサンプルデータの例を示す。このとき、サンプルデータ数Ｎ＝１０、Ｍ＝２、Ａ１＝｛男性、女性｝、Ａ２＝｛研究員、開発者、医者｝、Ａ＝｛（男性，研究員）、（男性，開発者）、（男性，医者）、（女性，研究員）、（女性，開発者）、（女性，医者）｝、｜Ａ１｜＝２、｜Ａ２｜＝３、｜Ａ｜＝６となる。
【０００９】
Ａｊの要素は、｛１、２、…、｜Ａｊ｜｝でナンバリングされているものとする。Ａ２の要素である研究員、開発者、医者に対して、１、２、３を割り当てることとすると、これがＡ２の要素をナンバリングした例となる。Ａの要素についても、同様に｛１、２、…、｜Ａ｜｝でナンバリングされているものとする。例えば、ｘ１＝（男性，研究員）、ｘ２＝（男性，開発者）、ｘ３＝（男性，医者）、ｘ４＝（女性，研究員）、ｘ５＝（女性，開発者）、ｘ６＝（女性，医者）がＡの要素をナンバリングした例となる。また、ｘｉをｉ番目の属性値の組み合わせと呼ぶ。
【００１０】
次に、いくつかの記号について説明する。ＰＸ（ｘ）（ただし、ｘはＡの要素）は元データの確率密度関数、ＰＹ（ｙ）（ただし、ｙはＡの要素）は撹乱データの確率密度関数を表すものとする。ＰＸ（ｘ）、ＰＹ（ｙ）はいずれも定義域をＡ＝Ａ１×…×ＡＭ、値域を[０，１]とする関数である。なお、変数ｘ、ｙはＭ次元列ベクトルとして扱うこととする。また、条件付き確率ＰＹ｜Ｘ（ｙ｜ｘ）は元データｘがランダムに攪乱されて撹乱データｙになる確率を表すものとする。
【００１１】
元データのサンプルデータは、確率密度ＰＸ（ｘ）を持つ確率分布からＮ個サンプリングしたものとする。また、ｉ番目の属性値の組み合わせｘｉ（１≦ｉ≦｜Ａ｜）に対し、ＰＸ（ｘｉ）はｉ番目の属性値の組み合わせｘｉの度数をサンプルデータ数で割ったもの、ＨＸ（ｘｉ）はｉ番目の属性値の組み合わせｘｉの度数を表す。したがって、ＰＸ（ｘｉ）＝ＨＸ（ｘｉ）／Ｎとなる。図１の例を考えると、ｘ３＝（男性，医者）に対し、ＰＸ（ｘ３）＝２／１０、ＨＸ（ｘ３）＝２となる。
【００１２】
撹乱データについても同様の記号を用いることにする。すなわち、ｉ番目の属性値の組み合わせｙｉ（１≦ｉ≦｜Ａ｜）に対し、ＰＹ（ｙｉ）はｉ番目の属性値の組み合わせｙｉの度数をサンプルデータ数で割ったもの、ＨＹ（ｙｉ）はｉ番目の属性値の組み合わせｙｉの度数を表す。
【００１３】
最後に、攪乱方法について説明する。撹乱データの生成に際し、カテゴリ属性に対しては非特許文献２の維持置換撹乱、数値属性に対しては非特許文献３の有界ラプラスノイズ加算を用いる。
【００１４】
（カテゴリ属性の撹乱方法）
カテゴリ属性に対しては、維持確率ρで属性値を維持し、１−ρの確率で属性値をランダムに変更することで、データを秘匿化する処理が行われる。すなわち、あるカテゴリ属性Ａｊの属性値ｖが属性値ｖ’に変わる条件付き確率ＰＹ｜ＸＡｊ（ｖ’｜ｖ）は、属性Ａｊの維持確率ρｊを用いて
【数１】
0006532829.tif 000002
と表される（ｊは１≦ｊ≦Ｍを満たす整数）。先述の通り、｜Ａｊ｜は集合Ａｊの濃度を示す。
【００１５】
カテゴリ属性に対する撹乱では、この条件付き確率に従うランダムな処理が施される。また、属性Ａｊの維持確率ρｊは公開されるものとする。
【００１６】
条件付き確率ＰＹ｜ＸＡｊ（ｖ’｜ｖ）は、｜Ａｊ｜×｜Ａｊ｜の行列Ｐｊ（以下、Ｐｊを遷移確率行列という）で表すことができる。遷移確率行列Ｐｊは属性値ｖが属性値ｖ’に変わる確率を行列で表したものであり、式（２）のように表現される。なお、遷移確率行列Ｐｊの定義に際して、Ａｊの要素のナンバリングを用いるとよい。
【数２】
0006532829.tif 000003
【００１７】
（数値属性の撹乱方法）
数値属性に対しては、属性値に有界ラプラス分布に従うノイズを付与する（つまり、有界ラプラスノイズ加算する）ことで撹乱を行う。有界ラプラス分布とは、台の上限と下限が定まっているラプラス分布のことであり、この有界ラプラス分布に従うノイズを付与することで、元データを秘匿化する。ある数値属性Ａｊの属性値ｖが属性値ｖ’に変わる条件付き確率密度ＰＹ｜ＸＡｊ（ｖ’｜ｖ）は、属性Ａｊの有界ラプラス分布のパラメータφｊを用いて
【数３】
0006532829.tif 000004
となる（ｊは１≦ｊ≦Ｍを満たす整数）。ここでγｊ（ｖ）はラプラス分布を有界にしたことによって生じる有界ラプラス分布を調整するための関数、[ａｊ，ｂｊ]は属性Ａｊの値域（ただし、ａｊ，ｂｊはａｊ≦ｂｊを満たす実数）である。
【００１８】
数値属性に対する撹乱では、この条件付き確率密度に従うランダムな処理が施される。また、属性Ａｊの有界ラプラス分布のパラメータφｊは公開されるものとする。
【００１９】
非特許文献３に示す通り、区間[ａｊ，ｂｊ]を適当な数Ｋｊ個の部分区間Ｉ１,…,ＩＫｊに分割し、部分区間Ｉｋに含まれる属性値が部分区間Ｉｋ’に含まれる属性値に変わる確率ＰＹ｜ＸＡｊ（Ｉｋ’｜Ｉｋ）（以下、部分区間Ｉｋが部分区間Ｉｋ’に変わる条件付き確率という）を用いて量子化することにより、有界ラプラスノイズ加算についても遷移確率行列Ｐｊを定義することができる。
【数４】
0006532829.tif 000005
ただし、｜Ｉｋ｜は区間の長さ、Δは部分区間Ｉｋに含まれる属性値ｖを部分区間Ｉｋ’に含まれる属性値にランダムに変えるランダム化アルゴリズムを表す。
【００２０】
つまり、遷移確率行列Ｐｊは、部分区間Ｉｋが部分区間Ｉｋ’に変わる条件付き確率ＰＹ｜ＸＡｊ（Ｉｋ’｜Ｉｋ）をｋ行ｋ’列の要素とするＫｊ×Ｋｊ（＝｜Ａｊ｜×｜Ａｊ｜）の行列となる。
【００２１】
なお、区間[ａｊ，ｂｊ]をＫｊ個の部分区間Ｉ１,…,ＩＫｊに等分割する場合、遷移確率行列Ｐｊは、φｊ、ａｊ、ｂｊ、Ｋｊを用いて計算できる。一般に、区間[ａｊ，ｂｊ]の分割をＩ１＝［ｔ０，ｔ１］、Ｉ２＝［ｔ１，ｔ２］、…、ＩＫｊ＝［ｔＫｊ−１，ｔＫｊ］（ｔ０（＝ａｊ）＜ｔ１＜…＜ｔＫｊ（＝ｂｊ））とすると、遷移確率行列Ｐｊは、φｊ、ｔ０（＝ａｊ）、ｔ１、…、ｔＫｊ（＝ｂｊ）を用いて計算できる。以下、ｔ０、ｔ１、…、ｔＫｊを区間[ａｊ，ｂｊ]の分割の分点という。
【００２２】
したがって、数値属性に対して量子化を行い条件付き確率ＰＹ｜ＸＡｊ（Ｉｋ’｜Ｉｋ）を定義することで、遷移確率行列を定義することが可能となり、カテゴリ属性、数値属性を共通の枠組みで扱えるようになる。
【００２３】
そこで、以降、数値属性については、適当な部分区間Ｉ１,…,ＩＫｊを用いて量子化がなされ、条件付き確率ＰＹ｜ＸＡｊ（Ｉｋ’｜Ｉｋ）が定義可能であるものとする。また、このように、区間[ａｊ，ｂｊ]の分割Ｉ１、Ｉ２、…、ＩＫｊを用いて条件付き確率ＰＹ｜ＸＡｊ（Ｉｋ’｜Ｉｋ）が定義することにより量子化した有界ラプラスノイズ加算のことを量子化有界ラプラスノイズ加算という。
【００２４】
（複数属性の撹乱方法）
すべての属性Ａ＝Ａ１×…×ＡＭの条件付き確率ＰＹ｜Ｘ（ｙｍ｜ｘｎ）は、属性ごとの条件付き確率の積となる（ただし、ｘｎ、ｙｍは、元データのｎ番目の属性値の組み合わせ、撹乱データのｍ番目の属性値の組み合わせ（１≦ｎ，ｍ≦｜Ａ｜）を表す）。
【数５】
0006532829.tif 000006
ｘｎ（ｊ）、ｙｍ（ｊ）はそれぞれＭ次元ベクトルｘｎ、ｙｍのｊ番目の要素（ｊ番目の属性Ａｊの属性値）を表す。属性がカテゴリ属性である場合は式（１）、数値属性である場合は式（３）を用いて式（４）を計算することができる。
【００２５】
この条件付き確率ＰＹ｜Ｘ（ｙｍ｜ｘｎ）も行列を用いて表現できる。Ｐｊをｊ番目の属性Ａｊに対する遷移確率行列とすると、条件付き確率ＰＹ｜Ｘ（ｙｍ｜ｘｎ）の行列表現である遷移確率行列Ｐは式（５）のようにＰｊのクロネッカー積として表現される。
【数６】
0006532829.tif 000007
【先行技術文献】
【非特許文献】
【００２６】
【非特許文献１】五十嵐大、千田浩司、高橋克巳、“多値属性に適用可能な効率的プライバシー保護クロス集計”、コンピュータセキュリティシンポジウム２００８  論文集、2008年10月、第2008巻、pp.497-502
【非特許文献２】五十嵐大、千田浩司、高橋克巳、“k-匿名性の確率的指標への拡張とその適用例”、コンピュータセキュリティシンポジウム２００９ 論文集、2009年10月、第2009巻、pp.1-6
【非特許文献３】五十嵐大、長谷川聡、納竜也、菊池亮、千田浩司、“数値属性に適用可能な, ランダム化によりk-匿名性を保証するプライバシー保護クロス集計”、コンピュータセキュリティシンポジウム２０１２  論文集、2012年10月、pp.639-646
【非特許文献４】Rakesh Agrawal, Ramakrishnan Srikant, and Dilys Thomas, “Privacy Preserving OLAP”, In Proceedings of the 2005 ACM SIGMOD International Conference on Management of Data, 2005, pp.251-262
【発明の概要】
【発明が解決しようとする課題】
【００２７】
元データの生成分布を表す確率密度関数ＰＸ（ｘ）と元データの生成分布を表す確率密度関数を再構築した結果である再構築元データの生成分布を表す確率密度関数Ｐ＾Ｘ（ｘ）の間に生じる誤差がどの程度になるかについては、いったんＰ＾Ｘ（ｘ）を求める必要があった。例えば、非特許文献４では、以下に示す尤度関数Ｌを最大化すること（以下、最尤推定法という）によりＰ＾Ｘ（ｘ）を求めていた。具体的には、期待値最大化（Expectation Maximization）アルゴリズムを用いて、Ｐ＾Ｘ（ｘ）をヒストグラムとして求めていた。
【数７】
0006532829.tif 000008
【００２８】
以下では、変数ｘ、ｙを省略して、Ｐ＾Ｘ（ｘ）、ＨＹ（ｙ）、ＰＹ｜Ｘ（ｙ｜ｘ）を単にＰ＾Ｘ、ＨＹ、ＰＹ｜Ｘと表すこともある。
【００２９】
期待値最大化アルゴリズムのような最尤推定法では撹乱処理とＰ＾Ｘ（と等価なヒストグラム）の推定処理の２つの処理を実行する必要がある。このため、ＰＸとＰ＾Ｘの誤差（各確率密度関数と等価なヒストグラム間の誤差）の推定にはデータベースごとに数値実験を繰り返し行う必要があり、誤差の評価に非常にコストを費やしていた。
【００３０】
そこで本発明では、再構築元データの生成分布を表す確率密度関数Ｐ＾Ｘと等価なヒストグラムの推定を行うことなく、元データの生成分布を表す確率密度関数ＰＸ及び再構築元データの生成分布を表す確率密度関数Ｐ＾Ｘと等価なヒストグラム間の誤差を推定する撹乱データ再構築誤差推定装置を提供することを目的とする。
【課題を解決するための手段】
【００３１】
本発明の一態様は、Ｍを撹乱対象となるデータである元データの属性の数、Ａｊをｊ番目の属性（ただし、ｊは１≦ｊ≦Ｍなる整数）とし、属性Ａｊに対する撹乱は、属性Ａｊがカテゴリ属性である場合は維持確率をρｊとする維持置換撹乱、属性Ａｊが数値属性（その値域を[ａｊ，ｂｊ] （ただし、ａｊ，ｂｊはａｊ≦ｂｊを満たす実数）とする）である場合は有界ラプラス分布のパラメータをφｊとする有界ラプラスノイズ加算を前記値域[ａｊ，ｂｊ]の分割Ｉ１＝［ｔ０，ｔ１］、Ｉ２＝［ｔ１，ｔ２］、…、ＩＫｊ＝［ｔＫｊ−１，ｔＫｊ］（ただし、ｔ０（＝ａｊ）＜ｔ１＜…＜ｔＫｊ（＝ｂｊ）、以下、ｔ０、ｔ１、…、ｔＫｊを分点という）を用いて量子化した量子化有界ラプラスノイズ加算であるとし、｜Ａ｜を｜Ａ｜＝｜Ａ１｜×…×｜ＡＭ｜（ただし、属性Ａｊが数値属性の場合は｜Ａｊ｜＝Ｋｊ）なる整数、ｘｉ（１≦ｉ≦｜Ａ｜）を元データのｉ番目の属性値の組み合わせ、Ｎを元データのサンプルデータ数、ＨＸ（ｘｉ）を前記サンプルデータに出現するｘｉの度数とし、前記サンプルデータ数Ｎ、前記度数ＨＸ（ｘｉ）から元データと再構築元データの誤差を推定する撹乱データ再構築誤差推定装置であって、属性Ａｊがカテゴリ属性である場合は前記維持確率ρｊと前記｜Ａｊ｜を用いて算出される属性値ｖが属性値ｖ’に変わる条件付き確率ＰＹ｜ＸＡｊ（ｖ’｜ｖ）、属性Ａｊが数値属性である場合は前記パラメータφｊと前記値域[ａｊ，ｂｊ]と前記分点ｔ１、…、ｔＫｊ−１を用いて算出される部分区間Ｉｋが部分区間Ｉｋ’に変わる条件付き確率ＰＹ｜ＸＡｊ（Ｉｋ’｜Ｉｋ）（１≦ｋ，ｋ’≦｜Ｋｊ｜）を用いて、遷移確率行列Ｐｊを計算する遷移確率行列計算部と、前記サンプルデータ数Ｎ、前記度数ＨＸ（ｘｉ）（１≦ｉ≦｜Ａ｜）、前記遷移確率行列Ｐｊ（１≦ｊ≦Ｍ）を用いて、ｘｍの分散（１≦ｍ，ｎ≦｜Ａ｜、ｍ＝ｎ）またはｘｍとｘｎの共分散（１≦ｍ，ｎ≦｜Ａ｜、ｍ≠ｎ）を前記誤差として計算する誤差計算部とを含む。
【発明の効果】
【００３２】
本発明によれば、ＰＸと最尤推定法で求めたＰ＾Ｘと等価なヒストグラム間の誤差を分散として定義することにより、誤差を解析的に求めることが可能となる。その結果、Ｐ＾Ｘと等価なヒストグラムの推定を行うことなく誤差を推定することが可能となる。
【図面の簡単な説明】
【００３３】
【図１】サンプルデータの一例を示す図。
【図２】実施例１の分散共分散計算アルゴリズムを示す図。
【図３】実施例１の撹乱データ再構築誤差推定装置１００の構成を示すブロック図。
【図４】実施例１の撹乱データ再構築誤差推定装置１００の動作を示すフローチャート。
【図５】実施例１の誤差計算部１２０の構成を示すブロック図。
【図６】実施例１の誤差計算部１２０の動作を示すフローチャート。
【図７】実施例２の分散共分散計算アルゴリズムを示す図。
【図８】実施例２の撹乱データ再構築誤差推定装置２００の構成を示すブロック図。
【図９】実施例２の誤差計算部２２０の構成を示すブロック図。
【図１０】実施例２の誤差計算部２２０の動作を示すフローチャート。
【図１１】実施例３（実施例１の変形例）の分散共分散計算アルゴリズムを示す図。
【図１２】実施例３（実施例２の変形例）の分散共分散計算アルゴリズムを示す図。
【図１３】実施例３（実施例１の変形例）の誤差計算部３２０の構成を示すブロック図。
【図１４】実施例３（実施例２の変形例）の誤差計算部３２５の構成を示すブロック図。
【発明を実施するための形態】
【００３４】
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【００３５】
なお、数値属性Ａｊについては、適当な部分区間Ｉ１,…,ＩＫｊを用いて量子化がなされ、量子化有界ラプラスノイズ加算、条件付き確率ＰＹ｜ＸＡｊ（Ｉｋ’｜Ｉｋ）、遷移確率行列Ｐｊが定義されているものとする。先述の通り、ＰＸ等の各確率密度関数は等価なヒストグラムと（同一視）して扱うこととし、ＰＸに従って生成されるサンプルデータ数をＮとする。また、ｘｉ、ｙｋは、元データのｉ番目の属性値の組み合わせ、撹乱データのｋ番目の属性値の組み合わせ（１≦ｉ，ｋ≦｜Ａ｜）を表すものとする。
【実施例１】
【００３６】
Ｐ＾Ｘを式（６）、（７）の最尤推定法により求めた場合のＰＸとＰ＾Ｘと等価なヒストグラム間の誤差（以下、元データと再構築元データの誤差という）をＰＸとＰ＾Ｘの分散・共分散として定義する。ここで、ＰＸとＰ＾Ｘの分散・共分散とは、元データのｉ番目の属性値の組み合わせｘｉを確率変数とみなして生成した｜Ａ｜次元列ベクトル（ｘ１…ｘ｜Ａ｜）Ｔに対して（ｉ，ｊ）要素をｘｉとｘｊの共分散（ｉ＝ｊのときはｘｉの分散）とする｜Ａ｜×｜Ａ｜の分散共分散行列として定義されるものである。
【００３７】
このように定義することにより、ＰＸとＰ＾Ｘと等価なヒストグラム間の誤差を解析的に求めることができる（参考非特許文献５）。
（参考非特許文献５） Xumeng Cao and James C. Spall, “Relative Performance of Expected and Observed Fisher Information in Covariance Estimation for Maximum Likelihood Estimates”, In American Control Conference (ACC), 2012, IEEE, June 2012, pp.1871-1876.
具体的には、ｉ番目の属性値の組み合わせｘｉ（１≦ｉ≦｜Ａ｜）の度数ＨＸ（ｘｉ）をサンプルデータ数Ｎで割ったものＰＸ（ｘｉ）を用いてＰＸを扱うことにより、ＰＸとＰ＾Ｘの分散・共分散はフィッシャー情報行列を用いて算出できる。ＰＸとＰ＾Ｘの分散共分散行列をＶ、フィッシャー情報行列をＩとすると、Ｖ、Ｉは｜Ａ｜×｜Ａ｜の行列となり、
【数８】
0006532829.tif 000009
が成立する。
【００３８】
フィッシャー情報行列Ｉの逆行列として分散共分散行列Ｖを求め、分散共分散行列Ｖの各要素Ｖｉｊ（ＶｉｊはＶのｉ行ｊ列の要素を表す）にアクセスすることで、分散、共分散を得ることができる。Ｖｉｊは、ｘｉの分散（ｉ＝ｊのとき）またはｘｉとｘｊの共分散（ｉ≠ｊのとき）を表す。
【００３９】
以下、フィッシャー情報行列Ｉの算出方法について説明する。フィッシャー情報行列Ｉは式（６）、式（７）のヘッセ行列Ｈの期待値（式（９））で定義される。
【数９】
0006532829.tif 000010
【００４０】
ヘッセ行列Ｈの各値Ｈｉｊ（行列Ｈのｉ行ｊ列の要素）は、式（１０）で算出できる。なお、Ｌは式（７）の尤度関数である。
【数１０】
0006532829.tif 000011
ここで、ＰＹ（ｙｋ）は撹乱データの確率密度関数であり、
【数１１】
0006532829.tif 000012
である。ＰＸ（ｘｉ）はｉ番目の属性値の組み合わせｘｉの度数ＨＸ（ｘｉ）をサンプルデータ数Ｎで割ったものを用いる。
【００４１】
したがって、フィッシャー情報行列Ｉのｉ行ｊ列の要素Ｉｉｊは、
【数１２】
0006532829.tif 000013
である。
【００４２】
以上述べたことをまとめると、図２に示す分散共分散計算アルゴリズムとなる。攪乱を特徴付ける各パラメータ（各属性Ａｊの条件付き確率ＰＹ｜ＸＡｊのパラメータと元データの確率密度関数ＰＸに従い生成したサンプルデータの各度数ＨＸ（ｘｉ）とサンプルデータ数Ｎ）が入力となる。つまり、ｊを１≦ｊ≦Ｍを満たす整数として、Ａｊがカテゴリ属性の場合はρｊ、｜Ａｊ｜、Ａｊが数値属性の場合はφｊ、ａｊ、ｂｊ、ｔ１、…、ｔＫｊ−１、ｉを１≦ｉ≦｜Ａ｜を満たす整数として、サンプルデータ数Ｎ、当該サンプルデータに出現するｘｉの度数ＨＸ（ｘｉ）が入力となる。また、ｍ、ｎは生成したい誤差（分散または共分散）を指定するための１≦ｍ，ｎ≦｜Ａ｜なる整数である。
【００４３】
Ｓ１１０では、属性Ａｊの遷移確率行列Ｐｊを計算する。Ｓ１２１では、式（１１）を用いて撹乱データの確率密度関数ＰＹ（ｙｋ）を計算する。Ｓ１２２では、式（１２）を用いてフィッシャー情報行列Ｉの各要素Ｉｉｊを計算する。Ｓ１２３では、分散共分散行列Ｖをフィッシャー情報行列Ｉの逆行列として計算する。Ｓ１２４では、求めたい誤差Ｖｍｎ、つまり、｜Ａ｜次元列ベクトル（ｘ１…ｘ｜Ａ｜）Ｔの第ｍ要素ｘｍと第ｎ要素ｘｎの共分散（分散）を出力する。
【００４４】
以下、図３〜図４を参照して実施例１の撹乱データ再構築誤差推定装置１００について説明する。図３は、実施例１の撹乱データ再構築誤差推定装置１００の構成を示すブロック図である。図４は、実施例１の撹乱データ再構築誤差推定装置１００の動作を示すフローチャートである。図３に示すように撹乱データ再構築誤差推定装置１００は、遷移確率行列計算部１１０と、誤差計算部１２０を含む。
【００４５】
遷移確率行列計算部１１０は、属性Ａｊがカテゴリ属性である場合は維持確率ρｊ及び濃度｜Ａｊ｜、属性Ａｊが数値属性である場合は有界ラプラス分布のパラメータφｊ、値域[ａｊ，ｂｊ]、分点ｔ１、…、ｔＫｊ−１を用いて、各属性Ａｊの遷移確率行列Ｐｊを計算する（Ｓ１１０）。カテゴリ属性の場合は式（１）を用いて計算できる。また、数値属性の場合は、式（３）を用いて（その具体的な方法については非特許文献３に記載の方法にて）計算できる。誤差計算部１２０は、各属性Ａｊの遷移確率行列Ｐｊ、元データのサンプルデータに対するｉ番目の属性値の組み合わせｘｉの度数ＨＸ（ｘｉ）、サンプルデータ数Ｎを用いて、誤差Ｖｍｎを計算する（Ｓ１２０）。
【００４６】
以下、図５〜図６を参照して実施例１の誤差計算部１２０について説明する。図５は、実施例１の誤差計算部１２０の構成を示すブロック図である。図６は、実施例１の誤差計算部１２０の動作を示すフローチャートである。図５に示すように誤差計算部１２０は、撹乱データ確率密度関数計算部１２１と、フィッシャー情報行列計算部１２２と、分散共分散行列計算部１２３と、出力結果生成部１２４とを含む。
【００４７】
撹乱データ確率密度関数計算部１２１は、遷移確率行列計算部１１０が計算した遷移確率行列Ｐｊ（１≦ｊ≦Ｍ）と撹乱データ再構築誤差推定装置１００への入力であるサンプルデータ数Ｎと度数ＨＸ（ｘｉ）（１≦ｉ≦｜Ａ｜）を用いて式（１１）により確率密度関数ＰＹ（ｙｋ）（１≦ｋ≦｜Ａ｜）を計算する（Ｓ１２１）。フィッシャー情報行列計算部１２２は、遷移確率行列計算部１１０が計算した遷移確率行列Ｐｊ（１≦ｊ≦Ｍ）と撹乱データ確率密度関数計算部１２１が計算した確率密度関数ＰＹ（ｙｋ）（１≦ｋ≦｜Ａ｜）とサンプルデータ数Ｎを用いて式（１２）によりフィッシャー情報行列Ｉの各要素Ｉｉｊ（１≦ｉ，ｊ≦｜Ａ｜）を計算する（Ｓ１２２）。分散共分散行列計算部１２３は、フィッシャー情報行列計算部１２２が計算したフィッシャー情報行列Ｉの逆行列を分散共分散行列Ｖとして計算する（Ｓ１２３）。逆行列はガウス消去法などを用いて求めればよい。出力結果生成部１２４は、撹乱データ再構築誤差推定装置１００への入力であるｍ、ｎ（１≦ｍ，ｎ≦｜Ａ｜）に対して分散共分散行列Ｖのｍ行ｎ列の要素Ｖｍｎを抽出し、出力する（Ｓ１２４）。Ｖｍｎはｘｍとｘｎの共分散（分散）である。
【００４８】
実施例１の発明では、ＰＸと最尤推定法で求めたＰ＾Ｘと等価なヒストグラム間の誤差を分散・共分散として定義し、分散共分散行列を計算することにより、Ｐ＾Ｘを推定することなく、誤差を推定できるようになる。これにより、従来は困難であった、元データの生成分布を表す確率密度関数ＰＸと再構築元データの生成分布を表す確率密度関数Ｐ＾Ｘの間に生じる誤差を指定した範囲に収めるような、撹乱再構築処理を行うことが可能になる。
【実施例２】
【００４９】
実施例１では、フィッシャー情報行列Ｉを用いて分散・共分散を計算した。この方法では分散または共分散の値を１つ求めるためにも、Ｉの逆行列を計算する必要があり、空間計算量がＯ（｜Ａ｜２）、時間計算量がＯ（｜Ａ｜３）必要となる。属性の数Ｍが増えるほど指数的に｜Ａ｜が増えるため、計算がたちまち困難になる。
【００５０】
そこで、実施例２では、空間計算量、時間計算量ともに効率良く計算するために、各属性Ａｊの遷移確率行列Ｐｊのクロネッカー積を用いた遷移確率行列Ｐの表現に基づいて分散・共分散を計算する方法について説明する。
【００５１】
式（１２）と式（５）を用いて、式（８）を変形すると、
【数１３】
0006532829.tif 000014
ここで、１はすべての要素が１である｜Ａ｜次元列ベクトル、ｐｙはＰＹ（ｙｋ）を第ｋ要素としてもつ｜Ａ｜次元列ベクトル、．／は要素ごとの除算（element-wise division）、ｄｉａｇ（λ）はλ＝（λ１，…，λＬ）Ｔを対角成分とする対角行列を表す。 
【００５２】
式（１３）は、｜Ａ｜×｜Ａ｜のフィッシャー情報行列Ｉの逆行列を計算する必要がないことを示しており、｜Ａｊ｜×｜Ａｊ｜の行列Ｐｊの逆行列を計算すればよいことを示している。そのため、空間計算量はＯ（｜Ａ｜）またはｍａｘ１≦ｊ≦ＭＯ（｜Ａｊ｜２） となる。
【００５３】
例えば、Ｖｍｎを求める場合は、以下のようにすればよい。
【数１４】
0006532829.tif 000015
ここで、ｉｄｘ（ｍ,ｊ）、ｉｄｘ（ｎ,ｊ）は、ｍ番目の属性値の組み合わせｘｍの属性Ａｊの要素に対応する遷移確率行列Ｐｊの列番号、ｎ番目の属性値の組み合わせｘｎの属性Ａｊの要素に対応する遷移確率行列Ｐｊの列番号を表し、Ｐｊ−１［：，ｉｄｘ（ｍ,ｊ）］、Ｐｊ−１［：，ｉｄｘ（ｎ,ｊ）］は、行列Ｐｊ−１の第ｉｄｘ（ｍ,ｊ）列のベクトル、行列Ｐｊ−１の第ｉｄｘ（ｎ,ｊ）列のベクトルを表す。＊は、ベクトル同士の要素積を表す。なお、Ｑ１、Ｑ２はいずれも｜Ａ｜×１の行列（つまり、｜Ａ｜次元列ベクトル）となっている。
【００５４】
図１の例を考えると、ｉｄｘ（２,２）は、２番目の属性値の組み合わせｘ２＝（男性，開発者）の属性Ａ２の要素である“開発者”に対応する遷移確率行列Ｐ２の列番号を示す。ここで、Ａ２の要素のナンバリングを研究員、開発者、医者に対して、１、２、３とすると、ｉｄｘ（２,２）＝２となる。
【００５５】
この場合、時間計算量はＯ（｜Ａ｜）またはｍａｘ１≦ｊ≦ＭＯ（｜Ａｊ｜３）ですむ。
【００５６】
式（１４）に基づく分散共分散計算アルゴリズムを図７に示す。入力は図２の分散共分散計算アルゴリズムと同じである。
【００５７】
Ｓ１１０、Ｓ１２１では、実施例１同様、遷移確率行列Ｐｊ、確率密度関数ＰＹ（ｙｋ）を計算する。Ｓ２２２では、遷移確率行列Ｐｊの逆行列Ｐｊ−１を計算する。Ｓ２２３では、式（１４）を用いて求めたい誤差Ｖｍｎを計算する。
【００５８】
以下、図８を参照して実施例２の撹乱データ再構築誤差推定装置２００について説明する。図８は、実施例２の撹乱データ再構築誤差推定装置２００の構成を示すブロック図である。図８に示すように撹乱データ再構築誤差推定装置２００は、遷移確率行列計算部１１０と、誤差計算部２２０を含む。
【００５９】
遷移確率行列計算部１１０は、実施例１のものと同じである。誤差計算部２２０は、各属性Ａｊの遷移確率行列Ｐｊ、元データのサンプルデータに対するｉ番目の属性値の組み合わせｘｉの度数ＨＸ（ｘｉ）、サンプルデータ数Ｎを用いて、誤差Ｖｍｎを計算する。誤差Ｖｍｎの計算手順が実施例１の誤差計算部１１０と相違する。
【００６０】
以下、図９〜図１０を参照して実施例２の誤差計算部２２０について説明する。図９は、実施例２の誤差計算部２２０の構成を示すブロック図である。図１０は、実施例２の誤差計算部２２０の動作を示すフローチャートである。図９に示すように誤差計算部２２０は、撹乱データ確率密度関数計算部１２１と、遷移確率行列逆行列計算部２２２と、分散共分散計算部２２３とを含む。
【００６１】
撹乱データ確率密度関数計算部１２１は、実施例１同様、式（１１）により確率密度関数ＰＹ（ｙｋ）（１≦ｋ≦｜Ａ｜）を計算する（Ｓ１２１）。遷移確率行列逆行列計算部２２２は、遷移確率行列計算部１１０が計算した遷移確率行列Ｐｊ（１≦ｊ≦Ｍ）について逆行列Ｐｊ−１を計算する（Ｓ２２３）。逆行列はガウス消去法などを用いて求めればよい。分散共分散計算部２２３は、遷移確率行列逆行列計算部２２２が計算した遷移確率行列の逆行列Ｐｊ−１（１≦ｊ≦Ｍ）と撹乱データ確率密度関数計算部１２１が計算した確率密度関数ＰＹ（ｙｋ）（１≦ｋ≦｜Ａ｜）を用いて式（１４）により誤差Ｖｍｎを計算する（Ｓ２２３）。Ｖｍｎはｘｍとｘｎの共分散（分散）である。
【００６２】
実施例２の発明では、｜Ａ｜×｜Ａ｜のフィッシャー情報行列Ｉの逆行列を計算する代わりに、｜Ａｊ｜×｜Ａｊ｜の遷移確率行列Ｐｊ（１≦ｊ≦Ｍ）の逆行列を計算することにより、分散・共分散を計算する。つまり、分散・共分散の計算に必要な逆行列の計算をより小さいサイズの行列に還元して扱っている。これにより、実施例１に比して空間計算量、時間計算量とも抑えることが可能になる。具体的には、空間計算量をＯ（｜Ａ｜）またはｍａｘ１≦ｊ≦ＭＯ（｜Ａｊ｜２）に、時間計算量をＯ（｜Ａ｜）またはｍａｘ１≦ｊ≦ＭＯ（｜Ａｊ｜３）に抑えることができる。
【実施例３】
【００６３】
実施例１、２では、撹乱データの確率密度関数ＰＹ（ｙｋ）の算出に式（１１）を用いた。式（１１）の計算ではＨＸ（ｘｉ）を必要とする。
【００６４】
実施例３では、元データのサンプルデータに対するｉ番目の属性値の組み合わせｘｉの度数ＨＸ（ｘｉ）を必要としない方法について説明する。
【００６５】
実際に撹乱されたデータを用いて、ＰＹ（ｙｋ）を求める。つまり、Ｎ個のサンプルデータを撹乱後観測された撹乱データｙｋの度数ＨＹ（ｙｋ）をＮで割る。すなわち、
【数１５】
0006532829.tif 000016
とすることでＰＹ（ｙｋ）を近似的に求めることができる。
【００６６】
式（１５）を用いてＰＹ（ｙｋ）を計算する実施例１、実施例２の分散共分散計算アルゴリズムの変形例を図１１、図１２に示す。また、実施例１の誤差計算部１２０、実施例２の誤差計算部２２０の変形例である実施例３の誤差計算部３２０、誤差計算部３２５をそれぞれ図１３、図１４に示す。誤差計算部１２０と誤差計算部３２０の相違点、誤差計算部２２０と誤差計算部３２５の相違点は、撹乱データ確率密度関数計算部１２１の代わりに撹乱データ確率密度関数計算部３２１を用いている点である。撹乱データ確率密度関数計算部３２１はＨＹ（ｙｋ）及びＮを入力として式（１５）に基づいて確率密度関数ＰＹ（ｙｋ）（１≦ｋ≦｜Ａ｜）を計算する。
【００６７】
実施例３の発明では、ＨＸ（ｘｉ）の代わりにＨＹ（ｙｋ）を用いてＰＹ（ｙｋ）を近似的に計算する。これにより、式（１１）を用いることなく、簡便に分散・共分散を計算することが可能となる。
＜補記＞
本発明の装置は、例えば単一のハードウェアエンティティとして、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置（例えば通信ケーブル）が接続可能な通信部、ＣＰＵ（Central Processing Unit、キャッシュメモリやレジスタなどを備えていてもよい）、メモリであるＲＡＭやＲＯＭ、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、ＣＰＵ、ＲＡＭ、ＲＯＭ、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、ＣＤ−ＲＯＭなどの記録媒体を読み書きできる装置（ドライブ）などを設けることとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
【００６８】
ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている（外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるＲＯＭに記憶させておくこととしてもよい）。また、これらのプログラムの処理によって得られるデータなどは、ＲＡＭや外部記憶装置などに適宜に記憶される。
【００６９】
ハードウェアエンティティでは、外部記憶装置（あるいはＲＯＭなど）に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にＣＰＵで解釈実行・処理される。その結果、ＣＰＵが所定の機能（上記、…部、…手段などと表した各構成要件）を実現する。
【００７０】
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
【００７１】
既述のように、上記実施形態において説明したハードウェアエンティティ（本発明の装置）における処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
【００７２】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等を、光磁気記録媒体として、ＭＯ（Magneto-Optical disc）等を、半導体メモリとしてＥＥＰ−ＲＯＭ（Electronically Erasable and Programmable-Read Only Memory）等を用いることができる。
【００７３】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００７４】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００７５】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【図１】
0006532829.tif 000017
【図２】
0006532829.tif 000018
【図３】
0006532829.tif 000019
【図４】
0006532829.tif 000020
【図５】
0006532829.tif 000021
【図６】
0006532829.tif 000022
【図７】
0006532829.tif 000023
【図８】
0006532829.tif 000024
【図９】
0006532829.tif 000025
【図１０】
0006532829.tif 000026
【図１１】
0006532829.tif 000027
【図１２】
0006532829.tif 000028
【図１３】
0006532829.tif 000029
【図１４】
0006532829.tif 000030