gpt4 book ai didi

r - 更改值顺序时样本的 Set.seed 问题

转载 作者:行者123 更新时间:2023-12-03 23:39:20 25 4
gpt4 key购买 nike

set.seed(59)
mean(sample(c(12,7,5),7,prob = c(.3,.3,.4),replace = T))
[1] 9.571429}

set.seed(59)
mean(sample(c(5,7,12),7,prob = c(.4,.3,.3),replace = T))
[1] 8.142857
两个代码不应该返回相同的样本平均值,为什么不同?

最佳答案

好吧,首先考虑您忽略 prob= 的更简单的情况。

set.seed(59) 
sample(c(12,7,5),7,replace = T)
# [1] 5 12 12 5 5 12 5
set.seed(59)
sample(c(5,7,12),7,replace = T)
# [1] 12 5 5 12 12 5 12
因为你有不同的输入,你会得到不同的结果。但还要注意 sample函数实际上是从向量索引中采样,而不是向量的实际值。看看在第二个结果中,您基本上只是交换了 5s 和 12s。唯一重要的是输入向量的长度。如果你尝试
set.seed(59) 
sample(1:3,7,replace = T)
# [1] 3 1 1 3 3 1 3
看看你如何仍然得到相同的“accaaca”模式(中间值永远不会被选中)。这就是设置种子将为您做的事情。你真的只能得到完全相同的结果,所有其他参数都相同。
如果您更改向量中值的顺序,并交换概率,您将不会像 R 使用的那样从伪随机数生成器中获得相同的观察结果。看到它们是相同的统计分布根本不够“聪明”。然而,如果你一遍又一遍地抽取一堆样本,从长远来看,由于大数定律,它们将具有相似的平均值。

关于r - 更改值顺序时样本的 Set.seed 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66838570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com