与R中的概率混淆
我对R完全陌生,我遇到一个问题,问题的代码是“a=runif(1)<.2” 这是否意味着发生的概率为0.2或0.8?与R中的概率混淆,r,probability,R,Probability,我对R完全陌生,我遇到一个问题,问题的代码是“a=runif(1)
runif(1)
将从0和1之间的均匀分布中为您提供1个样本:
runif(1)
[1] 0.04113232
然后将其与0.2
进行比较,并返回一个布尔值,即“我的采样值是否小于0.2?”
runif(1)<.2
[1] 假的
您可以通过运行随机统一函数10000次并在表格中查看结果来查看它的运行情况:
set.seed(2021)
table(runif(1:10000) < 0.2)
20%为真a为真的概率为0.2为清晰起见,第一个代码块中的数字(
0.0411
)与第二个代码块中生成的数字(我们没有看到)不同。不能推断0.0411<0.2
将返回FALSE
。(这是一个技术性问题,但由于OP在整个表达式上不清楚,我认为这可能是有益的。)在每次执行随机函数之前设置种子是解决这一问题的一种方法<代码>设定种子(2021年);runif(1);#0.4512674
set.seed(2021)
table(runif(1:10000) < 0.2)
FALSE TRUE
8044 1956