【问题标题】:Draw a histogram of a distribution with a discrete component绘制具有离散分量的分布的直方图
【发布时间】:2012-06-27 12:57:25
【问题描述】:

我正在使用SimPy 模拟一个简单的队列。关于系统的问题之一是访客的等待时间分布是什么。我所做的是绘制我在模拟过程中获得的样本的归一化直方图。

这种分布不是纯粹连续的,我们有一个非零概率等待时间正好为零,因此在左端附近出现峰值。我希望它从图片中以某种方式明显准确命中0 的实际概率是多少。现在,峰值的高度无法正确显示,高度甚至高于 1(原因是许多点都在接近零的小段上)。

所以问题是这种分布的一般可视化技术,这种分布是连续分布和离散分布的混合。

【问题讨论】:

  • 不确定本身是否有通用技术,但要做的一件小事就是在您显示的绘图中添加一个插图,并将区域放大到零附近。跨度>
  • 放大没有帮助,好像在放大时我会增加 hist 中的 bin 数量,峰的高度会越来越高。所以问题是我需要显示达到零的确切概率(等于零的元素的分数)并同时移除这个峰值,但不要改变直方图的其他部分(简单地过滤零将把所有的条都增加一点)。
  • 为什么不让主图保持原样,在插图上使用 0、1、2 的离散比例......在 y 轴上具有精确的概率?
  • 因为它是一个连续分布和一个离散分布的混合,它不是一个离散分布,恰好命中 2 的概率为零,只有 '0' 非零(抱歉有点重言式),所以我希望这个图表对于x > 0 来说既美观又流畅,但同时显示了达到零的确切概率。
  • 所以加权时间是连续的,但是分布在零处有一个delta函数峰值,是吗?然后我会做什么,我会为t>0 绘制一个等待时间的直方图(技术上:从足够小的 t 开始),并以不同的颜色将峰值恰好叠加在零处,并使用它自己的垂直比例(例如右侧y 轴)(如果需要)。

标签: python visualization distribution histogram data-visualization


【解决方案1】:

(基于对 OP 的 cmets 中的讨论)。

对于某个变量的分布,称之为t,它是离散和连续分量的混合体,我将 pdf 编写为一组 delta-peaks 和一个连续部分的总和,

p(t) = \sum_{a} p_a \delta(t-t_a) + f(t)

其中a 枚举离散值t_ap_at_a 的概率,f(t) 是分布的连续部分的pdf,因此f(t)dt 是@ 的概率987654329@ 属于[t,t+dt)

请注意,整个事情已归一化,\int p(t) =1,其中积分超出了t 的适当范围。

现在,为了可视化这一点,我将分离离散组件,并将它们绘制为离散值(作为窄箱或带有下降线的点等)。然后对于其余部分,我将使用直方图,您可以从上面的等式中知道正确的归一化:直方图下的面积总和应为 1-\sum_a p_a

我并没有声称这是 方式,这正是我会做的。

【讨论】:

  • 所以我必须先验地知道t_as?
  • 让我这样说:如果您知道t_as,这是我对如何可视化分布的建议(这是我对原始问题的理解)。如何找到t_a 是一个单独的问题,我怀疑这在很大程度上取决于问题的细节,并且在某些情况下,问题根本没有用纯数学术语很好地定义。
猜你喜欢
  • 1970-01-01
  • 2018-08-06
  • 2017-12-08
  • 2013-01-21
  • 1970-01-01
  • 2019-03-03
  • 2018-10-11
  • 1970-01-01
  • 2016-11-04
相关资源
最近更新 更多