绘制密度图以显示可能性
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)
我想绘制概率密度分布以进行似然计算(在贝叶斯统计中)。 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)