计算相关性并执行 prng 测试的拟合优度

Computing correlations and performing goodness of fit for prng testing

我正在阅读对伪随机数生成器测试的描述,并尝试在 C 中实现该测试。不过有一件事我挂断了。问题文字如下:

Applies a correlation test on the Hamming weights of successive blocks of L bits. Let Xj be the Hamming weight (the numbers of bits equal to 1) of the jth block, for j = 1, . . . , n. The test computes the empirical correlation between the successive Xj’s,

Under H0, as n ⇢ infinity, p̂ * sqrt(n - 1) has asymptotically the standard normal distribution. This is what is used in the test. The test is valid only for large n.

现在,我的计划是计算此检验统计量并使用 Anderson–Darling 检验对正态分布进行拟合优度检验。但是,对于如何从这个单一测试统计数据中获得分布,我有点困惑。根据我的理解,对于我的全部位 n,我只会得到一个 。那么我将只得到一个测试统计数据 p̂ * sqrt(n - 1)。我应该如何将其与正态分布进行比较?想法是将我的数据集分解成多个块,每个块都有自己的n,计算每个块的测试统计量,然后将此分布与标准正态分布进行比较?我只是想确保我正确理解 的计算。

频率假设检验涉及确定在原假设为真的假设下观察检验统计值的可能性。如果检验统计值的可能性很大,则不拒绝原假设。如果检验统计值为'not very likely',则拒绝零假设。 'not very likely'的含义指定为测试的置信度,α.

根据您的文字,在原假设下 T = p̂ * sqrt(n - 1) 渐近分布为标准正态分布 T ~ N(0, 1)。所以在两个假设下进行检验:

Null: T = 0
Alternate: T <> 0

然后用你观察到的单个 值:

  1. 计算t = p̂ * sqrt(n - 1).
  2. 计算 p = P(|T| > |t|),即在值 |t|.
  3. 处找到 N(0, 1) 的尾部概率
  4. 如果 p 低于您的置信水平,则拒绝原假设而支持备择假设。

例如,假设您生成了一个 n=10001 随机数序列,并根据该序列计算出一个 0.025。要确定该值在 α = 0.05 显着性水平上的显着性:

  1. 计算t = p̂ * sqrt(n - 1) = 0.025 * sqrt(10001 - 1) = 2.5
  2. 计算p = P(|T| > |t|) =P(|T| > 2.5) = 0.01242
  3. p < α 以来,证据支持拒绝原假设。

如果你想执行perform a goodness of fit test to the normal distribution,这意味着你必须有很多采样高斯值。因此,如果 p̂ * sqrt(n - 1) 渐近 N(0,1),则单次测试 运行 将产生单个数字。因此,如果您有基于 RNG 的软件进行测试,您可以继续使用另一个 n 样本并获得另一个随机 N(0,1) 数字等。如果您已经从某些中获得 N 数字硬件设备,你必须把它分成块,运行 测试,从每个块你会从 N(0,1) 中得到一个数字,然后你 运行 分布测试。

论文:谨防线性同余生成元 乘数形式为 a = +-2q +-2r PIERRE L’ECUYER 和 RICHARD SIMARD,AACM,1999

如果你需要,我有一份