【发布时间】:2014-12-11 18:45:36
【问题描述】:
如何使用相同的均值和方差将我的条形图与估计的负二项式密度函数叠加在真实数据上?
library(data.table)
library(ggplot2)
temp <- data.table(cbind(V1=c(1,2,3,4,5,9), N=c(50,40,30,20,10,2)))
ggplot(temp, aes(x=V1, y= N)) +
geom_histogram(stat="identity", binwidth = 2.5) +
scale_y_continuous(breaks=c(0, 100, 200, max(temp$N))) +
scale_x_continuous(breaks=c(0, 100, 200, max(temp$V1))) +
theme(panel.grid.minor.x=element_blank(),
panel.grid.major.x=element_blank()
)
我尝试添加stat_function(fun = dnbinom, args = list(size=1, mu = mean(temp$V1)), color="red"),但我看到的只是横坐标上的一条红线。 dpois(与lambda=mean(temp$V1))和dnorm(与mean = mean(temp$V1), sd = sd(temp$V1))相同。
也许我的参数化有误?
【问题讨论】:
-
您提到的三个分布函数中,只有
dnorm()带参数mean和sd。您是否尝试过更改stat_function()调用中的参数以匹配dnbinom()的要求? -
很好的提示,谢谢。事实上,我错过了这些分布的参数化。现在至少我有一条红线。
-
红线的平坦度可能是比例问题——密度函数层的最大 y 值应小于 1,而直方图层的最大 y 值为 50。一种解决方案可能是使用
aes(x=V1, y= N/sum(temp$N))之类的东西重新缩放直方图。