(57)【要約】【課題】  実際の回答項目は秘匿したままに統計データを必要な精度で再現するための疑似データを生成する。【解決手段】  本発明は、値を持たない空行である疑似データを生成して、データ群の内容を匿名化したデータを格納する匿名データ群記憶手段に追加し、データ群記憶手段から読み出したデータを匿名化して該匿名データ群記憶手段に格納し、データ値に関する統計値を算出する際に、算出された統計値の精度が一定値以上であることを担保するための処理と、回答組み合わせ記憶手段に格納されているデータの行数と、規定の式によって求められた行数を比較した結果に基づいて疑似データを生成し、匿名データ群記憶手段に格納されたデータ値に関する統計値を算出する。【選択図】  図８
2016014963.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つ以上の行と１つ以上の列を表組みで表現可能なデータについて、秘匿すべき値を秘匿したままデータ値に関する統計値を算出するための空データを生成する疑似データ生成装置であって、
収集した前記表組みで表現可能なデータを格納するデータ群記憶手段と、
前記データ群記憶手段に含まれるデータとして想定される値の候補の全組み合わせを格納する回答組み合わせ記憶手段と、
前記データ群記憶手段の内容を匿名化したデータを格納する匿名データ群記憶手段と、
前記データ群記憶手段からデータを読み出して匿名化処理を行い、前記匿名データ群記憶手段に格納するデータ群書換手段と、
データ値に関する統計値を算出する際に、算出された統計値の精度が一定値以上であることを担保するための処理を行う精度推定手段と、
前記匿名データ群記憶手段に格納されたデータ値に関する統計値を算出する統計値算出手段と、
を有し、
前記精度推定手段は、
前記回答組み合わせ記憶手段に格納されているデータの行数と、規定の式によって求められた行数を比較した結果に基づいて、前記データ群書換手段に疑似データを生成させる手段を含む
ことを特徴とする疑似データ生成装置。
【請求項２】
前記データ群書換手段は、
前記データ群記憶手段のデータの値に対して前記匿名データ群記憶手段の値の遷移確率を保持するデータ遷移格納手段と、
前記精度推定手段からの指示により、値を持たない空行を生成し、前記回答組み合わせ記憶手段に追加する疑似データ生成手段を含み、
前記回答組み合わせ記憶手段に格納されたデータ行数を因数分解することでデータを多次元に分割し、分割された次元内において同一軸に存在する前記データ群記憶手段のデータ全てを、匿名化データとして選択されうる候補として選択する候補選択手段と、
前記候補選択手段で選択された前記匿名化データとして選択されうる候補の中から実際に書き換える対象であるデータと値が同一の候補を除外し、前記データ遷移格納手段の遷移確率を参照して、残った候補のデータ値の中から等しい確率で選択されたデータ値を前記匿名データ群記憶手段に格納する書換手段を含む
請求項１記載の疑似データ生成装置。
【請求項３】
前記精度推定手段は、
算出する統計値に求める再構築精度下限を保持する精度下限値設定手段と、
前記精度下限値設定手段の前記再構築精度下限を満たすために必要な回答組み合わせ記憶手段の行数の算出するために用いる任意の式を保持する近似式保持手段と、
生成すべき疑似データ数を保持する必要疑似データ数保持手段と、
前記行に格納されるデータの値として想定される範囲あるいはランダムに生成したデータを複数生成し、生成した該データを元に非線形回帰分析した結果を数式として前記近似式保持手段に格納する手段と、
前記回答組み合わせ記憶手段に格納されている行数Aと前記近似式保持手段に格納されている前記数式によって求められた行数Bを比較し、該行数Bが該行数Aより大きい場合にはその差の絶対値を前記必要疑似データ数保持手段に格納し、該行数Bが該行数A以下の場合には該行数Bを可能な限りのパターンで因数分解し、各々の因数から１減じた結果に１を加算した値Cを算出し、該値Cのいずれかが該行数Bより小さい場合には、その小さい値Cのうち、最大の値を該必要疑似データ数保持手段に格納し、該値Cのすべてが該行数B以上である場合には、該因数分解の元とした値に１加えた値を用いて同様の処理を繰り返し、該必要疑似データ数保持手段に格納された値と同数の空行を前記データ群書換手段に対して生成させる手段と、
を含む請求項１記載の疑似データ生成装置。
【請求項４】
前記統計値算出手段は、
前記匿名データ群記憶手段に格納されたデータの集計値と前記データ群書換手段に保持されている該匿名データ群記憶手段の値の遷移確率の値の逆行列を掛け合わせ、データの統計値を算出する手段を含む
請求項１記載の疑似データ生成装置。
【請求項５】
少なくとも１つ以上の行と１つ以上の列を表組みで表現可能なデータについて、秘匿すべき値を秘匿したままデータ値に関する統計値を算出するための空データを生成する装置における疑似データ生成方法であって、
前記装置が、
収集した前記表組みで表現可能なデータを格納するデータ群記憶手段と、
前記データ群記憶手段に含まれるデータとして想定される値の候補の全組み合わせを格納する回答組み合わせ記憶手段と、
前記データ群記憶手段の内容を匿名化したデータを格納する匿名データ群記憶手段と、
を有する場合に、
前記データ群記憶手段からデータを読み出して匿名化処理を行い、前記匿名データ群記憶手段に格納するデータ群書換ステップと、
データ値に関する統計値を算出する際に、算出された統計値の精度が一定値以上であることを担保するための処理を行う精度推定ステップと、
前記匿名データ群記憶手段に格納されたデータ値に関する統計値を算出する統計値算出ステップと、
を行い、
前記精度推定ステップにおいて、
前記回答組み合わせ記憶手段に格納されているデータの行数と、規定の式によって求められた行数を比較した結果に基づいて、前記データ群書換手段に疑似データを生成させることを特徴とする疑似データ生成方法。
【請求項６】
前記装置が、
前記データ群記憶手段のデータの値に対して前記匿名データ群記憶手段の値の遷移確率を保持するデータ遷移格納手段をさらに有する場合に、
前記データ群書換ステップにおいて、
前記回答組み合わせ記憶手段に格納されたデータ行数を因数分解することでデータを多次元に分割し、分割された次元内において同一軸に存在する前記データ群記憶手段のデータ全てを、匿名化データとして選択されうる候補として選択する候補選択ステップと、
前記候補選択ステップで選択された前記匿名化データとして選択されうる候補の中から実際に書き換える対象であるデータと値が同一の候補を除外し、前記データ遷移格納手段の遷移確率を参照して、残った候補のデータ値の中から等しい確率で選択されたデータ値を前記匿名データ群記憶手段に格納する書換ステップを行う
請求項５記載の疑似データ生成方法。
【請求項７】
前記装置が、
算出する統計値に求める再構築精度下限を保持する精度下限値設定手段と、
前記精度下限値設定手段の前記再構築精度下限を満たすために必要な回答組み合わせ記憶手段の行数の算出するために用いる任意の式を保持する近似式保持手段と、
生成すべき疑似データ数を保持する必要疑似データ数保持手段と、
をさらに有する場合に、
前記精度推定ステップにおいて、
前記行に格納されるデータの値として想定される範囲あるいはランダムに生成したデータを複数生成し、生成した該データを元に非線形回帰分析した結果を数式として前記近似式保持手段に格納するステップと、
前記回答組み合わせ記憶手段に格納されている行数Aと前記近似式保持手段に格納されている前記数式によって求められた行数Bを比較し、該行数Bが該行数Aより大きい場合にはその差の絶対値を前記必要疑似データ数保持手段に格納し、該行数Bが該行数A以下の場合には該行数Bを可能な限りのパターンで因数分解し、各々の因数から１減じた結果に１を加算した値Cを算出し、該値Cのいずれかが該行数Bより小さい場合には、その小さい値Cのうち、最大の値を該必要疑似データ数保持手段に格納し、該値Cのすべてが該行数B以上である場合には、該因数分解の元とした値に１加えた値を用いて同様の処理を繰り返し、該必要疑似データ数保持手段に格納された値と同数の空行の生成を指示し、
前記データ群書換ステップにおいて、
指示された数の空行を生成して前記回答組み合わせ記憶手段に追加する
請求項５記載の疑似データ生成方法。
【請求項８】
コンピュータを、
請求項１ないし４のいずれか１項に記載の疑似データ生成装置の各手段として機能させるための疑似データ生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、疑似データ生成装置及び方法及びプログラムに係り、特に、アンケート等を通じて利用者傾向を統計的に把握する際に、回答項目を秘匿してアンケートの統計データを得るための疑似データを生成する疑似データ生成装置及び方法及びプログラムに関する。
【背景技術】
【０００２】
情報化の進展に伴い、アンケート等を通じて利用者傾向を統計的に把握する機会が増加している。このときアンケート実施側は統計データのみが得られれば良いにもかかわらず、アンケート項目にはしばしば個人情報あるいは個人情報と密接に関わる情報が含まれており、これらがアンケート実施側に開示されてしまうが故にアンケートへの協力が得られないといった課題が存在する。そのため、実際の個人情報に関する回答項目は秘匿したままに、統計データを必要な精度で再現するための手法が必要とされている。
【０００３】
以降、匿名化されたデータを用いて、実データによって算出可能である統計データを推測する行為を「統計データの再構築」と呼ぶ。
【０００４】
上記の課題を解決するための方式として、Negative Survey(例えば、非特許文献１，２参照)がある。これは、取り得る選択肢がn個ある質問項目q1について任意の回答者の示した秘匿すべき回答がaiであるとき、回答者の選択しなかったn−1個の選択肢から等しい確率で匿名化済み回答項目a'を統計データ算出用の値として伝送する方式である。つまり、通常であれば統計データ算出用の値としてaiを用いるところ、Negative Surveyを使用した場合はai以外のan−1種類ある選択肢からランダムな選択肢が等しい確率で選択され、それを統計データ算出用の値に用いて再構築する。
【０００５】
統計データを算出するため、「ai以外のan−1種類ある選択肢からランダムな選択肢が等しい確率で選択した、統計データ算出用の値」を作成すると同時に、「本来の選択肢aiが、選択された異なる値axになる確率」をすべてのパターンについて記録する（詳しくは、非特許文献３参照）。先に記録した「本来の選択肢aiが、選択された異なる値axになる確率」の逆行列を、統計データ算出用の値と掛け合わせることによって、回答項目の集計結果を得ることができる。
【０００６】
回答の選択肢が多いアンケート項目についてNegative Surveyの再構築精度を改善した方式にMDNSがある（例えば、非特許文献４参照）。なお、ここでは、「アンケート項目」としているが、実際には、アンケート回答者による回答一式を指すものである。例えば、「男性,150cm」「男性,170cm」「女性,200cm」といった身長に関するアンケートがあったとき、「アンケート項目」は実際には回答一式を指すものであるから3項目存在すると解釈される。
【０００７】
元のNegative Surveyの再構築は、回答者の選択した実回答以外の選択肢全てを等しい確率で選択した。それに対し、MDNSでは、選択肢を複数の次元へ分割し、それぞれの次元に対してNegative Surveyを適用する。例えば、因数分解した上でマトリクス構造（次元に分割）を作るような場合、12個の選択肢がある質問項目の場合、4×3の2次元に分割するなどした上で、行と列の2次元についていずれも実回答と異なる項目6個の中から匿名化された選択肢を選択する。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】F. Esponda. Negative surveys. ArXiv Mathematics e-Prints, 2006.
【非特許文献２】青木俊介, 岩井将行, 瀬崎薫. 多次元データに対するNegative-Surveyを用いたプライバシー保護手法の検討. 電子情報通信学会ソサイエティ大会, B-19-5, 2012.9.
【非特許文献３】皆川昇子, 青木俊介, 中澤仁, 徳田英幸. プライバシー保護に配慮したユーザの地理的分布推計手法. 電子情報通信学会信学技報, 2013-UBI-38(15), 1-6, 2013.5.
【非特許文献４】M. M. Groat, b. Edwards, J. Horey, W. He, and S. Forrest. Enhancing privacy in participatory sensing applications with multidimensional data.  In Proceedings of the 10th IEEE International Conference on Pervasive Computing and communications (PerCom '12), pp. 144-152, March 2012.
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上記MDNSは、Negative Surveyをより多様なデータへ適用できるようにしたが、事前に分解する因数を設定する必要があった。そのため、当該MDNS技術を適用することで匿名化できる「アンケート項目数」には制約があった。
【００１０】
例えば、素数個の項目数である場合、そもそも複数の次元に分割するための因数が存在しないため匿名化できない。そのため、この制約を通過するために、例えば、アンケート項目数が17個である場合、因数分解可能な16あるいは18となるように、アンケート項目の増減を行うなどという可能性を否定しきれなかった。
【００１１】
また、選択肢が2項目のみであるデータに対して、既存技術はそもそも匿名化を実現できていなかった。これはMDNSでは「次元」を質問項目によって分割するため、回答が2値の場合には単に選択されていない回答項目を匿名化された選択肢として選択するためである。
【００１２】
本発明は、上記の点に鑑みなされたもので、アンケート項目数（以下では、「カテゴリ数」と記す）に関するMDNSの制約を可能な限り取り払い、実際の回答項目は秘匿したままに統計データを必要な精度で再現するための疑似データ生成装置及び方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
一態様によれば、少なくとも１つ以上の行と１つ以上の列を表組みで表現可能なデータについて、秘匿すべき値を秘匿したままデータ値に関する統計値を算出するための空データを生成する疑似データ生成装置であって、
収集した前記表組みで表現可能なデータを格納するデータ群記憶手段と、
前記データ群記憶手段に含まれるデータとして想定される値の候補の全組み合わせを格納する回答組み合わせ記憶手段と、
前記データ群記憶手段の内容を匿名化したデータを格納する匿名データ群記憶手段と、
前記データ群記憶手段からデータを読み出して匿名化処理を行い、前記匿名データ群記憶手段に格納するデータ群書換手段と、
データ値に関する統計値を算出する際に、算出された統計値の精度が一定値以上であることを担保するための処理を行う精度推定手段と、
前記匿名データ群記憶手段に格納されたデータ値に関する統計値を算出する統計値算出手段と、を有し、
前記精度推定手段は、
前記回答組み合わせ記憶手段に格納されているデータの行数と、規定の式によって求められた行数を比較した結果に基づいて、前記データ群書換手段に疑似データを生成させる手段を含む疑似データ生成装置が提供される。
【発明の効果】
【００１４】
一態様によれば、MDNSの事前に分解する因数を設定するという制約を取り払い、アンケートの回答者の匿名性を担保しつつ、統計処理を行うことが可能な匿名データ群を取得することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の処理概念を示すフローチャート。
【図２】本発明の因数（C_採用値）確定処理のフローチャート。
【図３】図２のＳ２１６の詳細処理のフローチャート。
【図４】図３のＳ３１０の詳細処理のフローチャート。
【図５】図３のＳ３２０の詳細処理のフローチャート。
【図６】図３のＳ３３０の詳細処理のフローチャート。
【図７】図６のＳ３３１の詳細処理のフローチャート。
【図８】本発明の一実施の形態における疑似データ生成装置の構成例。
【図９】本発明の一実施の形態におけるデータ群書換部の処理例（その１）。
【図１０】本発明の一実施の形態におけるデータ群書換部の処理例（その２）。
【図１１】本発明の一実施の形態における精度推定部によって生成される空行の例。
【発明を実施するための形態】
【００１６】
以下、図面と共に本発明の実施の形態を説明する。
【００１７】
最初に、疑似データ生成装置の構成を説明する前に、本発明で必要な概念について説明する。
【００１８】
図１は、本発明の処理の概念を示すフローチャートであり、図２は、本発明の因数（C_採用値）確定処理のフローチャートである。
【００１９】
図１において、ステップ１００はNegative Surveyを示し、ステップ１２０、１４０は、MDNSを示し、その他のステップは、Negative SurveyとMDNSに共通の処理である。
【００２０】
本発明のポイントは、「MDNSを適用するにあたっての適切なカテゴリ数及び因数の選択」である。当該処理は、後述する精度推定部１２０の処理に対応する。これを実施するため、本発明全体としては、必要な仮想カテゴリを追加する手順が必要となる。当該処理は、後述するデータ群書換部１１０の疑似データ生成部１１２の処理に対応する。
【００２１】
＜フェーズ１＞
入力データ群の入力を受けてから、求められる精度を満たす因数が存在するカテゴリ数を探索するフェーズである。当該フェーズ１のポイントはカテゴリ数（＝C_算出値）を規定の式から導出する（図１，ステップ１５０）処理である。規定の式は、別途算出しておかなければならない。規定の式は、例えば、回帰分析を用いて近似式を算出することによって得ることができる。場合によっては区間を分けた上で異なる回帰分析手法を適用した上で近似式を算出してもよい。規定の式を算出するために回帰分析対象とするデータはランダムなカテゴリ数を持ったランダムなサンプル数のデータを用いてもよい。このデータは必ずしもランダムなサンプルである必要はなく、例えば、過去の回答データからサンプリングしてもよい。当該＜フェーズ１＞の処理は、後述する精度推定部１２０の近似式算出部１２１の処理に対応する。
【００２２】
＜フェーズ２＞
フェーズ２のポイントは、図２のステップ２１０である。ここでは、上記のフェーズ１と同様の基準で新たに生成されたカテゴリ数の候補が妥当であるかを検証する。図２において、Ptn1やPtn2,3,4は、以下に記載するパターン番号と対応する。Ptn4は複数存在するが、これはD＝E(Dは(a-1)(b-1)+1、Eは(a-1)(b-1)(c-1)+1)のケースであり、いずれを使用しても値に差はない。図２のステップ２１４の『C(候補値)＜カテゴリ数C*２を満たす』の分岐は、適正な値の探索が無限大へ発散することを防ぐエラー処理であり、一例に過ぎない。当該＜フェーズ２＞の処理は、後述する精度推定部１２０の近似式算出部１２１の処理に対応する。
【００２３】
＜フェーズ３＞
フェーズ３は、適当と判断されたカテゴリ数（C(採用値))となるようにデータを加工するフェーズである。カテゴリ数を調整するために、統計値に影響を与えない（値を持たない疑似データ）を入力データ群（後述する「回答組み合わせ保持部」）へ追加する。追加後のデータセットを「最適化済みL」と呼ぶ。つまり、本来収集したデータセットに加えて値のないデータ（空行）を指す。
【００２４】
以下に上記のフェーズの処理を詳細に示す。
【００２５】
以降の説明に用いるパラメータは以下の通りである。
【００２６】
・A：再構築精度の下限であり、以降「再構築精度」と記す。
【００２７】
・L_初期値：実際に得られた(秘匿すべき)回答データ群である。
【００２８】
これらの情報から明らかな値を挙げ、以降で用いる名称を列挙する。
【００２９】
・C(i)_初期値：質問項目iにおける回答の選択肢の数。
【００３０】
・C_初期値：質問項目全体における全回答パターンの組み合わせ数であり、質問項目が１〜nまで存在する場合、
【００３１】
【数１】
2016014963.tif 000003
である。
【００３２】
・N：回答者数、以降「サンプル数」と記す。
【００３３】
また、質問項目における全回答パターンの組み合わせ一覧表をカテゴリカルリスト（後述する「回答組み合わせ保持部２０に相当」）と呼ぶ。
【００３４】
既存技術であるMDNSにおいては、「C(i)_初期値」を因数分解し、次元分割を実施していた。そのため、そもそも「C(i)_初期値」が素数であるなどの理由によって因数分解できない場合、次元分割が不可能であった。
【００３５】
そこで、本発明では、「C_初期値」とは異なる「C_算出値」を求め、「C_初期値」と「C_算出値」について期待される再構築精度を算出し、より再構築精度の優れた値をカテゴリ数として用いる。これによって、次元数が素数などである場合に対処可能となる。
【００３６】
上記の処理は、データ群書換部１１０、精度推定部１２０の処理に対応する。
【００３７】
＜１．「C_算出値」の算出手順＞
「C_算出値」として、例えば、ランダムなデータセットを用いて非線形回帰分析して算出した式を以下に示す。この場合、「C_算出値」は式(1)及び式(2)を満たすものなどである。
【００３８】
【数２】
2016014963.tif 000004
ここで用いるデータセットや式の導出手法は何でもよい。例えば、非線形回帰分析の代わりに線形回帰分析を用いてもよいし、サンプル数や再構築精度を区間分割した上で異なる分析手法から導出された式を組み合わせてもよい。例えば、先のランダムなデータセットを用いた式をより近似させるために、再構築精度40%に閾値を設け、40%以上である場合については以下に示す「式(3)及び式(4)を満たすもの」のような別の条件を用いて「C算出値」を算出することも可能である。
【００３９】
【数３】
2016014963.tif 000005
ここまででは式の導出に回帰分析のみを用いる例を述べているが、全く異なる手法によって式を導出してもよい。
【００４０】
回帰分析など何らかのデータセットを用いる必要がある導出手法を使用する場合、用いるデータセットはランダムに生成したデータセットを基としても、実際に取得済みのデータセットを基としても、あるいは、それらの一部をサンプリングしたデータセットを基としても構わない。
【００４１】
上記の処理は、精度推定部１２０の処理に対応する。
【００４２】
＜２．本発明手法を適用すべきでないケースの検出＞
「C_初期値」≦「C_算出値」である場合には、MDNSと同様に、再構築に用いるカテゴリ数C_採用値としてC_初期値を使用する。これは、C_初期値がすでに再構築精度Aを満たしているため、本発明手法によってカテゴリ数を調整する必要がないためである。この条件を満たす場合には、C_採用値＝C_初期値として＜５．匿名化データ生成に際する前処理＞の手順へ進む。この条件を満たさない場合には、C_候補値＝C_算出値として＜３．新たなカテゴリ数候補の算出及び検証＞に進む。
【００４３】
＜３．新たなカテゴリ数候補の算出及び検証＞
C_候補値の因数分解結果を全て算出し(図２,ステップ２０１)、以下の２つの条件を共に満たす値がある場合はその値をC_採用値として、＜５．匿名化データ生成に際する前処理＞へ進む。以下の２つの式(5),(6)を共に満たす値がない場合には、＜４．C_候補値の再算出＞へ進む。
【００４４】
これ以降では、具体的な因数分解結果が（a,b）と(m,n,o)の２つであったケース(図２,ステップ２０２)について具体的に変数を与えてその手順を説明する。候補を算出及び検証するために用いる変数D及びEを以下のように定義する(図２,ステップ２０３，ステップ２０６)。
【００４５】
D=(a-1)(b-1)+1                              (5)
E=(m-1)(n-1)(0-1)+1                         (6)
このとき、C_候補値、D、Eの３値の大小関係は以下の６パターンのいずれかである。
【００４６】
パターン１：(C_候補値≦D)∩(C_候補値≦Ｅ)
パターン２：D＜C_候補値≦Ｅ
パターン３：E＜D＜C_候補値
パターン４：D=E＜C_候補値
パターン５：E＜C_候補値≦D
パターン６：D＜E＜C_候補値
パターン１は、D及びEのいずれも、C_候補値以上である。このとき本発明では＜４．C_候補値の再算出＞に述べる候補値の再算出手順に進む(図２,ステップ２０５、２０８)。
【００４７】
DまたはEのいずれかの値がC_候補値よりも小さい場合、C_候補値より小さくかつC_候補値から値を引いた際の絶対値が小さいもの（｜C_候補値−D｜と｜C_候補値−E｜をそれぞれ算出し、前者が小さい場合はDを、後者が小さい場合はEをそれぞれC_採用値とする）をC_採用値として＜５．匿名化データ生成に際する前処理＞に進む。具体的にはパターン２またはパターン３の場合、C_採用値＝Dとする(図２，ステップ２１２)。パターン４の場合、D=EであるからC_採用値＝D＝Eである。パターン５またはパターン６の場合、C_採用値＝Eとする(図２,ステップ２１３)。
【００４８】
上記の処理は、精度推定部１２０の処理に対応する。
【００４９】
＜４．C_候補値の再算出＞
C_候補値を以下の式によって再定義する。
【００５０】
C_候補値＝C_候補値＋１
ここで、再定義した値についてC_候補値＜カテゴリ数×２を満たす場合、新たに定義したC_候補値を用いて改めて＜３．新たなカテゴリ数候補の算出及び検証＞を実施する。
【００５１】
先に述べた条件を満たさない、つまり、C_候補値≧カテゴリ数×２である場合には(図２，ステップ２１４,Yes)、本発明の手法によって自動的に最適な次元数の算出ができないものとして処理を終了する。これは、C_候補値が無限大へ発散することを防ぐための処理である。ここでの閾値は先に示したカテゴリ数×２に限定されず、その場あるいは処理リソース等に応じて適宜変更してもよい。
【００５２】
上記の処理は、精度推定部１２０の処理に対応する。
【００５３】
＜５．匿名化データ生成に際する前処理＞
図３は、図２のステップ２１６の詳細処理のフローチャート、図４、図５は図３の各ステップの詳細な処理を示すフローチャートである。以下では、図２のステップ２１２，２１３（＜１．「C_算出値」の算出手順＞)の処理により、C_採用値が決定された以降の処理を示す。
【００５４】
当該処理は、後述するデータ書換部１１０の処理に対応する。
【００５５】
本発明においては、再構築に用いるデータセットを構成するにあたって、仮想カテゴリと呼ぶ疑似データをデータセット(後述する回答組み合わせ保持部)へ追加する（図３、ステップ３１０）。
【００５６】
具体的には、C_候補値−C_初期値個の仮想カテゴリカルリストL_仮想を生成し、L_初期値へ追加する(図４、ステップ３１１，３１２)。追加したデータセットを「L_最適化済」と呼ぶとき、含まれるデータは以下の集合となる(図３，ステップ３２０、図４,ステップ３２１，３２２))。
【００５７】
L_最適化済＝{L_初期値、L_仮想}                (8)
L_初期値の取得方法によっては、L_初期値の順序と回答内容に相関が生じる場合もある。これを回避してL_初期値の持つ元データの秘匿性を高めるために、L_最適化済に含まれるデータ群（後述する、回答組み合わせ保持部２０が保持するデータに対応）の出現順序を別途ランダムに並び替える手順を加えてもよい（図６，ステップ３３２）。
【００５８】
その後、生成したＬ_仮想に含まれるデータそれぞれに対して一意なレイヤIDを与える(図３，ステップ３３０、図６,ステップ３３３))。このレイヤIDはベクトル値である。必要個数のレイヤID(ベクトル値)を生成する場合に、最適化済Lを取得し、生成済みレイヤIDの個数をCount(L)とし（図７，ステップ４０１）、決定済みのレイヤID次元数及び因数を取得し、「レイヤID次元数」次のベクトル値、かつ、それぞれの次元に因数個のユニークさを持つ範囲で、Count(L)個のユニークなレイヤIDを生成する（図７，ステップ４０２）。
【００５９】
レイヤIDは、＜３．新たなカテゴリ数候補の算出及び検証＞で取り上げた、最適と判断された因数分解結果によって値に２つの制限が課せられる。
【００６０】
因数分解の結果Ｎ個の因数に分解することとなった場合、レイヤIDはN次元のベクトル値とする。さらに、各次元の値は、因数の値と等しいユニークな値をとらなければならない(図６，ステップ３３４)。
【００６１】
なお、ベクトル値に含まれる各次元の値は、ユニークであれば何を用いてもよい。例えば、0から始まる正の整数などを用いることができる。例えば、因数分解の結果が(2,3)であったとき、以下のように、それぞれ自然数を小さい順に使用して値を定めた６つのユニークなレイヤIDを生成する。
【００６２】
【表１】
2016014963.tif 000006
上記より、MDNSと同様に多次元データに対してNegative Surveyを適用可能な状態となる。
【００６３】
以下に、上記の概念を疑似データ生成装置に適用した場合について説明する。
【００６４】
図８は、本発明の一実施の形態における疑似データ生成装置の構成例を示す。
【００６５】
同図に示す疑似データ生成装置は、データ群記憶部１０、回答組み合わせ保持部２０、匿名データ群記憶部３０、データ群書換部１１０、精度推定部１２０、統計値算出部１３０を有し、前述の＜5.匿名化データ生成に際する前処理＞を行う。
【００６６】
データ群記憶部１０は、収集したデータ群を保持し、各回答者（サンプル）毎に年齢、性別、カテゴリIDを保持する。
【００６７】
データ群書換部１１０は、書換部１１１を有し、図９、図１０に示すように、データ群記憶部１０に格納されているデータ群（サンプル数N）の各データについて匿名カテゴリIDを選択し、匿名データ群を作成し、匿名データ群記憶部３０に格納する。このとき、回答組み合わせ保持部２０のデータ行数を取得し、匿名化するデータを決定する。具体的には、同一軸データかつ元データでないものを抽出し、予めデータ遷移格納部１１３に格納されているデータに対する匿名化データの遷移確率を用いて選択する。また、データ群書換部１１０は、疑似データ生成部１１２を有し、精度推定部１２０から取得したパラメータに基づいて、値を持たない空行を生成し、当該空行を回答組み合わせ保持部２０に追加する。
【００６８】
回答組み合わせ保持部２０は、前述の概念の説明における「カテゴリカルリスト」に対応し、データ群記憶部１０に含まれるデータ（行）の値の候補に関する全組み合わせを格納する。回答組み合わせ保持部２０は、匿名ID毎に回答者の年齢、性別、カテゴリIDを保持する。カテゴリIDは精度推定部１２０により追加される。
【００６９】
匿名データ群記憶部３０は、データ群書換部１１０によりデータ群記憶部１０のデータを匿名化された表組のデータを保持する。
【００７０】
精度推定部１２０は、統計値算出部１３０においてデータ値に関する統計値を算出するにあたって、当該統計値の精度が一定以上であることを担保する。精度推定部１２０は、近似式算出部１２１、必要疑似データ数保持部１２２、精度下限値設定部１２３、近似式保持部１２４を有し、前述の＜フェーズ１＞、＜フェ−ズ２＞、＜フェーズ３＞、＜1.「C_算出値」の算出手順＞、＜3.新たなカテゴリ数候補の算出及び検証＞、＜４.C_候補値の再算出＞の処理を行う。
【００７１】
必要疑似データ数保持部１２２は、データ群書換部１１０の疑似データ生成部１１２を呼び出すべき回数を保持し、近似式算出部１２１は、必要疑似データ数保持部１２２の回数に基づいて、データ群書換部１１０の疑似データ生成部１１２を呼び出し、分析結果を数式化し、近似式保持部１２４に格納する。精度下限値設定部１２３は、統計値算出部１３０で求められる統計値の精度下限を保持する。近似式保持部１２４は、回答組み合わせ保持部２０の行数を算出するための数式を保持する。精度推定部１２０の処理の詳細は後述する。
【００７２】
統計値算出部１３０は、統計値の算出処理を行う。具体的には、匿名データ群記憶部３０の集計値を読み出し、データ群書換部１１０のデータ遷移格納部１１３の値の逆行列を読み出し、集計値とデータ遷移格納部１１３の値の逆行列を掛け合わせ、データ遷移格納部１１３の値を再算出し、データ遷移格納部１１３の匿名化データの遷移確率を更新する。
【００７３】
以下に、上記の各構成の処理の詳細について説明する。
【００７４】
＜データ群書換部１１０＞
データ群書換部１１０は、書換部１１１、疑似データ生成部１１２、データ遷移格納部１１３を有する。
【００７５】
データ群書換部１１０の書換部１１１は、前述の図２に示す方法により、回答組み合わせ保持部２０に格納されたデータ行数を因数分解する。これにより、書換部１１１は、データを多次元に分割し、分割された次元内において同一軸に存在するデータ全てを、匿名化データとして選出されうる候補として選択する。選択された当該選出され得る候補の中から実際に書き換える対象であるデータと値が同一である候補を選択肢から除外する。データ遷移格納部１１３に格納されている匿名データ群記憶部３０の値の遷移確率を参照して、除外されなかった候補のデータの値から、等しい確率でデータ値を選択し（図３,ステップ３１０，３２０）、選択されたデータ値（最適化済L）を匿名データ群記憶部３０に格納する（図４,ステップ３２２）。
【００７６】
疑似データ生成部１１２は、精度推定部１２０の指示により、値を持たない空行を生成し、生成した空行を回答組み合わせ保持部２０に追加する。
【００７７】
＜精度推定部１２０＞
精度推定部１２０は、近似式算出部１２１、必要疑似データ数保持部１２２、精度下限値設定部１２３、近似式保持部１２４を有する。
【００７８】
必要疑似データ数保持部１２２は、生成すべき疑似データ数を保持する。
【００７９】
精度下限値設定部１２３は、統計値算出部１３０が算出する統計値に求める精度下限値を保持する。
【００８０】
近似式保持部１２４は、近似式算出部１２１で算出された式を近似式として保持する。格納される近似式としては、例えば、前述の(1),(2)または、(3),(4)のような式である。
【００８１】
近似式算出部１２１は、精度下限値設定部１２３に設定されている再構築精度を満たすために必要な回答組み合わせ保持部２０の行数を近似式保持部１２４の近似式を用いて算出する。行に格納されるデータの値として想定される範囲あるいはランダムに生成したデータを複数生成する処理と、ランダムに生成したデータを元に非線形回帰分析した結果を近似式保持部１２４に格納する処理を行う。具体的には、近似式保持部１２４には、式(1),(2)または式(3),(4)が格納される。
【００８２】
なお、上記では、予め、ランダムに生成したデータを複数生成した上でランダムに生成したデータを元に非線形回帰分析した結果を近似式保持部１２４に格納する例を示したが、この例に限定されることなく、動的に生成することも可能である。
【００８３】
また、近似式算出部１２１は、回答組み合わせ保持部２０に記録されている行数を数え上げた値と近似式保持部１２４に格納された数式によって算出された、求められる行数を比較し、回答組み合わせ保持部２０に記録された「数え上げた値A」（C_初期値）より近似式保持部１２４に格納された数式によって算出された「求められる行数B」（C_採用値）の方が大きい場合にはその差の絶対値を必要疑似データ数保持部１２２に保持する（図1，ステップ１７０）。そうでない場合には、近似式保持部１２４に格納された数式によって算出された「求められる行数B」を可能な限りパターンで因数分解した上で各々の因数から１減じた数を乗じた結果に1を加えた値（式(5),(6)）を算出し、算出した値のいずれかが近似式保持部１２４に格納された数式によって算出された「求められる行数B」より小さい場合（図２，ステップ２１２，２１３）には、その小さい値のうち、最大の値を必要疑似データ数保持部１２２に保持する。また、算出した値のすべてが近似式保持部１２４に格納された数式によって算出された「求められる行数B」以上である場合（図２，ステップ２１１，２１４，２１５）には、先の手順で因数分解元とした値に１を加えた値を用いて同様の処理（図２，ステップ２０１〜２１０）を繰り返した上で、必要疑似データ数保持部１２２に格納された値と同数の空行をデータ群書換部１１０の疑似データ生成部１１２に対して生成させる。
【００８４】
これにより、疑似データ生成部１１２は、図４に示す方法により、図１１に示すように、回答組み合わせ保持部２０に必要個数の疑似データを生成する。図１１の例では、IDの欄が「仮想」の２つのレコードが空行となる。
【００８５】
統計値算出部１３０は、上記の処理により得られた匿名データ群記憶部３０の情報を用いて前述の方法により統計値を算出する。
【００８６】
なお、上記の図８の疑似データ生成装置の各構成要素の動作をプログラムとして構築し、疑似データ生成装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
【００８７】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【００８８】
１０  データ群記憶部
２０  回答組み合わせ保持部
３０  匿名データ群記憶部
１１０  データ群書換部
１１１  書換部
１１２  疑似データ生成部
１１３  データ遷移格納部
１２０  精度推定部
１２１  近似式算出部
１２２  必要疑似データ数保持部
１２３  精度下限値設定部
１２４  近似式保持部
１３０  統計値算出部
【図１】
2016014963.tif 000007
【図２】
2016014963.tif 000008
【図３】
2016014963.tif 000009
【図４】
2016014963.tif 000010
【図５】
2016014963.tif 000011
【図６】
2016014963.tif 000012
【図７】
2016014963.tif 000013
【図８】
2016014963.tif 000014
【図９】
2016014963.tif 000015
【図１０】
2016014963.tif 000016
【図１１】
2016014963.tif 000017