【问题标题】:How do I create a histogram with a probability y-axis rather than a density y-axis?如何创建具有概率 y 轴而不是密度 y 轴的直方图?
【发布时间】:2015-09-13 20:05:33
【问题描述】:

我有一个向量(变量 dist),我想在其中绘制一个 bin 宽度为 7 个单位的直方图。这是dist的作业:

dist <- c(
#  0-6  7-13  14-20  21-27  28-34  35-41  42-48  49-55
#  ---  ----  -----  -----  -----  -----  -----  -----
                 16,
                 20,           29,
                 17,    27,    28,
                 19,    21,    34,
     3,          14,    26,    33,    35,    44,
     1,   11,    14,    21,    29,    38,    43,    55,
     4,   12,    18,    22,    32,    35,    48,    50
)

为了绘制直方图,我使用hist:

hist(dist, breaks=seq(0, 56, by=7)-0.5)

创建此图形:

到目前为止,一切都很好。 0 到 6 之间有三个数字,7 到 13 之间有两个数字,依此类推,如直方图所示。

现在,我使用 hist 和 prop=TRUE 参数创建以下图表:

我希望它显示垃圾箱的概率,而不是 y 轴上的密度。例如,值为 21 到 27 的 bin 的高度(或密度)为 0.02304147,计算如下:

dens_21_27 <- length(dist[dist > 20.5 & dist < 27.5])/length(dist)/7

这可以通过用这个高度画一条线来验证:

lines(c(-5, 56), c(dens_21_27, dens_21_27), col="#FF770070")

哪个画了

然而,我希望 y 轴显示一个数字落入 21 到 27 区间的概率,即

length(dist[dist > 20.5 & dist < 27.5])/length(dist)

或0.1612930。

这有可能吗?

【问题讨论】:

    标签: r histogram


    【解决方案1】:

    这是我过去用来将值强制为概率的包装器。

    probabilityplot<-function(x, ..., prob=T, ylab="Probability") {
        xx<-hist(x, yaxt="n", prob=prob, ylab=ylab , ...)
        bin.sizes<-diff(xx$breaks)
        if (any(bin.sizes != bin.sizes[1])) stop("bin sizes are not the same")
        marks<-axTicks(2)
        axis(2, at=marks, labels=marks*bin.sizes[1])
        xx$probabilities <- xx$density*bin.sizes[1]
        invisible(xx)
    }
    
    probabilityplot(dist,breaks=seq(0, 56, by=7)-0.5 )
    

    直方图旨在估计连续随机变量的密度,因此更倾向于密度而不是概率。

    【讨论】:

      【解决方案2】:

      您可以按直方图中断对组进行分类并制作条形图。

      bs <- hist(dist, breaks=seq(0, 56, by=7)-0.5, plot=F)$breaks
      probs <- table(cut(dist, bs)) / length(dist)
      barplot(probs, ylab="Probability", las=2)
      

      【讨论】:

        猜你喜欢
        • 2021-03-03
        • 2020-05-10
        • 2020-02-05
        • 1970-01-01
        • 2014-05-09
        • 2023-04-03
        • 2022-07-01
        • 2019-07-08
        • 2013-02-05
        相关资源
        最近更新 更多