R:计算至少抽到 1 个红色弹珠的概率
R: calculating the probability of drawing at least 1 red marble
假设我的人口中有 n 个弹珠,其中只有 1% 是红色的。在抽取 30 次的样本中,我抽到至少 1 个红色弹珠的概率是多少?
我知道 P(至少 1 个红色弹珠)= 1 - P(没有红色弹珠)
我用 R 写了一个函数
pMarble = function(n){
1-(choose(n-ceiling(0.01*n), 30)/choose(n, 30))
}
该函数接受 1 个参数,即总体中弹珠的数量,我使用 sapply 迭代 n
的不同值
n = 100:1000
toplot = sapply(n, pMarble)
plot(n, toplot)
为什么剧情不连贯?我认为这只是一个递减的连续函数。随着弹珠总数的增加,假设我只绘制了 30 个弹珠,那么绘制至少 1 个红色弹珠(以 1% 的频率出现在人群中)的概率会单调递减吗?为什么我看到不连续?
Suppose my population has n marbles, and only 1% of them are red. In a sample of 30 draws, what's the probability that I draw at least 1 red marble?
你是对的,至少有 1 个红色弹珠的概率是 1-Pr(no marbles)
;对于二项式,实际上是这样的(因为平局中的各个弹珠选择是独立的)30 次抽取 n
弹珠中没有弹珠的概率与单次没有弹珠的概率相同绘制 30n
个弹珠...所以我们有 1-(1-p)^(30n)
.
p <- 0.01
par(las=1,bty="l") ## cosmetic
curve(1-(1-p)^(30*x),from=0,to=100,
xlab="Number of 30-marble draws",ylab="prob(>0 marbles)")
让我们针对单个案例进行实证测试:
(1-(1-p)^(30*3)) ## 3 draws, 0.595
set.seed(101)
mean(replicate(100000,
any(rbinom(3,prob=0.01,size=30)>0)))
## 0.59717
假设我的人口中有 n 个弹珠,其中只有 1% 是红色的。在抽取 30 次的样本中,我抽到至少 1 个红色弹珠的概率是多少?
我知道 P(至少 1 个红色弹珠)= 1 - P(没有红色弹珠)
我用 R 写了一个函数
pMarble = function(n){
1-(choose(n-ceiling(0.01*n), 30)/choose(n, 30))
}
该函数接受 1 个参数,即总体中弹珠的数量,我使用 sapply 迭代 n
的不同值n = 100:1000
toplot = sapply(n, pMarble)
plot(n, toplot)
为什么剧情不连贯?我认为这只是一个递减的连续函数。随着弹珠总数的增加,假设我只绘制了 30 个弹珠,那么绘制至少 1 个红色弹珠(以 1% 的频率出现在人群中)的概率会单调递减吗?为什么我看到不连续?
Suppose my population has n marbles, and only 1% of them are red. In a sample of 30 draws, what's the probability that I draw at least 1 red marble?
你是对的,至少有 1 个红色弹珠的概率是 1-Pr(no marbles)
;对于二项式,实际上是这样的(因为平局中的各个弹珠选择是独立的)30 次抽取 n
弹珠中没有弹珠的概率与单次没有弹珠的概率相同绘制 30n
个弹珠...所以我们有 1-(1-p)^(30n)
.
p <- 0.01
par(las=1,bty="l") ## cosmetic
curve(1-(1-p)^(30*x),from=0,to=100,
xlab="Number of 30-marble draws",ylab="prob(>0 marbles)")
让我们针对单个案例进行实证测试:
(1-(1-p)^(30*3)) ## 3 draws, 0.595
set.seed(101)
mean(replicate(100000,
any(rbinom(3,prob=0.01,size=30)>0)))
## 0.59717