【问题标题】:R question about plotting probability/density histogram the right way关于以正确方式绘制概率/密度直方图的 R 问题
【发布时间】:2011-08-25 06:24:08
【问题描述】:

我有一个以下矩阵 [500,2],所以我们有 500 行和 2 列,左边的给出了 X 观察的索引,右边给出了这个 X 成真的概率,所以 -典型的概率密度关系。

所以,我的问题是,如何正确绘制直方图,使 x 轴为 x 索引,y 轴为密度(0.01-1.00)。估计器的带宽为 0.33。

提前致谢!

整个数据的结尾是这样的:只是为了一点方向

[490,]  2.338260830 0.04858685
[491,]  2.347839477 0.04797310
[492,]  2.357418125 0.04736149
[493,]  2.366996772 0.04675206
[494,]  2.376575419 0.04614482
[495,]  2.386154067 0.04553980
[496,]  2.395732714 0.04493702
[497,]  2.405311361 0.04433653
[498,]  2.414890008 0.04373835
[499,]  2.424468656 0.04314252
[500,]  2.434047303 0.04254907

@每个人, 是的,我之前做过估计,所以..带宽就是我提到的,数据是从低值到高值排序的,所以开始的概率分别是 0,22,峰值约为 0,48,在0,15 结束。

带有密度的线像魅力一样绘制,但我还要做的是绘制直方图!那么,我该如何做到这一点,正确地对块进行排序(将数据拆分成盒子​​等......)

有什么建议吗?

这是估计后的一部分数据,所有值都是离散的,所以我假设可以创建直方图..,希望如此。

[491,] 4.956164 0.2618131
[492,] 4.963014 0.2608723
[493,] 4.969863 0.2599309
[494,] 4.976712 0.2589889
[495,] 4.983562 0.2580464
[496,] 4.990411 0.2571034
[497,] 4.997260 0.2561599
[498,] 5.004110 0.2552159
[499,] 5.010959 0.2542716
[500,] 5.017808 0.2533268
[501,] 5.024658 0.2523817

最好的问候, 感谢快速响应!(鞠躬)

这项工作的目的是为索引创建一个直方图,例如以 x25/x50 的方式对它们进行分组...并计算每个 25 或 50/100/150/200/ 的平均概率250 等作为盒子..?

【问题讨论】:

    标签: r plot histogram


    【解决方案1】:

    假设行的顺序是从 x 的最低值到最高值,看起来是这样,您可以使用默认的绘图命令,唯一需要更改的是类型:

    plot(your.data, type = 'l')
    

    编辑:

    好的,我不确定这是否比密度图更好,但可以做到:

    x = dnorm(seq(-1, 1, length = 500))
    x.bins = rep(1:50, each = 10)
    bars = aggregate(x, by = list(x.bins), FUN = sum)[,2]
    barplot(bars)
    

    在您的情况下,将 x 替换为矩阵第二列中的概率。

    EDIT2:

    再想一想,这只有在您的 500 行代表离散事件时才有意义。如果它们是沿连续分布函数的点,像我所做的那样将它们加在一起是不正确的。从数学上讲,我认为您无法仅使用该范围内的几个点来生成该范围的合并概率。

    【讨论】:

    • @Tyler,这就像一个魅力,非常感谢,我仍然需要做的一件事是将两列数据放在直方图中,x-axis=observations,y-axis =概率/密度...
    • 你好,为了更正确,我会发布估计后的值,第一篇文章中的值只是一个正态分布,所以现在我将发布估计值,它们完全是离散的。将在 2 分钟内编辑我的问题。
    • 你试过我的解决方案了吗?它应该满足您的要求:它计算每组 10 行的总概率,并将它们绘制在“直方图”中。如果要更改 bin 大小,则需要修改 x.bins。如所写,它将产生 50 组 10。您可以将 50 和 10 替换为您喜欢的任何数字,只要它们的乘积为 500(即 1:20,每个 = 25;1:100,每个 = 5)。
    • 第三行给出错误:aggregate.data.frame(as.data.frame(x), ...) 中的错误:参数必须具有相同的长度可能我无法正确定义它?
    • 我已经做到了,我现在得到了条形图,它们看起来就像一条“胖”的 Gassian 曲线。 “中间”观察的概率最高,但有一点是错误的,y 轴是 1-6,x 轴没有名字......
    【解决方案2】:

    假设 M 是矩阵。这不就是:

    plot(x=M[ , 1], y = M[ , 2] )
    

    您已经完成了密度估计,因为这不是原始数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-09
      • 2013-02-02
      • 2013-06-29
      • 2014-11-29
      • 1970-01-01
      • 1970-01-01
      • 2017-11-26
      • 2017-07-17
      相关资源
      最近更新 更多