从 R 中的抛硬币模拟计算观测值

Calculating observed values from a coin-toss simulation in R

我有一个数据框,它是通过 运行 模拟抛两次硬币 1000 次而编译的。

即每次测试都会抛出两枚硬币。测试重复 1000 次。

头是 1,尾是 2。

这是数据框的预览。

       X1   X2
1   X1  2   1
2   X2  1   1
3   X3  1   2
4   X4  1   1
5   X5  1   1
6   X6  1   2
7   X7  1   2
8   X8  1   2
9   X9  1   1
10  X10 2   1

它包含 2 个变量的 1000 个 obs。

我想计算以下条件下的观测值:

  1. 两个硬币都是正面的几率

    sum(df.sim$X1 == 1 & df.sim$X2 == 1)/1000
    
  2. 两枚硬币不同的几率

    sum(df.sim$X1 == 2 & df.sim$X2 == 1)/1000
    
  3. 至少一枚硬币正面朝上的几率。

    不确定...

我如何计算第 3 个条件的观测值,我是否正确计算了前两个条件的观测值。

我知道我应该得到的条件值如下

  1. 25%

  2. 50%

  3. 75%

试试这个

df <- df.sim[X1] + df.sim[X2]
length(df[df == 3])/1000

对于 #2,您的方法没有考虑第一枚硬币何时为正面,何时为第二枚硬币为反面。但这种方法行得通:

mean(df.sim$X1 != df.sim$X2)

对于#3,您可以执行与#1 相同的操作,但使用 | (OR) 而不是 & (AND)。

mean(df.sim$X1 == 1 | df.sim$X2 == 1)

请注意,使用 mean 而不是 sum 可以让您跳过 /1000 部分。