JP7456514B2 - パラメータ推定装置、パラメータ推定システム、パラメータ推定方法、及びプログラム - Google Patents
パラメータ推定装置、パラメータ推定システム、パラメータ推定方法、及びプログラム Download PDFInfo
- Publication number
- JP7456514B2 JP7456514B2 JP2022556813A JP2022556813A JP7456514B2 JP 7456514 B2 JP7456514 B2 JP 7456514B2 JP 2022556813 A JP2022556813 A JP 2022556813A JP 2022556813 A JP2022556813 A JP 2022556813A JP 7456514 B2 JP7456514 B2 JP 7456514B2
- Authority
- JP
- Japan
- Prior art keywords
- calculation
- parameter estimation
- time point
- vector
- secret
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 34
- 238000004364 calculation method Methods 0.000 claims description 98
- 239000013598 vector Substances 0.000 claims description 57
- 239000011159 matrix material Substances 0.000 claims description 17
- 238000013500 data storage Methods 0.000 claims description 12
- 230000002776 aggregation Effects 0.000 claims description 4
- 238000004220 aggregation Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 12
- 230000034994 death Effects 0.000 description 10
- 231100000517 death Toxicity 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 5
- 230000009467 reduction Effects 0.000 description 5
- 238000006467 substitution reaction Methods 0.000 description 5
- 238000007476 Maximum Likelihood Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 201000010099 disease Diseases 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000000611 regression analysis Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Algebra (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Electrophonic Musical Instruments (AREA)
- Stored Programmes (AREA)
- Communication Control (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、秘密計算技術において、秘匿性を保ったままcox比例ハザードモデルのパラメータ推定を実現する技術に関連するものである。
coxの比例ハザードモデルを用いた回帰分析であるcox比例ハザード回帰は、生存時間解析でよく用いられる分析手法である(非特許文献1)。市販の統計解析ソフトウェアやソフトウェア言語のパッケージにおいて、平文でcox比例ハザード回帰を行うことができる。
また、暗号化された数値を復元すること無く特定の演算結果を得る方法として、秘密計算と呼ばれる方法が知られている。一例として、複数の秘密計算装置に数値の断片を分散させるという暗号化を行い、複数の秘密計算装置が協調計算を行うことにより、数値を復元すること無く、加減算、定数加算、乗算、定数倍、論理演算(否定、論理積、論理和、排他的論理和)、データ形式変換(整数と二進数)等の結果を複数の秘密計算装置に分散された状態として得ることができる。
D. R. Cox. Regression Models and Life-Tables. Journal of the Royal Statistical Society. Series B (Methodological), Vol. 34, No. 2. (1972), pp. 187-220.
cox比例ハザードモデルのパラメータ推定を行う際、平文では死亡や打ち切りが発生した時点毎に計算を繰り返す。しかし、秘密計算でも同様の方法を用いる場合、秘匿しておくべき時点の値を復号する必要があるという課題がある。また、cox比例ハザードモデルのパラメータ推定の計算では、指数、除算、group-by sumといった秘密計算での処理コストが大きい処理が多く含まれるため、秘密計算で効率良く計算するのが難しいという課題もある。
本発明は上記の点に鑑みてなされたものであり、時点の値を復号することなく、効率良くcox比例ハザードモデルのパラメータ推定を行うための技術を提供することを目的とする。
開示の技術によれば、cox比例ハザードモデルのパラメータ推定を、秘密計算により実行するパラメータ推定装置であって、
イベントが観測された時点と、当該時点の観測対象の特徴量と、当該時点の観測対象の状態とを含むレコードを、観測対象毎に有するデータベースを格納するデータ格納部と、
前記データベースから、時点からなるベクトルを読み出し、当該ベクトルをソートすることにより、置換表と、時点の境目を示すフラグとを生成し、前記置換表と、前記フラグとを用いることにより、時点の値を秘匿したまま、前記特徴量の時点毎の集計を行い、集計結果に基づいて前記パラメータ推定を行う演算部と、
前記演算部により推定されたパラメータを出力する出力部と
を備えるパラメータ推定装置が提供される。
イベントが観測された時点と、当該時点の観測対象の特徴量と、当該時点の観測対象の状態とを含むレコードを、観測対象毎に有するデータベースを格納するデータ格納部と、
前記データベースから、時点からなるベクトルを読み出し、当該ベクトルをソートすることにより、置換表と、時点の境目を示すフラグとを生成し、前記置換表と、前記フラグとを用いることにより、時点の値を秘匿したまま、前記特徴量の時点毎の集計を行い、集計結果に基づいて前記パラメータ推定を行う演算部と、
前記演算部により推定されたパラメータを出力する出力部と
を備えるパラメータ推定装置が提供される。
開示の技術によれば、時点の値を復号することなく、効率良くcox比例ハザードモデルのパラメータ推定を行うための技術が提供される。
以下、図面を参照して本発明の実施の形態(本実施の形態)を説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
(装置構成例)
図1に、本実施の形態におけるパラメータ推定装置100の構成図を示す。図1に示すように、本実施の形態におけるパラメータ推定装置100は、入力部110、演算部120、出力部130、及びデータ格納部140を有する。
図1に、本実施の形態におけるパラメータ推定装置100の構成図を示す。図1に示すように、本実施の形態におけるパラメータ推定装置100は、入力部110、演算部120、出力部130、及びデータ格納部140を有する。
パラメータ推定装置100は、1つの装置(コンピュータ)で構成されてもよいし、複数のコンピュータからなるシステムとして構成されてもよい。このシステムをパラメータ推定システムと呼んでもよい。パラメータ推定システムにおいて、例えば、演算部120とデータ格納部140が別々のサーバであってもよい。
パラメータ推定装置100の入力部110に、観測により得られたデータから秘匿化されたデータが入力される。特に断らなければ、パラメータ推定装置100により扱われるデータは秘匿化されたデータであり、計算は秘密計算でなされるものとする。
入力されたデータはデータベースとしてデータ格納部140に格納される。演算部120は、データ格納部140のデータベースから読み出したスカラー、ベクトル、行列等のデータに対して後述する処理を行うことで、cox比例ハザードモデルのパラメータ推定を行う。出力部130は、演算部120で推定されたパラメータを出力する。
なお、演算部120で計算されたパラメータがデータ格納部140に格納され、外部からのアクセスに応じて、出力部130から出力されてもよい。演算部120での処理内容の詳細については後述する。
(ハードウェア構成例)
本実施の形態におけるパラメータ推定装置100は、例えば、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。なお、この「コンピュータ」は、物理マシンであってもよいし、クラウド上の仮想マシンであってもよい。仮想マシンを使用する場合、ここで説明する「ハードウェア」は仮想的なハードウェアである。
本実施の形態におけるパラメータ推定装置100は、例えば、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。なお、この「コンピュータ」は、物理マシンであってもよいし、クラウド上の仮想マシンであってもよい。仮想マシンを使用する場合、ここで説明する「ハードウェア」は仮想的なハードウェアである。
上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メール等、ネットワークを通して提供することも可能である。
図2は、上記コンピュータのハードウェア構成例を示す図である。図2のコンピュータは、それぞれバスBで相互に接続されているドライブ装置1000、補助記憶装置1002、メモリ装置1003、CPU1004、インタフェース装置1005、表示装置1006、入力装置1007、出力装置1008等を有する。
当該コンピュータでの処理を実現するプログラムは、例えば、CD-ROM又はメモリカード等の記録媒体1001によって提供される。プログラムを記憶した記録媒体1001がドライブ装置1000にセットされると、プログラムが記録媒体1001からドライブ装置1000を介して補助記憶装置1002にインストールされる。但し、プログラムのインストールは必ずしも記録媒体1001より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置1002は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置1003は、プログラムの起動指示があった場合に、補助記憶装置1002からプログラムを読み出して格納する。CPU1004は、メモリ装置1003に格納されたプログラムに従って、パラメータ推定装置100に係る機能を実現する。インタフェース装置1005は、ネットワークに接続するためのインタフェースとして用いられる。表示装置1006はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置1007はキーボード及びマウス、ボタン、又はタッチパネル等で構成され、様々な操作指示を入力させるために用いられる。出力装置1008は演算結果を出力する。
(準備)
パラメータ推定装置100の動作例を説明する前に、その準備として、記法、cox比例ハザード回帰、及び秘密計算等について説明する。
パラメータ推定装置100の動作例を説明する前に、その準備として、記法、cox比例ハザード回帰、及び秘密計算等について説明する。
<記法>
aをbで定義することをa:=bと記載し、ベクトルを→a:=(a0,...,an-1)と記載し、特筆しない限りAのような大文字は行列を表し、その転置行列はATと記載する。なお、本明細書のテキストにおいて、記載の便宜上、文字の頭の上に置かれるべきベクトルの記号(→)を、「→a」のように、文字の前に記載している。また、図面に記載したアルゴリズムにおいて、3階のテンソルは斜体の文字で記載している。本明細書のテキストにおいては、記載の便宜上、3階のテンソルの文字を、例えばtensorZZ´のように、その文字の左上にtensorを付けて表す。
aをbで定義することをa:=bと記載し、ベクトルを→a:=(a0,...,an-1)と記載し、特筆しない限りAのような大文字は行列を表し、その転置行列はATと記載する。なお、本明細書のテキストにおいて、記載の便宜上、文字の頭の上に置かれるべきベクトルの記号(→)を、「→a」のように、文字の前に記載している。また、図面に記載したアルゴリズムにおいて、3階のテンソルは斜体の文字で記載している。本明細書のテキストにおいては、記載の便宜上、3階のテンソルの文字を、例えばtensorZZ´のように、その文字の左上にtensorを付けて表す。
加減乗算において入力がベクトル→aもしくは行列Aと、スカラーbの場合、→a、Aの全ての要素に対してbとの演算を行うものとする。また、特に記載が無いベクトルは列ベクトルである。横ベクトルの場合はt→aのように左上にtを付けることで区別する。
<cox比例ハザード回帰>
cox比例ハザードモデルは式(1)で表されるモデルである(非特許文献1)。
cox比例ハザードモデルは式(1)で表されるモデルである(非特許文献1)。
式(2)におけるRiは、時点iの直前まで打ち切りも死亡も発生していない患者の集合であり、リスクセットと呼ばれる。なお、「打ち切り」とは、観測ができなくなり、それ以降、死亡の発生の有無が不明になることである。
従って、式(2)の部分尤度関数は、時点毎に(死亡した患者のハザード)/(リスクセットのハザードの総和)を計算し、全時点分掛け合わせたものである。この部分尤度は同じ時刻に複数の打ち切りや死亡が発生していない(タイデータが無い)という仮定を置いているため、タイデータがあることの多い実データでは、式(3)に示すBreslow法が良く用いられる。
→βの最尤推定量を求める方法としては、Newton法等が一般的である。本実施の形態ではNewton法を用いている。Newton法では、式(3)を対数尤度関数へと変形した後、その対数尤度関数の1階微分(勾配)と2階微分(ヘシアン)を用いて計算する。対数尤度関数l(→β)、その1階微分U(→β)、及び2階微分I(→β)をそれぞれ式(4)、式(5)、式(6)に示す。
ある値aを暗号化や秘密分散等により秘匿化した値をaの暗号文あるいは秘匿値と呼び、[a]と記述する。aが秘密分散により秘匿化された場合は、[a]により各秘密計算装置が持つ秘密分散の断片の集合を参照する。なお、暗号文であることを示す括弧"["、"]"について、図面及び明細書に挿入された数式での括弧の書式と少し異なるが、明細書テキストにおいては、記載の便宜上、"["、"]"を使用している。
次に、秘密計算における各種の演算を説明する。
■四則演算
2つの暗号文[a]、[b]の加算、減算、乗算は、それぞれ暗号文[a+b]、[a‐b]、[a×b]を計算する処理である。これらの演算をそれぞれ、[a]+[b]、[a]‐[b]、[a]×[b]と記載する。
2つの暗号文[a]、[b]の加算、減算、乗算は、それぞれ暗号文[a+b]、[a‐b]、[a×b]を計算する処理である。これらの演算をそれぞれ、[a]+[b]、[a]‐[b]、[a]×[b]と記載する。
また、暗号文[a]を平文bで割る処理は、[a]/bのような記法とする。入力がベクトルや行列で、要素毎にこれらの処理を行う場合も同様に[→a]+[→b]、[A]+[B]のような記法とする。
加減乗算において入力が行列Aと列ベクトル→bの場合は、行列の各列ベクトルに対して→bとの要素毎の演算を実施し、入力が行列Aと行ベクトルt→bの場合は、行列の各行ベクトルに対してt→bとの要素毎の演算を実施するものとする。
■総和
ベクトル[→a]の要素の総和を求める処理をsum([→a])と記述する。またsum([A])のようにm×nの行列がsumの入力の場合は、列方向の総和を計算し、長さnの行ベクトル[t→c]を出力するものとする。
ベクトル[→a]の要素の総和を求める処理をsum([→a])と記述する。またsum([A])のようにm×nの行列がsumの入力の場合は、列方向の総和を計算し、長さnの行ベクトル[t→c]を出力するものとする。
■prefix sub
ベクトル[→a]:=([a1],[a2],・・・,[an])とスカラー[b]から([b],[b]-[a1],[b]-([a1]+[a2]),・・・,[b]-Σ[→a])となるベクトルを計算することを、prefixSub([→a],[b])と記載する。
ベクトル[→a]:=([a1],[a2],・・・,[an])とスカラー[b]から([b],[b]-[a1],[b]-([a1]+[a2]),・・・,[b]-Σ[→a])となるベクトルを計算することを、prefixSub([→a],[b])と記載する。
■逆数
暗号文[a]の逆数1/[a]を計算することを、[c]←reciprocal([a])のように記載する。入力がベクトルの場合も同じ記法とする。
暗号文[a]の逆数1/[a]を計算することを、[c]←reciprocal([a])のように記載する。入力がベクトルの場合も同じ記法とする。
■指数
暗号文[a]を入力とし、ネイピア数eの[a]乗を計算することを[c]←exp([a])のように記載する。入力がベクトルの場合も同じ記法とする。
暗号文[a]を入力とし、ネイピア数eの[a]乗を計算することを[c]←exp([a])のように記載する。入力がベクトルの場合も同じ記法とする。
■Group-by common
Group-by commonは、Group-by sumやGroup-by countといった様々なGroup-by演算で共通的に用いることができる中間データを生成する処理である。中間データは置換表[→π]と、キーの値の境目かどうかを表すフラグ[→e]を含み、これらを使いまわすことで、同じキーを用いた様々なGroup-by演算を効率良く行うことができる。
Group-by commonは、Group-by sumやGroup-by countといった様々なGroup-by演算で共通的に用いることができる中間データを生成する処理である。中間データは置換表[→π]と、キーの値の境目かどうかを表すフラグ[→e]を含み、これらを使いまわすことで、同じキーを用いた様々なGroup-by演算を効率良く行うことができる。
図3、図4を参照して、Group-by commonの演算で得られる置換表→πと、フラグ→eの例を説明する。ここでは、説明の便宜上、平文の処理として説明する。
置換表→πは、Group-by commonに入力されたベクトルにおける各要素が、何番目の要素に移動すれば、当該ベクトルの要素がソートされるかを表すベクトルである。
図3において、ベクトル→kをGroup-by commonに入力すると、当該ベクトルがソートされ、図3に示すとおりの置換表→πが得られる。例えば、置換表→πの最初の要素である3は、入力ベクトル→kの最初の要素が、3番目の要素になればソートできることを示している。
フラグ→eは、Group-by commonに入力されたベクトルのソート済みのベクトルの各要素に対して、その要素の下の値と比較して同じならば、その要素の位置に0を入れ、異なる場合は1を入れたベクトルである。図4に、入力とフラグの例を示す。図4に示すように、フラグの一番最後については、下の値と比較できないので1を入れる。
キーのベクトル[→k]を入力してGroup-by commonを行うことを式(8)のように記述する。置換表[→π]を用いてベクトル[→a]や行列[A](行数が[→π]の長さと等しい)をソートする処理を式(9)、式(10)のように記述する。
ソート済みのベクトル[→a´]や[A´]と[→e]を用いてGroup-by sumを行うことを式(11)(12)のように記述する。[→a´]、[A´]などのプライムは、ソート済みであることを表し、以降も同様の記法とする。
例えば、図4に示すフラグ→eを(0,1,0,0,1,1)と記載するとして、仮に→a´が(2,1,3,5,1,2)であるとすると、→a´と→eを入力とするGroup-by sumは、(2+1,3+5+1,2,0,0,0)=(3,9,2,0,0,0)になる。
(パラメータ推定装置100の動作について)
以下、パラメータ推定装置100の動作例を説明する。パラメータ推定装置100の演算部120は、データ格納部140(データベース)に格納された暗号文のデータを読み出し、秘密計算により、前述した式(5)、式(6)、式(7)を計算して、cox比例ハザード回帰のパラメータ推定を行う。以下では、まず、特徴的な動作について説明する。
以下、パラメータ推定装置100の動作例を説明する。パラメータ推定装置100の演算部120は、データ格納部140(データベース)に格納された暗号文のデータを読み出し、秘密計算により、前述した式(5)、式(6)、式(7)を計算して、cox比例ハザード回帰のパラメータ推定を行う。以下では、まず、特徴的な動作について説明する。
<全レコードをまとめて処理する>
式(5)、式(6)をそのまま実装した場合、時点毎に反復計算していき、計算結果を順番に足していくような処理になる。秘密計算cox比例ハザード回帰を計算する場合には時点数を秘匿するため、前述のgroupByCommon、groupBySumを用いる。
式(5)、式(6)をそのまま実装した場合、時点毎に反復計算していき、計算結果を順番に足していくような処理になる。秘密計算cox比例ハザード回帰を計算する場合には時点数を秘匿するため、前述のgroupByCommon、groupBySumを用いる。
groupByCommon、groupBySumでは時点の値を秘匿したまま時点毎の集計を行い、不要な部分は0でパディングされるため、時点数に関する情報が漏れない。
また、時点数毎の反復処理ではなく全レコードをまとめて処理することにより、秘密計算での処理コストが大きい演算の回数を減らすことができて処理効率も良い。つまり、例えば、時点1でΣj∈Riexp(→βT→zj)を計算し、時点2でΣj∈Riexp(→βT→zj)を計算し、...といった計算ではなく、全時点分のΣj∈Riexp(→βT→zj)を一度に計算する。より具体的には、各時点の値がスカラーの場合は長さが時点数のベクトルとして扱ってまとめて計算し、各時点の値が長さnのベクトルの場合は時点数×nの行列として扱って、まとめて計算する。また、各時点の値がn×n行列の場合は時点数×n×nの3階のテンソルとして扱ってまとめて計算する。
<処理コストの大きい演算の削減>
式(5)、式(6)にはexpや除算が多く含まれ、また、Σj∈Riの処理はGroup-by sumであるため、秘密計算での計算コストが非常に大きい。
式(5)、式(6)にはexpや除算が多く含まれ、また、Σj∈Riの処理はGroup-by sumであるため、秘密計算での計算コストが非常に大きい。
本実施の形態に係るパラメータ推定装置100は、cox比例ハザード回帰におけるexp、除算、Group-by sumといったコストの大きい処理を最小限に抑え、効率良く計算する。単純に式(5)、式(6)の通りに計算した場合、Newton法の1反復あたりexpは7回×時点数、除算は3回×時点数分必要になるが、本実施の形態では下記の通り最小限に抑えた。
・expの計算が1反復あたり1回
・逆数の計算が1反復あたり1回
また、Group-by sumについても、処理をgroupByCommon、groupBySumに分けることで、より効率的に処理を行うこととしている。これらの演算の削減についてより詳細に説明する。
・逆数の計算が1反復あたり1回
また、Group-by sumについても、処理をgroupByCommon、groupBySumに分けることで、より効率的に処理を行うこととしている。これらの演算の削減についてより詳細に説明する。
■expの削減
式(5)、式(6)に示すとおり、expの引数が全て→βT→zjであるため、一度計算したら後は使い回せば良い。これに加えて、前述の全レコードをまとめて処理することで処理が並列化され、1反復あたり1度で済むようになる。
式(5)、式(6)に示すとおり、expの引数が全て→βT→zjであるため、一度計算したら後は使い回せば良い。これに加えて、前述の全レコードをまとめて処理することで処理が並列化され、1反復あたり1度で済むようになる。
■除算の削減
除算を逆数の計算+乗算で行う場合、Σj∈Riexp(→βT→zj)の逆数を、式(5)の第2項と式(6)の第1項で使い回せるため、除算2回ではなく逆数の計算1回+乗算2回で済む。式(6)の第2項は前述の2つとは除数が異なるが、この項は除算をしなくても求めることができる。式(5)の第2項と式(6)の第2項を見比べてみると、式(5)の第2項のdiを除いた部分をAとしたとき、式(6)の第2項はAATで表せるため、積のみで式(6)の第2項は計算できる。これに加えて、前述の全レコードをまとめて処理することで処理が並列化され、1反復あたり1度で済むようになる。
除算を逆数の計算+乗算で行う場合、Σj∈Riexp(→βT→zj)の逆数を、式(5)の第2項と式(6)の第1項で使い回せるため、除算2回ではなく逆数の計算1回+乗算2回で済む。式(6)の第2項は前述の2つとは除数が異なるが、この項は除算をしなくても求めることができる。式(5)の第2項と式(6)の第2項を見比べてみると、式(5)の第2項のdiを除いた部分をAとしたとき、式(6)の第2項はAATで表せるため、積のみで式(6)の第2項は計算できる。これに加えて、前述の全レコードをまとめて処理することで処理が並列化され、1反復あたり1度で済むようになる。
■Group-by sumの削減
式(5)、式(6)の通りに実装するとGroup-bysumを処理の中で何度も行うことになり、処理効率が低下する。そこで、本実施の形態では、全てキーが同一であることに着目し、最初にキーに対して一度だけ行ったGroup-bycommonで得た[→e]を使い回すこととしている。
式(5)、式(6)の通りに実装するとGroup-bysumを処理の中で何度も行うことになり、処理効率が低下する。そこで、本実施の形態では、全てキーが同一であることに着目し、最初にキーに対して一度だけ行ったGroup-bycommonで得た[→e]を使い回すこととしている。
本実施の形態のパラメータ推定装置100では、Group-by commonを活用し、秘密計算cox比例ハザード回帰を効率良く計算する。groupBySumの計算では、境目を表すフラグ[→e]を用いた集計を行うのみである。
<詳細な処理内容について>
次に、パラメータ推定装置100が実行する詳細な処理内容を説明する。ここでは、秘匿化された観測データがデータ格納部140においてデータベースとして格納されているものとし、演算部120は、秘密計算によりそのデータに対して処理を行うことで、cox比例ハザード回帰のパラメータを推定する。処理動作において、上述した特徴的な動作が行われる。
次に、パラメータ推定装置100が実行する詳細な処理内容を説明する。ここでは、秘匿化された観測データがデータ格納部140においてデータベースとして格納されているものとし、演算部120は、秘密計算によりそのデータに対して処理を行うことで、cox比例ハザード回帰のパラメータを推定する。処理動作において、上述した特徴的な動作が行われる。
演算部120による処理の対象となるデータベースのイメージを図5に示す。図5は、説明の便宜上、データが平文で示されており、また、時点の昇順にソート済の状態を示している。
図5に示すように、データベースには、患者数mの患者(観測対象)毎に、n個の特徴量と、観測の時点と、その時点での状態(死亡=1、打ち切り=0)が格納されている。mはレコード数でもあり、Dは時点数である。例えば、時刻ベクトル→t=(1,1,1,2)であれば、時点数は2である。
図5の例では、1患者に対し、死亡があった場合に、その患者、その患者の特徴量、その時点、その状態がデータベースに記録される。また、その時点で打ち切りされている患者についても、その患者、その患者の特徴量、その時点、その状態がデータベースに記録される。
同時点で、複数患者に対して死亡又は打ち切りが観測される場合がある。そのため、時点数D≦患者数mである。
演算部120は、データベースからデータを読み出すことで、患者全員分の特徴量をm×nの行列Zとし、時点を時刻ベクトル→tとし、患者全員分の状態を状態ベクトル→cとして保持する。
Z、→t、→cはいずれも初期状態においてはソートされていない。前述したように、Group-by commonにより、最初に時刻ベクトル→tをソートして置換表→πを作り、それを使い回すことで、特徴量Zや状態ベクトル→cの→tをキーとするソートは、置換表→πに基づいた並べ替えのみで済む。すなわち、通常のソートを行うより低コストで済む。
<処理手順>
パラメータ推定装置100の演算部120は、上記のデータベースのデータに対して、図6、図7に示すアルゴリズムの手順に従って、パラメータ推定を行う。図6、図7には、説明のために行番号を付している。以下では、処理部分の行番号をステップ番号とみなして説明を行う。
パラメータ推定装置100の演算部120は、上記のデータベースのデータに対して、図6、図7に示すアルゴリズムの手順に従って、パラメータ推定を行う。図6、図7には、説明のために行番号を付している。以下では、処理部分の行番号をステップ番号とみなして説明を行う。
図6のアルゴリズム1のステップ3において、演算部120は、n次の重みベクトルである[→β]を[0]で初期化する。ステップ4において、Group-by commonにより、→tをソートして置換表→πを作成するとともに、フラグ→eを作成する。
ステップ5、6において、演算部120は、[Z]、[→c]をそれぞれソートして、[Z´]、[→c´]を作成する。
演算部120は、ステップ8において、[Z´]から死亡例の特徴量以外を0とした[Z´dead]を作成し、ステップ9において、groupBySumにより時点毎の死亡例の特徴量の総和からなる[S]を作成する。ステップ11において、時点毎の死亡数[→d]を算出する。ステップ13において、m×n×nテンソルである[tensorZZ´]を作成し、ステップ15~17において[→β]の更新を行う。
ステップ16のcalcGHの処理については、図7を参照して説明する。ステップ3~6において、演算部120は、→zexp(→βT→z)に対応する[W´]と、→z→zTexp(→βT→z)に対応する[tensorX´]等を算出する。ステップ4で計算したexp(→βT→zj)に対応する[t→v´]が以降の計算で使い回されている。
ステップ8~10において、演算部120は、各時点のΣj∈Riexp(→βT→zj)に対応する[→vpsub]を算出する。時点数長のベクトルである[→vpsub]の各要素が、スカラー値であるΣj∈Riexp(→βT→zj)になっている。つまり、ここでの計算は、時点数毎の反復処理でなく、全レコードをまとめて処理する計算である。下記で説明する[Wpsub]、[tensorXpsub]の算出においても同様に全レコードをまとめて処理している。
ステップ12~14において、演算部120は、各時点のΣj∈Ri→zjexp(→βT→zj)に対応する[Wpsub]を算出する。ステップ16~18において、演算部120は、各時点のΣj∈Ri→zj→zj
Texp(→βT→zj)に対応する[tensorXpsub]を算出する。
ステップ20において、演算部120は、Σj∈Riexp(→βT→zj)の逆数に対応する[→y]を算出する。逆数の計算はこの部分だけである。
ステップ22~25において、演算部120は、勾配である式(5)を計算する。[→y]、[→d]は長さが時点数のベクトルであり、[G]、[W]、[S]は時点数×特徴量数の行列であり、計算結果の[t→g]は長さが特徴量数の横ベクトルである。ステップ25のsumにより、全時点の総和を計算する。
ステップ27~30において、演算部120は、へシアンである式(6)を計算する。ステップ29の[Gtmp][Gtmp]Tが、前述したAATに対応している。
(実施の形態の効果)
以上説明した本実施の形態に係る技術により、時点の数を復号することなく、効率良くcox比例ハザードモデルのパラメータ推定を行うことが可能となる。
以上説明した本実施の形態に係る技術により、時点の数を復号することなく、効率良くcox比例ハザードモデルのパラメータ推定を行うことが可能となる。
すなわち、本実施の形態に係る技術により、従来の平文での処理のような反復処理を行わず全データを一度に処理することで、時点数を復号せずに計算できるようになる。また、反復処理を減らしたことにより、除算、指数、group-by sumと言った秘密計算での処理コストが大きい処理が並列化され、データや時点数を秘匿したまま効率良くcox比例ハザード回帰のパラメータ推定が行えるようになる。
(実施の形態のまとめ)
本明細書には、少なくとも下記の各項に記載したパラメータ推定装置、パラメータ推定システム、パラメータ推定方法、及びプログラムが記載されている。
(第1項)
cox比例ハザードモデルのパラメータ推定を、秘密計算により実行するパラメータ推定装置であって、
イベントが観測された時点と、当該時点の観測対象の特徴量と、当該時点の観測対象の状態とを含むレコードを、観測対象毎に有するデータベースを格納するデータ格納部と、
前記データベースから、時点からなるベクトルを読み出し、当該ベクトルをソートすることにより、置換表と、時点の境目を示すフラグとを生成し、前記置換表と、前記フラグとを用いることにより、時点の値を秘匿したまま、前記特徴量の時点毎の集計を行い、集計結果に基づいて前記パラメータ推定を行う演算部と、
前記演算部により推定されたパラメータを出力する出力部と
を備えるパラメータ推定装置。
(第2項)
前記演算部は、前記パラメータ推定のための反復計算において使用される計算式における複数のexpの計算を、1反復あたり1回のexpの計算と、その計算結果を利用した演算により実行する
第1項に記載のパラメータ推定装置。
(第3項)
前記演算部は、前記パラメータ推定のための反復計算において使用される計算式における複数の逆数の計算を、1反復あたり1回の逆数の計算と、その計算結果を利用した演算により実行する
第1項又は第2項に記載のパラメータ推定装置。
(第4項)
前記演算部は、前記パラメータ推定のための反復計算において使用される計算式における時点毎の計算を、ベクトル又は行列又はテンソルを利用して全時点分についてまとめて実行する
第1項ないし第3項のうちいずれか1項に記載のパラメータ推定装置。
(第5項)
cox比例ハザードモデルのパラメータ推定を、秘密計算により実行するパラメータ推定システムであって、
イベントが観測された時点と、当該時点の観測対象の特徴量と、当該時点の観測対象の状態とを含むレコードを、観測対象毎に有するデータベースを格納するデータ格納部と、
前記データベースから、時点からなるベクトルを読み出し、当該ベクトルをソートすることにより、置換表と、時点の境目を示すフラグとを生成し、前記置換表と、前記フラグとを用いることにより、時点の値を秘匿したまま、前記特徴量の時点毎の集計を行い、集計結果に基づいて前記パラメータ推定を行う演算部と、
前記演算部により推定されたパラメータを出力する出力部と
を備えるパラメータ推定システム。
(第6項)
cox比例ハザードモデルのパラメータ推定を、秘密計算により実行するパラメータ推定装置により実行されるパラメータ推定方法であって、
イベントが観測された時点と、当該時点の観測対象の特徴量と、当該時点の観測対象の状態とを含むレコードを、観測対象毎に有するデータベースから、時点からなるベクトルを読み出し、当該ベクトルをソートすることにより、置換表と、時点の境目を示すフラグとを生成し、前記置換表と、前記フラグとを用いることにより、時点の値を秘匿したまま、前記特徴量の時点毎の集計を行い、集計結果に基づいて前記パラメータ推定を行う演算ステップと、
前記演算ステップにより推定されたパラメータを出力する出力ステップと
を備えるパラメータ推定方法。
(第7項)
コンピュータを、第1項ないし第4項のうちいずれか1項に記載のパラメータ推定装置における各部として機能させるためのプログラム。
本明細書には、少なくとも下記の各項に記載したパラメータ推定装置、パラメータ推定システム、パラメータ推定方法、及びプログラムが記載されている。
(第1項)
cox比例ハザードモデルのパラメータ推定を、秘密計算により実行するパラメータ推定装置であって、
イベントが観測された時点と、当該時点の観測対象の特徴量と、当該時点の観測対象の状態とを含むレコードを、観測対象毎に有するデータベースを格納するデータ格納部と、
前記データベースから、時点からなるベクトルを読み出し、当該ベクトルをソートすることにより、置換表と、時点の境目を示すフラグとを生成し、前記置換表と、前記フラグとを用いることにより、時点の値を秘匿したまま、前記特徴量の時点毎の集計を行い、集計結果に基づいて前記パラメータ推定を行う演算部と、
前記演算部により推定されたパラメータを出力する出力部と
を備えるパラメータ推定装置。
(第2項)
前記演算部は、前記パラメータ推定のための反復計算において使用される計算式における複数のexpの計算を、1反復あたり1回のexpの計算と、その計算結果を利用した演算により実行する
第1項に記載のパラメータ推定装置。
(第3項)
前記演算部は、前記パラメータ推定のための反復計算において使用される計算式における複数の逆数の計算を、1反復あたり1回の逆数の計算と、その計算結果を利用した演算により実行する
第1項又は第2項に記載のパラメータ推定装置。
(第4項)
前記演算部は、前記パラメータ推定のための反復計算において使用される計算式における時点毎の計算を、ベクトル又は行列又はテンソルを利用して全時点分についてまとめて実行する
第1項ないし第3項のうちいずれか1項に記載のパラメータ推定装置。
(第5項)
cox比例ハザードモデルのパラメータ推定を、秘密計算により実行するパラメータ推定システムであって、
イベントが観測された時点と、当該時点の観測対象の特徴量と、当該時点の観測対象の状態とを含むレコードを、観測対象毎に有するデータベースを格納するデータ格納部と、
前記データベースから、時点からなるベクトルを読み出し、当該ベクトルをソートすることにより、置換表と、時点の境目を示すフラグとを生成し、前記置換表と、前記フラグとを用いることにより、時点の値を秘匿したまま、前記特徴量の時点毎の集計を行い、集計結果に基づいて前記パラメータ推定を行う演算部と、
前記演算部により推定されたパラメータを出力する出力部と
を備えるパラメータ推定システム。
(第6項)
cox比例ハザードモデルのパラメータ推定を、秘密計算により実行するパラメータ推定装置により実行されるパラメータ推定方法であって、
イベントが観測された時点と、当該時点の観測対象の特徴量と、当該時点の観測対象の状態とを含むレコードを、観測対象毎に有するデータベースから、時点からなるベクトルを読み出し、当該ベクトルをソートすることにより、置換表と、時点の境目を示すフラグとを生成し、前記置換表と、前記フラグとを用いることにより、時点の値を秘匿したまま、前記特徴量の時点毎の集計を行い、集計結果に基づいて前記パラメータ推定を行う演算ステップと、
前記演算ステップにより推定されたパラメータを出力する出力ステップと
を備えるパラメータ推定方法。
(第7項)
コンピュータを、第1項ないし第4項のうちいずれか1項に記載のパラメータ推定装置における各部として機能させるためのプログラム。
以上、本実施の形態について説明したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
100 パラメータ推定装置
110 入力部
120 演算部
130 出力部
140 格納部
1000 ドライブ装置
1001 記録媒体
1002 補助記憶装置
1003 メモリ装置
1004 CPU
1005 インタフェース装置
1006 表示装置
1007 入力装置
1008 出力装置
110 入力部
120 演算部
130 出力部
140 格納部
1000 ドライブ装置
1001 記録媒体
1002 補助記憶装置
1003 メモリ装置
1004 CPU
1005 インタフェース装置
1006 表示装置
1007 入力装置
1008 出力装置
Claims (7)
- cox比例ハザードモデルのパラメータ推定を、秘密計算により実行するパラメータ推定装置であって、
イベントが観測された時点と、当該時点の観測対象の特徴量と、当該時点の観測対象の状態とを含むレコードを、観測対象毎に有するデータベースを格納するデータ格納部と、
前記データベースから、時点からなるベクトルを読み出し、当該ベクトルをソートすることにより、置換表と、時点の境目を示すフラグとを生成し、前記置換表と、前記フラグとを用いることにより、時点の値を秘匿したまま、前記特徴量の時点毎の集計を行い、集計結果に基づいて前記パラメータ推定を行う演算部と、
前記演算部により推定されたパラメータを出力する出力部と
を備えるパラメータ推定装置。 - 前記演算部は、前記パラメータ推定のための反復計算において使用される計算式における複数のexpの計算を、1反復あたり1回のexpの計算と、その計算結果を利用した演算により実行する
請求項1に記載のパラメータ推定装置。 - 前記演算部は、前記パラメータ推定のための反復計算において使用される計算式における複数の逆数の計算を、1反復あたり1回の逆数の計算と、その計算結果を利用した演算により実行する
請求項1又は2に記載のパラメータ推定装置。 - 前記演算部は、前記パラメータ推定のための反復計算において使用される計算式における時点毎の計算を、ベクトル又は行列又はテンソルを利用して全時点分についてまとめて実行する
請求項1ないし3のうちいずれか1項に記載のパラメータ推定装置。 - cox比例ハザードモデルのパラメータ推定を、秘密計算により実行するパラメータ推定システムであって、
イベントが観測された時点と、当該時点の観測対象の特徴量と、当該時点の観測対象の状態とを含むレコードを、観測対象毎に有するデータベースを格納するデータ格納部と、
前記データベースから、時点からなるベクトルを読み出し、当該ベクトルをソートすることにより、置換表と、時点の境目を示すフラグとを生成し、前記置換表と、前記フラグとを用いることにより、時点の値を秘匿したまま、前記特徴量の時点毎の集計を行い、集計結果に基づいて前記パラメータ推定を行う演算部と、
前記演算部により推定されたパラメータを出力する出力部と
を備えるパラメータ推定システム。 - cox比例ハザードモデルのパラメータ推定を、秘密計算により実行するパラメータ推定装置により実行されるパラメータ推定方法であって、
イベントが観測された時点と、当該時点の観測対象の特徴量と、当該時点の観測対象の状態とを含むレコードを、観測対象毎に有するデータベースから、時点からなるベクトルを読み出し、当該ベクトルをソートすることにより、置換表と、時点の境目を示すフラグとを生成し、前記置換表と、前記フラグとを用いることにより、時点の値を秘匿したまま、前記特徴量の時点毎の集計を行い、集計結果に基づいて前記パラメータ推定を行う演算ステップと、
前記演算ステップにより推定されたパラメータを出力する出力ステップと
を備えるパラメータ推定方法。 - コンピュータを、請求項1ないし4のうちいずれか1項に記載のパラメータ推定装置における各部として機能させるためのプログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2020/039119 WO2022079904A1 (ja) | 2020-10-16 | 2020-10-16 | パラメータ推定装置、パラメータ推定システム、パラメータ推定方法、及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2022079904A1 JPWO2022079904A1 (ja) | 2022-04-21 |
JP7456514B2 true JP7456514B2 (ja) | 2024-03-27 |
Family
ID=81209023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022556813A Active JP7456514B2 (ja) | 2020-10-16 | 2020-10-16 | パラメータ推定装置、パラメータ推定システム、パラメータ推定方法、及びプログラム |
Country Status (6)
Country | Link |
---|---|
US (1) | US20230367846A1 (ja) |
EP (1) | EP4231272A1 (ja) |
JP (1) | JP7456514B2 (ja) |
CN (1) | CN116324935A (ja) |
AU (1) | AU2020472128B2 (ja) |
WO (1) | WO2022079904A1 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006087854A1 (ja) | 2004-11-25 | 2006-08-24 | Sharp Kabushiki Kaisha | 情報分類装置、情報分類方法、情報分類プログラム、情報分類システム |
WO2017119211A1 (ja) | 2016-01-07 | 2017-07-13 | ソニー株式会社 | 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム |
-
2020
- 2020-10-16 CN CN202080106085.5A patent/CN116324935A/zh active Pending
- 2020-10-16 JP JP2022556813A patent/JP7456514B2/ja active Active
- 2020-10-16 EP EP20957733.7A patent/EP4231272A1/en active Pending
- 2020-10-16 WO PCT/JP2020/039119 patent/WO2022079904A1/ja active Application Filing
- 2020-10-16 US US18/245,195 patent/US20230367846A1/en active Pending
- 2020-10-16 AU AU2020472128A patent/AU2020472128B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006087854A1 (ja) | 2004-11-25 | 2006-08-24 | Sharp Kabushiki Kaisha | 情報分類装置、情報分類方法、情報分類プログラム、情報分類システム |
WO2017119211A1 (ja) | 2016-01-07 | 2017-07-13 | ソニー株式会社 | 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム |
Non-Patent Citations (1)
Title |
---|
三品 気吹 ほか,秘密計算によるプライバシー保護生存時間解析,コンピュータセキュリティシンポジウム2020論文集,日本,情報処理学会,2020年10月19日,pp. 1150-1157 |
Also Published As
Publication number | Publication date |
---|---|
WO2022079904A1 (ja) | 2022-04-21 |
US20230367846A1 (en) | 2023-11-16 |
EP4231272A1 (en) | 2023-08-23 |
AU2020472128B2 (en) | 2023-11-30 |
JPWO2022079904A1 (ja) | 2022-04-21 |
CN116324935A (zh) | 2023-06-23 |
AU2020472128A1 (en) | 2023-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Blatt et al. | Optimized homomorphic encryption solution for secure genome-wide association studies | |
Bernstein et al. | On the correct use of the negation map in the Pollard rho method | |
Gu et al. | A division-free Toom–Cook multiplication-based Montgomery modular multiplication | |
EP3507747A1 (en) | Exact quantum circuits and circuit syntheses for qudit and multiple qubit circuits | |
CN109328377B (zh) | 秘密计算系统、秘密计算装置、秘密计算方法、以及程序 | |
Matveev | Intertwining relations between the Fourier transform and discrete Fourier transform, the related functional identities and beyond | |
CN112005288B (zh) | 秘密聚合中值系统、秘密计算装置、秘密聚合中值方法、以及记录介质 | |
JP7456514B2 (ja) | パラメータ推定装置、パラメータ推定システム、パラメータ推定方法、及びプログラム | |
Jun et al. | HUBO and QUBO models for prime factorization | |
JP6585846B2 (ja) | 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム | |
CN113849828A (zh) | 经处理的数据的匿名生成和证明 | |
Solomonik et al. | Fast bilinear algorithms for symmetric tensor contractions | |
JP7091930B2 (ja) | テンソルデータ計算装置、テンソルデータ計算方法及びプログラム | |
Mounica et al. | Implementation of 5-Qubit approach-based Shor's Algorithm in IBM Qiskit | |
Park et al. | Efficient bit-parallel multiplier for irreducible pentanomials using a shifted polynomial basis | |
Ruffa et al. | Parallelized solution of banded linear systems with an introduction to p-adic computation | |
JP7173328B2 (ja) | 秘密除算システム、秘密計算装置、秘密除算方法、およびプログラム | |
Saccà et al. | Number of Minimal Hypergraph Transversals and Complexity of IFM with Infrequency: High in Theory, but Often Not so Much in Practice! | |
WO2022254599A1 (ja) | 秘密共役勾配法計算方法、秘密共役勾配法計算システム、秘密計算装置、およびプログラム | |
JP7405156B2 (ja) | 秘密選択積計算システム、秘密選択積計算方法、秘密計算装置、およびプログラム | |
Perera et al. | Sparse Matrix Based Low-Complexity, Recursive, and Radix-2 Algorithms for Discrete Sine Transforms | |
Sim et al. | Achieving GWAS with homomorphic encryption | |
JP2004077948A (ja) | ヤコビ群要素加算装置 | |
CN115276950B (zh) | 隐私数据的处理方法、装置和计算设备 | |
Kosovskaya | Teaching Students to Use the Gauss Method for Integer Matrices when Implemented on a Computer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230313 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20240213 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240226 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7456514 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |