【发布时间】:2015-09-14 11:45:43
【问题描述】:
我用过代码
hist(x, probability=TRUE)
这给了我一个从 0 到 2 的 y 轴,名称为密度。我不明白这是什么意思。它是否积分为 1,总和为 1,或者 y 值等于多少?文档说“freq = NULL,probability = !freq”,但这对我来说没有意义。如果我不使用probability=TRUE,我会在y 轴上得到Frequency,但绘图的形状是相同的。
【问题讨论】:
我用过代码
hist(x, probability=TRUE)
这给了我一个从 0 到 2 的 y 轴,名称为密度。我不明白这是什么意思。它是否积分为 1,总和为 1,或者 y 值等于多少?文档说“freq = NULL,probability = !freq”,但这对我来说没有意义。如果我不使用probability=TRUE,我会在y 轴上得到Frequency,但绘图的形状是相同的。
【问题讨论】:
您可以将直方图保存到变量中并查看它。
x=rnorm(1000)
h<-hist(x)
h
$breaks
[1] -3.5 -3.0 -2.5 -2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
$counts
[1] 2 8 24 42 87 169 188 189 146 78 38 23 5 0 1
$density
[1] 0.004 0.016 0.048 0.084 0.174 0.338 0.376 0.378 0.292 0.156 0.076 0.046 0.010 0.000 0.002
$mids
[1] -3.25 -2.75 -2.25 -1.75 -1.25 -0.75 -0.25 0.25 0.75 1.25 1.75 2.25 2.75 3.25 3.75
$xname
[1] "x"
$equidist
[1] TRUE
attr(,"class")
[1] "histogram"
默认情况下,它会绘制频率(可以通过 h$counts 访问),这只是在每个间隔内获得的点数。点的总数等于向量的长度,你可以检查一下
sum(h$counts)
[1] 1000
如果您指定probability=TRUE,它将绘制每个点在每个区间内的概率。概率总和乘以条形宽度应该等于 1。在我们的例子中,条形宽度是 0.5,所以我们得到
sum(h$density*0.5)
[1] 1
【讨论】:
probability=TRUE 给出了概率。每个点都在每个区间内,那么我不明白这些值如何变得大于 1(我的轴是从 0-2,值大于 1)
sum(h$density*0.05) 确实等于 1。