同じランダムシードを繰り返し使用してバイアスを作成していますか?


31

私がこれまでに行ったほとんどすべての分析作業で、私は以下を使用します。

set.seed(42) 

Hitchhiker's Guide to the Galaxyへのオマージュです。しかし、同じシードを繰り返し使用することでバイアスを作り出しているかどうか疑問に思っています。


9
シードはどのように使用しますか?一般的なユースケースに応じて、答えの範囲は「はい」から「いいえ」です。
モモ

ブランドン、人々があなたに「はい」と答えたらどうしますか?あなたは何をしますか?不安を感じます。
ttnphns

@Momo忘れてしまい、結果を再現できないのではないかと恐れて、常に設定しているとだけ言っておきましょう。これは、独立したさまざまなタイプの実験にまたがります。はいといいえの両方のケースを理解していただければ幸いです。
ブランドンバーテルセン

@ttnphns学んだ教訓のように扱う?
ブランドンバーテルセン

結果に偏りがあるかどうかにかかわらず、結果を再現することは問題ありません。ただし、そのシードで生成されたサンプルサイズ(独立した実験または観測の数)が無限に近づかない限り、ある程度のバイアスは持続します。さらに2つの重要な点に注意してください。通常、結果を複雑にする疑似ランダムジェネレーターを使用します。結果は、使用するランダムジェネレーターの種類(たとえば、メルセンヌツイスターなど)によっても異なります。したがって、ランダムな何かの真剣な試行では、シードをランダムに設定する方が常に適切です。
ttnphns

回答:


31

RNGが適切であれば、バイアスはありません。 ただし、常に同じシードを使用することで、キャリアで実行するすべてのシミュレーション間で強力な相互依存関係を作成できます。これにより、異常な種類のリスクが発生します。

  • 毎回同じシードを使用することにより、常に非常に良い疑似ランダムシーケンスを取得してすべての作業がうまくいくか、または非常に低いがゼロではない確率で、常にかなり悪いシーケンスを使用し、シミュレーションはそうではありません基礎となるディストリビューションの代表として、それらがそうであると思われる場合。すべての作業が非常に良いか、すべてが非常にひどいです!

  • これとは対照的に、毎回真にランダムな開始シードを使用します。 非常に長い間、モデリングしている分布を表していないランダムな値のシーケンスを取得する場合がありますが、ほとんどの場合は問題ありません。自分の作品を(新しいシードを使って)再現しようとしたことがない場合、キャリアの中で1〜2回は誤解を招く結果になる可能性がありますが、ほとんどの場合は大丈夫です。

簡単で明白な解決策があります常に、常に別のシードで再起動して作業を確認してください。 2つのシードが同じ方法で誤って誤解を招く結果をもたらすことは事実上不可能です。

一方、有名な「個人の種」を持つことには並外れたメリットがありますそれは、あなたが正直である世界を示しています。シミュレーションにうそをつく、巧妙な微妙な方法は、事前に決められた結果が得られるまで繰り返すことです。R公正なコインでさえ、半分以上の時間で頭に着地する可能性が高いことを「実証」するための実用的な例を次に示します。

n.flips <- 100
seeds <- 1:10^3
#
# Run some preliminary simulations.
#
results <- sapply(seeds, function(seed) {
  set.seed(seed)
  mean(runif(n.flips) > 1/2)
})
#
# Now do the "real" simulation.
#
seed <- seeds[which.max(results)]
set.seed(seed)
x <- mean(runif(n.flips) > 1/2)
z <- (x - 1/2) * 2 * sqrt(n)
cat("Mean:", x, "Z:", z, "p-value:", pnorm(z, lower.tail=FALSE), "\n")

11061007550p=0.000004

その意味は魅力的で重要です。 たとえば、無作為化二重盲検比較試験に誰を募集するのか、そしてどの順序で(私が大学の教授として捕虜の学部生または実験用のネズミのグループをテストできるのか)事前に知っていた場合、事前に、このような一連のシミュレーションを実行して、「証明する」ことを望んでいたものを好むように、生徒をより自分の好みに合わせたグループを見つけることができました。以前に計画した順序とそのシードを実験計画含めることができました実験を実施し、それによって批判的な評論家が弾eachすることはできなかった手順を作成しましたが、それでも私の好意でデッキを積み重ねました。(このトリックの変種を使用して信頼性を得る疑似科学のブランチはすべてあると思います。実際にコンピューターを制御するためにESPを使用したと思いますか?あなたと距離を置いて行うこともできます!)

デフォルトのシードがわかっている人は、このゲームをプレイできません。

私の投稿の大部分が証明しているように、私の個人的なシードは17です(現在、シードを設定する161の投稿のうち155がこれを使用しています)。でR、私はそれで作成する(結局のところ)最も小さなデータセットが強い外れ値を持っているので、との仕事に難しい種です。それは悪い特性ではありません...。


5
17

4
@Matthewそれは、ある夏前に数論を研究していた数学に興味を持っている高校生のグループにさかのぼります。私が思い出すように、1つは冗談のように17を典型的な整数として提案し、私たちのグループはこれについて多くの合理化をすぐに見つけました。この数には、ガウスが17角形の構築可能性を発見したなど、注目に値する興味深い数学的および歴史的な特性があります。Rの動作は純粋に偶然です。
whuber

4
@Matthew BTW、私の種はブランドンのものに関連しています:サイズ17以下の明確な整数素数の正確に42の順序のペアがあります:-)。
whuber

8
以前は、パーティートリックとして定規とコンパスを使用して17角形を作成できました。さて、右の定義のためのパーティー私は推測する...
マシュードゥルーリー

1
@MatthewDrury彼らはあなたのパーティーでボトルをポピン
ブランドンバーテルセン

2

上記のように、良いRNGは同じシードを使用することでバイアスを生成しません。ただし、結果の間には相関関係があります。(同じ擬似乱数が各計算を開始します。)これが重要かどうかは数学の問題ではありません。

同じシードを使用することは、デバッグ用または相関結果が必要であることがわかっている場合には問題ありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.