【问题标题】:Tossing 3 fair coins in R在R中扔3个公平的硬币
【发布时间】:2019-03-08 07:46:57
【问题描述】:

X = 投掷三枚硬币时出现的正面数。
P(X=1)E(X)

说,我想在 R 中使用 sample()replicate() 函数来解决这个问题,即使有一个名为 rbinom() 的函数。

我的尝试:

noOfCoinTosses = 3;
noOfExperiments = 5;
mySamples <-replicate(noOfExperiments,
                    {mySamples <- sample(c("H", "T"), noOfCoinTosses, replace = T, prob=c(0.5, 0.5))
                    })
headCount = length(which(mySamples=="H"))
probOfCoinToss <- headCount / noOfExperiments   # 1.6
meanOfCoinToss = ??

关于 P(X),我是否走在正确的轨道上?如果是,我怎样才能找到 E(X)

【问题讨论】:

  • 假设您正在尝试从数据中计算 E(X),您可能只是在寻找 mean(colSums(mySamples == "H"))

标签: r probability


【解决方案1】:

mySamples 中的结果存储每列的实验,因此您必须计算每列出现的 head。那么概率就是实验的频率/nr,而在这种情况下的平均值就是频率:

noOfCoinTosses = 3;
noOfExperiments = 5;
mySamples <-replicate(noOfExperiments,
                      {mySamples <- sample(c("H", "T"), noOfCoinTosses, replace = T, prob=c(0.5, 0.5))
                      })
headCount <- apply(mySamples,2, function(x) length(which(x=="H")))
probOfCoinToss <- length(which(headCount==1)) / noOfExperiments   # 1.6
meanOfCoinToss <- length(which(headCount==1))

当你想计算一个真正的平均值时,你可以把它放到一个函数中并复制n 次。那么平均值将成为复制的meanOfCoinToss的平均值

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多