Skip to main content
QUICK REVIEW

[論文レビュー] Random Sampling: Practice Makes Imperfect

Philip B. Stark, Kellie Ottoboni|arXiv (Cornell University)|Oct 25, 2018
Chaos-based Image/Signal Encryption参考文献 13被引用数 5
ひとこと要約

この論文は、R、Python、MATLAB で広く使われている擬似乱数生成器(PRNG)—特にメルセンヌ・ツイスタ—が、中程度から大きなデータセットにおけるすべての可能なランダムサンプルや順列を生成するのに十分な状態空間を持たないことが示されており、その結果、サンプリングにバイアスが生じることを明らかにした。著者らは、標準的なPRNGの代わりに暗号的に安全なPRNGをデフォルトで採用し、誤った乗算・切り捨て法の代わりにビットマスク法を用いることで、推論タスクにおける統計的正確性と再現性を著しく向上させることを提言している。

ABSTRACT

The pseudo-random number generators (PRNGs), sampling algorithms, and algorithms for generating random integers in some common statistical packages and programming languages are unnecessarily inaccurate, by an amount that may matter for statistical inference. Most use PRNGs with state spaces that are too small for contemporary sampling problems and methods such as the bootstrap and permutation tests. The random sampling algorithms in many packages rely on the false assumption that PRNGs produce IID $U[0, 1)$ outputs. The discreteness of PRNG outputs and the limited state space of common PRNGs cause those algorithms to perform poorly in practice. Statistics packages and scientific programming languages should use cryptographically secure PRNGs by default (not for their security properties, but for their statistical ones), and offer weaker PRNGs only as an option. Software should not use methods that assume PRNG outputs are IID $U[0,1)$ random variables, such as generating a random sample by permuting the population and taking the first $k$ items or generating random integers by multiplying a pseudo-random binary fraction or float by a constant and rounding the result. More accurate methods are available.

研究の動機と目的

  • 統計ソフトウェアで一般的に使われている擬似乱数生成器(PRNG)が、現代のサンプリング問題に対して十分であるかどうかを調査すること。
  • PRNGの出力が完全に独立同分布のU[0,1)変数であると仮定するサンプリングアルゴリズムが引き起こす統計的バイアスを暴露すること。
  • メルセンヌ・ツイスタのようなPRNGが、中程度のサイズのデータセットですらすべての順列やサンプルを生成できないこと、その理由は状態空間が限られているためであることを実証すること。
  • 乗算・切り捨て法による整数の生成方法の欠陥を特定・批判すること。この方法は、PRNGの出力が一様分布であっても、非一様な分布を生じさせる。
  • 統計ソフトウェアにおける最良の実践法を提言すること。具体的には、暗号的に安全なPRNGへの移行と、整数生成におけるビットマスク法の採用を推奨すること。

提案手法

  • 一般的なPRNG(例:メルセンヌ・ツイスタ、32ビット LCG)の状態空間の大きさを分析し、サイズnの母集団からサイズkの順列やサンプルをすべて生成できるかを評価すること。
  • データの順列を生成するか、PRNGの出力を定数倍して四捨五入する(乗算・切り捨て法)という方法に依存するサンプリングアルゴリズムの統計的挙動を評価すること。
  • 乗算・切り捨て法と比較して、{1,…,m} 上で一様分布の整数を生成するビットマスク法の性能を評価し、後者の方がバイアスを回避できることを示すこと。
  • 理論上の一様分布と、特定のPRNGおよびサンプリングアルゴリズムによって生じる実際の分布との間のL₁距離を測定し、その値が2に近づく可能性があることを明らかにすること。
  • 統計ソフトウェアにデフォルトで暗号的に安全なPRNG(CS-PRNG)を採用することを提言する。セキュリティのためではなく、優れた統計的性質を求めるためである。
  • Python用にプロトタイプのCS-PRNG(cryptorandom)を実装・公開し、RやPythonのエコシステムへの導入可能性を示し、採用を促進すること。

実験結果

リサーチクエスチョン

  • RQ1中程度のnとkに対して、メルセンヌ・ツイスタのような一般的なPRNGは、母集団サイズnからサイズkのすべての可能なサンプルを生成できるか?
  • RQ2PRNGの出力が一様分布である場合でも、整数を生成するための乗算・切り捨て法がどれほどバイアスを生じるか?
  • RQ3理論上のサンプルの一様分布と、標準的なソフトウェアが生成する実際の分布との間の統計的乖離(L₁距離)はどの程度か?
  • RQ4実際の再現回数(例:10⁵)において、PRNGの制限が一般的な統計的手法(例:ブートストラップ、順列検定)に実用的で検出可能なバイアスをもたらすか?
  • RQ5暗号的に安全なPRNGとビットマスク法の使用によって、統計ソフトウェアにおけるサンプリングバイアスを排除または著しく低減できるか?

主な発見

  • 有限の状態空間を持つPRNG(メルセンヌ・ツイスタを含む)は、2084個以上の要素のすべての順列を生成できないため、大規模なリサンプリングに制限が生じる。
  • Rのsample() やPythonのrandom.choice() で使われている整数生成の乗算・切り捨て法は、PRNGの出力が一様分布であっても、非一様な分布を生じさせる。
  • 理論上のサンプルの一様分布と、誤ったPRNGおよびアルゴリズムによって生じる実際の分布との間のL₁距離は、最大でほぼ2に達する可能性があり、これは顕著な統計的バイアスを示している。
  • 数100件の観測値を含むデータセットですら、一般的なPRNGがサイズkのすべての可能なサブセットを生成できないため、ブートストラップ法や順列検定の妥当性が損なわれる。
  • ビットマスク法(範囲外の値が得られた場合に再試行する)は、一様な整数を生成でき、乗算・切り捨て法に代わるべきである。
  • 暗号的に安全なPRNGは速度が遅いが、優れた統計的性質を備えており、統計ソフトウェアではデフォルトで採用すべきである。弱いPRNGは、オプションとしてのみ利用可能とするべきである。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。