【发布时间】:2020-05-12 02:30:19
【问题描述】:
我们知道sample 中的prob 参数用于分配权重概率。
例如,
table(sample(1:4, 1e6, replace = TRUE, prob = c(0.2, 0.4, 0.3, 0.1)))/1e6
# 1 2 3 4
#0.2 0.4 0.3 0.1
table(sample(1:4, 1e6, replace = TRUE, prob = c(0.2, 0.4, 0.3, 0.1)))/1e6
# 1 2 3 4
#0.200 0.400 0.299 0.100
在这个例子中,概率之和正好是 1 (0.2 + 0.4 + 0.3 + 0.1),因此它给出了预期的比率,但是如果概率之和不等于 1 怎么办?它会给出什么输出?我认为这会导致错误,但它提供了一些价值。
当概率总和大于 1 时。
table(sample(1:4, 1e6, replace = TRUE, prob = c(0.2, 0.5, 0.5, 0.1)))/1e6
# 1 2 3 4
#0.1544 0.3839 0.3848 0.0768
table(sample(1:4, 1e6, replace = TRUE, prob = c(0.2, 0.5, 0.5, 0.1)))/1e6
# 1 2 3 4
#0.1544 0.3842 0.3848 0.0767
当概率总和小于 1 时
table(sample(1:4, 1e6, replace = TRUE, prob = c(0.1, 0.1, 0.5, 0.1)))/1e6
# 1 2 3 4
#0.124 0.125 0.625 0.125
table(sample(1:4, 1e6, replace = TRUE, prob = c(0.1, 0.1, 0.5, 0.1)))/1e6
# 1 2 3 4
#0.125 0.125 0.625 0.125
正如我们所见,多次运行得到的输出不等于prob,但结果也不是随机的。在这种情况下,数字是如何分布的?它记录在哪里?
我尝试在互联网上搜索,但没有找到任何相关信息。我查看了?sample 的文档,其中有
可选的 prob 参数可用于给出一个权重向量,用于获取被采样向量的元素。它们的总和不必为 1,但它们应该是非负的且不全为零。如果 replace 为真,当有超过 200 个合理可能的值时使用 Walker 的别名方法 (Ripley, 1987):这给出的结果与 R
所以它说prob 参数不需要总和为 1,但不告诉当它不和为 1 时预期什么?我不确定我是否遗漏了文档的任何部分。有人知道吗?
【问题讨论】:
-
它们被归一化为一
-
是的,看看输出,这也是我的想法,但在文档中的任何地方都找不到。
-
也许在文档中使用了“probability weights”,而不仅仅是 probabilities。似乎与使用 权重向量 而非概率有关。