これは、乱数であるべきものにバイアスを導入しますか?


11

ランダムに生成された、1千万以上の1と0を含むデータファイルがあるとします。

このファイルから、ランダムな10進整数のリストを作成します。

これは、この変換を行う計画です。

  1. 8000万桁を4つの2進数のグループに分けます。
  2. 各4桁のバイナリを10進数に変換します。
  3. 9より大きいすべての10進数値を破棄します。

これにより、0〜9のランダムな整数の文字列が生成されます。

ここに懸念があります。10から15の値に対応する4つの2進数の6つのグループを構成する24の2進数には、1が17、0が7のみ含まれます。この不均衡は、偶数と奇数の整数の分布に影響を及ぼしますか、または何らかの方法で10進数の最後の文字列のランダム性を損ないますか?

更新:投稿された回答から、上記で列挙した方法は適切であるようです。私はその結論に同意します。ただし、バイナリ文字列からゼロの2倍を超える数を削除しても、結果が奇数の少ない方に偏らない理由はまだわかりません。説明を求めます。


9
より効率的な方法があります。たとえば、ビット文字列を10のグループに分割し、それらを3桁表現の基数10に変換し、1000以上の値を持つものを破棄できます。これは、62.5%のビットではなく97.6%のビットを使用します。それ以上のことはできません。(681のグループを使用して、それらを205桁の10進数の文字列に変換し、ビットのほぼ99.7%を利用することができます。)
whuber

回答:


18

数えて見てみましょう。ファイルの作成により、すべての4ビット文字列は等しく可能性があります。そのような文字列は16個あります。どうぞ:

 0. 0000
 1. 0001
 2. 0010
 3. 0011
 4. 0100
 5. 0101
 6. 0110
 7. 0111
 8. 1000
 9. 1001
10. 1010
11. 1011
12. 1100
13. 1101
14. 1110
15. 1111

プロシージャは文字列10から15をスローします。したがって、実際に使用する場合は、0から9を選択することになります。どちらも希望どおりに可能性が高くなります。また、生成された10進数は4ビットの個別の文字列を使用し、すべてのビットが独立しているため、互いに独立しています。あなたの手順は、単純な一種の拒絶サンプリングを構成します。


5
私はその論理をはっきりと見ています。それでも、私は0よりも多くのバイナリ1を破棄していることを懸念しています。なぜその不均衡が影響を与えないのですか?
ジョエルW.

5
@JoelW私はあなたの議論を見ていないと思います。最終的な分布はビットではなく10進数に関係するため、ビットの分布は関係ありません。
コディオロジスト

7
これは正しいですが、問題の一部しか取り上げていません。質問の「ランダム性を妥協する...」の部分に対処するには、結果として得られる10進数字が優れた近似で独立していることも確認する必要があります。完全を期すために、その(明白な)結果については、1文で説明する価値があります。
whuber

7
ジョエル、どこから来たのかわかるよ。ここに誤解があるかもしれませんプロセスを元に戻すことはできません。 10進数のストリームからビットのストリームを再構築する場合は、8と9をすべて削除し、残りの桁を2進数の3進数に変換するなどの操作を行う必要があります。それはバランスを回復します。実際、この「往復」は、元のストリームを4ビットのニブルに分割し、それらの最上位ビットを破棄して、6000万ビットの均一に分散されたシーケンスを残すことになるのは簡単です。
whuber

1
@whuber十分に公正です。追加されました。
コディオロジスト2018年

4

破棄されるいくつかの値をシミュレートするだけでバイアスはありません。保持されるものを含むすべての値は同じ確率で生成されます。 ここに画像の説明を入力してください

上記のグラフのRコードは

generza=matrix(sample(0:1,4*1e6,rep=TRUE),ncol=4)
uniz=generza[,1]+2*generza[,2]+4*generza[,3]+8*generza[,4]
barplot(hist(uniz[uniz<10],breaks=seq(-0.5,9.5,le=11))$counts,col="steelblue")
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.