从 R 中二项分布的迭代创建直方图



以下是说明:创建 10,000 次迭代 (N = 10,000)rbinom(50,1, 0.5),n = 50,你的猜测p0 = 0.50(提示:你需要构造一个 for 循环)。绘制样本结果的直方图。然后绘制你的直方图上的星号。如果 pstar 不在直方图的极端区域,您将假设你的猜测是正确的,反之亦然。最后计算出概率p0

我知道如何创建 for 循环和 rbinom 函数,但除了绘制自定义点(我的猜测值)之外,我不确定如何将此信息传输到直方图上绘图。

我不是在为你做功课,但这应该让你开始。你没有说pstar应该是什么,所以我假设你对p的最大似然估计值感兴趣。

您创建了 10,000 个N=50二项式样本(不需要for循环):

sample <- lapply(seq(10^5), function(x) rbinom(50, 1, 0.5))

然后,p的 ML 估计值

phat <- sapply(sample, function(x) sum(x == 1) / length(x))

检查分布

require(ggplot)
ggplot(data.frame(phat = phat), aes(phat)) + geom_histogram(bins = 30)

并计算p0 < phat的概率。


编辑 1如果您坚持,您还可以使用 for 循环来生成样本。

sample <- list();
for (i in 1:10^5) {
    sample[[i]] <- rbinom(50, 1, 0.5);
}