如何绘制以相同均值为中心的二项式PDF分布

时间:2017-03-09 01:23:56

标签: r ggplot2

我试图绘制几个二项分布并显示随着N的增加,曲线看起来越来越像正常。我尝试过使用dbinom,但这就是我得到的:

Screebshot of binominal distribution graph

这是我用来制作此发行版的代码:

x <- -5:250
y10 <- dbinom(x, 10, 0.5)
y30 <- dbinom(x, 30, 0.5)
y60 <- dbinom(x, 60, 0.5)
y100 <- dbinom(x, 100, 0.5)
ynorm <- dnorm(x, mean=-1, sd=1)

y10 <- y10 * sqrt(y10) / 0.8
y30 <- y30 * sqrt(y30) / 0.8
y60 <- y60 * sqrt(y60) / 0.8
y100 <- y100 * sqrt(y100) / 0.8

y10 <- y10[7:17]
y30 <- y30[17:27]
y60 <- y60[32:42]
y100 <- y100[52:62]

plot(range(0, 10), range(0, 0.5), type = "n")]
lines(ynorm, col = "red", type = "l")
lines(y10, col = "blue", type = "l")
lines(y30, col = "orange", type = "l")
lines(y60, col = "green", type = "l")
lines(y100, col = "yellow", type = "l")

有谁知道如何正确调整R中的二项分布?

理论上,1000的N应该使它看起来像正态分布,但我不知道如何到达那里,我已经尝试/未能使用ggplot2 :(

1 个答案:

答案 0 :(得分:1)

您可以重新缩放x值,以便x==0始终出现在每个二项密度的峰值密度处。您可以通过找到每个密度的密度最大的x值来完成此操作。例如:

library(ggplot2)
theme_set(theme_classic())
library(dplyr)

x <- -5:250
n = c(6,10,30,60,100)
p = 0.5

binom = data.frame(x=rep(x, length(n)), 
                   y=dbinom(x, rep(n, each=length(x)), p),
                   n=rep(n, each=length(x)))

ggplot(binom %>% filter(y > 1e-5) %>% 
         group_by(n) %>%
         mutate(x = x - x[which.max(y)]), 
       aes(x, y, colour=factor(n))) +
  geom_line() + geom_point(size=0.6) +
  labs(colour="n")

enter image description here

在参考您的评论时,除了二项密度之外,还有一种方法可以添加正常密度:二项分布的均值为n*p,其中n是试验次数{ {1}}是成功的概率。方差为p。因此,对于上面的每个二项式密度,我们希望具有相同均值和方差的正常密度。我们在下面创建这些数据框,然后将二项式和正常密度一起绘制。

首先,创建一个包含更高密度点的x值的新向量,以反映正态分布是连续的而不是离散的事实:

n*p*(1-p)

现在我们创建一个正常密度的数据框,其方式和方差与上面的二项密度相同:

x = seq(-5,250,length.out=2000)

所以现在我们有两个数据框要绘制。我们仍在normal=data.frame(x=rep(x, length(n)), y=dnorm(x, rep(n,each=length(x))*p, (rep(n, each=length(x))*p*(1-p))^0.5), n=rep(n, each=length(x))) # Cut off y-values below ymin ymin = 1e-3 的主要调用中添加binom数据框。但是在这里我们还添加了对ggplot的调用以绘制正常密度。我们给geom_line数据框geom_line。此外,对于此图,我们使用normal来强调二项密度的离散点(您也可以使用geom_segment)。

geom_bar

这是新情节的样子。您可以通过各种方式更改缩放比例,并且可能还有许多其他方法可以对其进行调整,具体取决于您要强调的内容。

enter image description here