【问题标题】:Finding 15th and 85th percentile in matlab在 matlab 中找到第 15 和第 85 个百分位数
【发布时间】:2013-10-28 16:03:59
【问题描述】:

我想出了一个 matlab 代码来绘制概率密度和累积图。我已经使用 matlab 来计算标准差和平均值。 我的下一个任务是找到累积图的第 15 个和第 85 个百分位。我尝试使用 'prctile (prob, 15)' 来计算第 15 个百分位数,但它似乎与我从图中观察到的值不同。

还有其他方法可以找到第 15 个百分位和第 85 个百分位吗?

【问题讨论】:

    标签: matlab percentile


    【解决方案1】:

    如果您有统计工具箱,请使用 percentile 函数(输入 help prctile)。
    http://www.mathworks.com/help/stats/prctile.html

    或者自己写!百分位数只是排序后的数据,并且值最接近您想要的百分位数(例如,如果您有 1000 个值,则您的第 15 个百分位数将是 (15/100)*1000=150th 值!确保您对数据进行排序从小到大。

    有一种特殊的方法可以处理样本之间的值,但这取决于您使用的定义。有些取最近的,有些取两个样本之间的平均值,还有一些计算它们与样本的接近程度并取一个与其成线性比例的值。

    【讨论】:

      【解决方案2】:

      这应该会为您提供 15% 和 85% 的百分位值,正如您在累积图中看到的那样:

      15_percentile = prob(find(prob<prctile(prob,15),1));
      85_percentile = prob(find(prob>prctile(prob,85),1,'last'));
      

      【讨论】:

        【解决方案3】:

        有几种方法可以计算百分位数(请参阅http://en.wikipedia.org/wiki/Percentile

        这里的问题是 MatLab 和 Excel 不同意(Excel 使用美国国家标准与技术研究所采用的定义......也是 R 的默认值)......如果您交换数据和MatLab 和 Excel 之间的分析。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-11-03
          • 2010-11-10
          • 2023-02-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-08-07
          相关资源
          最近更新 更多