绘制密度图以显示可能性

Plotting density graph to show likelihood

我想绘制概率密度分布以进行似然计算(在贝叶斯统计中)。 Theta代表真实成功率。

如果我尝试绘制概率以进行似然计算:

  k <- 10   # number of successes
  n <- 100  # number of trials
  likelihood <- as.data.frame(dbinom(x=k, size=n, prob=seq(0.0001, 0.9999, length.out=10000), log = FALSE))
  ggplot(likelihood, aes(x=likelihood[,1])) + geom_density(fill="lightgreen") +
    labs(title = "Theta 1 Likelihood", x = "Proportion", y = "Density")

生成的图如下:

发生这种情况是因为概率值的密度值非常高并且以 0 为中心,即可能性值为 0.0001、0.0002、0.0003 等的可能性非常低。 prob=seq(0.1, 0.9, length.out=10) 看起来稍微好一点,但仍然不是我想要的。

有没有办法更改图表,使其能够以更直观的分布方式绘制概率图?我希望能够在不绘制直方图的情况下做到这一点。这是我想要达到的目标图表:

一个朋友irl告诉我,我本质上是在计算一个密度的密度;我正在从密度分布 (dbinom) 中获取密度图。所以我应该做的是绘制 x 对 y,而不是绘制密度分布。这个可以用geom_point来完成(点太多了,看起来像一条曲线):

k <- 10   # number of successes
n <- 100  # number of trials
proportion <- seq(0.0001, 0.9999, length.out=10000)
density <- dbinom(x=k, size=n, prob=seq(0.0001, 0.9999, length.out=10000), log = FALSE)
likelihood <- as.data.frame(cbind(proportion, density))
ggplot(likelihood1, aes(x=likelihood1[,1], y=likelihood1[,2])) + geom_point(size = 0.1) +
  labs(title = "Theta 1 Likelihood", x = "Proportion", y = "Density")

使用 'ggplot' 的更简单替代方法包括:

plot(proportion, density)
qplot(proportion, density)