我正在尝试为 R 中的二项式分布制作一个简单的图表。
所以问题是“有 20 名患者,成功对 4 名患者进行手术的概率是多少,(假设概率 = 0.8)。”
我所做的是
x <- rbinom(4, size= 20, prob = 0.8)
y <- pbinom(x, size = 20, prob = 0.8)
plot(y, type="l")
但我不确定这是否是绘制它的正确方法..
我正在尝试为 R 中的二项式分布制作一个简单的图表。
所以问题是“有 20 名患者,成功对 4 名患者进行手术的概率是多少,(假设概率 = 0.8)。”
我所做的是
x <- rbinom(4, size= 20, prob = 0.8)
y <- pbinom(x, size = 20, prob = 0.8)
plot(y, type="l")
但我不确定这是否是绘制它的正确方法..
一般来说,当您的问题类似于以下内容时,您的可视化问题就会出现:
假设成功的概率为 0.8,那么在 20 次操作中“至少”有 16 次成功的概率是多少?
这可以通过使用二项式公式来完成,即:
p(x=k) = choose(n, k) * .8^k * .2^(n-k) # equivalent to dbinom(k, n, prob=0.8)
我们需要相同的k = 16..20
值并将所有这些值相加,以得到 20 次中至少 16 次成功的概率。这是使用dbinom
as 完成的:
sum(dbinom(16:20, 20, prob=0.8)) # 0.6296483
请注意,在此成功率(0.8)下至少 4 次成功的概率仅为 1。也就是说,我们肯定会至少有 4 次成功。这就是为什么我选择了相对较高的成功率。
要绘制此图(使用ggplot2
):
df <- data.frame(x=1:20, prob=dbinom(1:20, 20, prob=0.8))
require(ggplot2)
ggplot(data=dd, aes(x=x,y=prob)) + geom_line() +
geom_ribbon(data=subset(dd,x>=16 & x<=20),aes(ymax=prob),ymin=0,
fill="red", colour = NA, alpha = 0.5)
这给了你类似的东西:
希望这可以帮助。