抱歉可能是一个简单的问题,但我有点问题。
我创建了一个基于二项分布的直方图,其中均值= 0.65,sd = 0.015,含10000个样本。直方图本身看起来很好。但是,我需要在此基础上覆盖正态分布(具有相同的均值和标准差)。目前,我有以下内容:
qplot(x,data = prob,geom =“histogram”,binwidth = .05)+ stat_function(geom =“line”,fun = dnorm,arg = list(mean = 0.65,sd = 0.015))
分布显示,但它是TINY。这可能是因为平均值计数上升到近2,000,而正态分布要小得多。简而言之,它不像R自动执行的那样配备数据。有没有办法指定正态分布的线以适合直方图,或者是否有某种方法可以操纵直方图以适应正态分布?
提前致谢。
答案 0 :(得分:2)
@daroczig的答案是正确的,需要在绘制密度而不是计数时保持一致,但是:我很难看到你如何设法获得具有这些属性的二项式样本。特别是,二项式的平均值为n*p
,方差为n*p*(1-p)
,标准差为sqrt(n*p*(1-p))
,因此..
b.m <- 0.65
b.sd <- 0.015
计算方差:
b.v <- b.sd^2 ## n*p*(1-p)
计算p
:
## (1-p) = b.v/(n*p) = b.v/b.m
## p = 1-b.v/b.m
b.p <- 1-b.v/b.m
计算n
:
## n = n*p/p = b.m/b.p
b.n <- b.m/b.p
这会给n=0.6502251
,p=0.9996538
- 所以我看不出如何在没有n<1
的情况下获得这个二项分布,除非我弄乱了代数......
答案 1 :(得分:1)
“分布很小”,因为您正在计数上绘制密度函数。您应该在两个图中使用相同的度量标准,例如:
我尝试为您的示例生成一些数据:
x <- rbinom(10000, 10, 0.15)
prob <- data.frame(x=x/(mean(x)/0.65))
并将其绘制为密度函数:
library(ggplot2)
ggplot(prob, aes(x=x)) + geom_histogram(aes(y = ..density..), binwidth=.05) + stat_function(geom="line", fun=dnorm, arg=list(mean=0.65, sd=0.015))