我是否会一遍又一遍地使用相同的随机种子来产生偏见?


31

在我完成的几乎所有分析工作中,我都使用:

set.seed(42) 

这是对《旅行者指南》的致敬。但是我想知道是否通过一遍又一遍地使用相同的种子来产生偏见。


9
您如何使用种子?根据您的典型用例,答案范围从是到否。
Momo 2013年

布兰登,如果人们回答是,该怎么办?你会怎么做?我感到担心。
ttnphns 2013年

@Momo只是说我总是设置它,以免忘记它并且无法重现我的结果。这涉及独立和不同类型的实验。我希望能理解是与否。
布兰登·

@ttnphns像学到的教训一样对待它吗?
布兰登·贝特尔森

不论结果是否有偏,都可以重现结果。但是,除非您在该种子下产生的样本量(独立实验或观察的数量)接近有限,否则某些偏见将会持续。请注意两个重要的事情:我们通常使用随机生成器,这会使您的后果复杂化。后果还取决于您使用哪种类型的随机发生器(例如,梅森捻线机或什么?)。因此,对于严肃的随机试验,最好将种子设为随机。
ttnphns 2013年

Answers:


31

如果RNG有任何好处,则没有偏见。 但是,通过始终使用相同的种子,您将在您的职业生涯中执行的所有模拟之间建立强烈的相互依存关系。这会产生异常的风险。

  • 每次使用相同的种子,要么总是得到一个很好的伪随机序列,并且所有工作都进行得很顺利,要么-概率很低,但非零概率–您总是使用一个非常糟糕的序列,而模拟却没有作为您认为可能的基础分布的代表。您的所有工作都很好或者全部都太糟糕了!

  • 与每次使用真正随机的起始种子进行对比。 在很长一段时间内,您可能会获得一个不代表您正在建模的分布的随机值序列,但是大多数时候您会很好。如果您从未尝试过复制自己的作品(使用新种子),那么在您的职业生涯中可能会遭受一次或两次误导的结果,但是绝大多数时候您会没事的。

有一个简单而明显的解决方法:始终,总是通过重新启动另一个种子来检查工作。 两颗种子意外地以相同的方式产生误导性结果几乎是不可能的。

另一方面,拥有一个著名的“个人种子”有一个非凡的优点:它向世界展示了您正在诚实。进行模拟的一种狡猾,微妙的方法是重复进行模拟,直到模拟为您提供预定的结果。这是一个有效的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")

1个1061007550p=0.000004

其含义可能令人着迷且重要。 例如,如果我事先知道我将招募谁参加随机双盲对照试验,并且以什么顺序(作为大学教授测试一群圈养的大学生或实验鼠,我可能可以控制),那么事先,我可以运行这样的一组模拟来找到一个种子,该种子将学生按我的喜好分组,以偏爱我希望“证明”的内容。我可以在之前的实验计划中包含计划的订单和种子进行实验,从而创建了一个程序,没有任何严格的审阅者可以弹imp,尽管如此,我还是很赞成。(我相信伪科学的整个分支都使用此技巧的某些变体来获得信誉。您相信我实际上是使用ESP来控制计算机吗?我也可以与您距离很远!)

知道默认种子的人无法玩此游戏。

我的个人种子是17,占我职位证明的很大一部分(当前161个设置种子的职位中有155个使用此种子)。在R这是一个困难的种子用,因为(原来)最小型数据集我用它创造有很强的异常工作。这不是一个坏特性...。


5
17

4
@Matthew它回到一群对数学有共同兴趣的高中学生,他们在一个夏天前就在学习数论。我记得,其中一个开玩笑地提出将17作为原型整数,而我们小组很快就为此找到了许多合理化的理由,一些是数学上的兴趣,而有些是幽默的(至少从数学书呆子的角度来看)。该数字具有有趣的数学和历史属性,值得一提,例如高斯发现17-gon的可构造性。R的行为纯属偶然。
ub

4
@Matthew BTW,我的种子与布兰登的有关:正好有42个有序对,大小分别为17或更小:-)。
ub

8
我曾经能够用尺子和指南针构造一个17-gon作为聚会把戏。好吧,我猜对派对的正确定义是……
Matthew Drury

1
@MatthewDrury他们在您的聚会上喝了酒。
布兰登·贝特尔森

2

如上所述,良好的RNG不会因使用相同的种子而产生偏差。但是,结果之间将存在相关性。(相同的伪随机数将开始每次计算。)这是否重要与数学无关。

有时使用相同的种子是可以的:用于调试或当您知道需要相关结果时。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.