Suppose I have a data set provided by PRNG in a matrix form with 400,000 rows and 20 columns. Each row consists 20 unique integer values from 1 to 80. I need to check the correctness of the PRNG.
For this purpose I have used R with randtests package. First I combined all data in a single vector and run all tests on it. Then I run each test on each column separately. However, I obtained similar results: the first value is a p-value in first experiment and the following values are 5 smallest p-values from the second experiment:
- Bartels Rank Test: 0.9091; 0.064, 0.2218, 0.2297, 0.2573, 0.3964
- Cox Stuart Trend Test: 0.8822; 0.0701 0.0905 0.199 0.2407 0.2783
- Difference Sign Test: 0.7999; 0.0153 0.01867 0.0226 0.0283 0.1538
- Wald-Wolfowitz Runs Test: 0.9766; 0.126 0.1279 0.232 0.2546 0.2705
- Turning Point Test: 6e-09; 0.0037 0.0127 0.0175 0.0322 0.0672
- Mann-Kendall Rank Test: 2e-16; 1e-06 4e-05 2e-04 3e-04 5e-04
Since 2 tests are failed can I conclude that the numbers are not truly random? What can I do besides running this test?
Here is a link for the data in .csv format.: the first column indicates an ID of experiment and others are resulted values.
prng_bytes_source | dieharder -g 200 -a
, and also usually it expects a random byte stream, each byte should be between 0 and 255. You could construct that from your spreadsheet, but the transformation would leave you with even less data. $\endgroup$