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
一句话总结

本文表明,统计软件中广泛使用的伪随机数生成器(PRNG)——如R、Python和MATLAB中的梅森旋转算法——其状态空间不足,无法为中等至大型数据集生成所有可能的随机样本或排列,导致采样偏差。作者主张默认改用密码学安全的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位线性同余生成器)的状态空间大小,以评估其生成大小为k的总体中所有排列或样本的能力。
  • 评估依赖数据重排或对PRNG输出乘以常数并取整(即乘法取整方法)的采样算法的统计行为。
  • 比较乘法取整方法与位掩码方法在生成{1,…,m}上均匀分布整数时的表现,表明后者可避免偏差。
  • 测量理论上的均匀样本分布与给定PRNG及采样算法实际诱导分布之间的L₁距离,发现其可接近2。
  • 建议在统计软件中默认使用密码学安全PRNG(CS-PRNG),并非出于安全考虑,而是因其优越的统计特性。
  • 在Python中实现并发布一个原型CS-PRNG(cryptorandom),以证明其可行性,并推动R和Python生态系统的采纳。

实验结果

研究问题

  • RQ1对于中等规模的n和k,常见的PRNG(如梅森旋转算法)能否生成大小为n的总体中所有可能的大小为k的样本?
  • RQ2即使PRNG输出在w位整数上均匀分布,用于生成随机整数的乘法取整方法在多大程度上引入偏差?
  • RQ3理论上的样本均匀分布与标准软件实际生成的分布之间的统计差异(以L₁距离衡量)有多大?
  • RQ4由于PRNG在实际复制次数(如10⁵)下的限制,常见统计过程(如自 resampling、置换检验)中是否存在可检测的实际偏差?
  • RQ5使用密码学安全PRNG和位掩码算法能否消除或显著减少统计软件中的采样偏差?

主要发现

  • 具有有限状态空间的PRNG(包括梅森旋转算法)无法生成2084个及以上项目的全部排列,限制了其在大规模重采样中的应用。
  • 用于生成随机整数的乘法取整方法——R的sample()和Python的random.choice()所采用的方法——即使在PRNG输出均匀分布于w位整数时,也会产生非均匀分布。
  • 理论上的样本均匀分布与由有缺陷的PRNG和算法诱导的实际分布之间的L₁距离可高达接近2,表明存在显著的统计偏差。
  • 即使对于仅有几百个观测值的数据集,常见的PRNG也无法生成所有大小为k的可能子集,从而破坏了自 resampling 方法(如自 resampling 和置换检验)的有效性。
  • 用于生成随机整数的位掩码方法——即掩码特定位并拒绝超出范围的值——可生成均匀分布的整数,应取代乘法取整方法。
  • 密码学安全PRNG虽然速度较慢,但具有更优越的统计特性,应在统计软件中默认使用,以防止偏差,而较弱的PRNG仅作为可选功能提供。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。