【发布时间】:2013-10-28 16:03:59
【问题描述】:
我想出了一个 matlab 代码来绘制概率密度和累积图。我已经使用 matlab 来计算标准差和平均值。 我的下一个任务是找到累积图的第 15 个和第 85 个百分位。我尝试使用 'prctile (prob, 15)' 来计算第 15 个百分位数,但它似乎与我从图中观察到的值不同。
还有其他方法可以找到第 15 个百分位和第 85 个百分位吗?
【问题讨论】:
标签: matlab percentile
我想出了一个 matlab 代码来绘制概率密度和累积图。我已经使用 matlab 来计算标准差和平均值。 我的下一个任务是找到累积图的第 15 个和第 85 个百分位。我尝试使用 'prctile (prob, 15)' 来计算第 15 个百分位数,但它似乎与我从图中观察到的值不同。
还有其他方法可以找到第 15 个百分位和第 85 个百分位吗?
【问题讨论】:
标签: matlab percentile
如果您有统计工具箱,请使用 percentile 函数(输入 help prctile)。
http://www.mathworks.com/help/stats/prctile.html
或者自己写!百分位数只是排序后的数据,并且值最接近您想要的百分位数(例如,如果您有 1000 个值,则您的第 15 个百分位数将是 (15/100)*1000=150th 值!确保您对数据进行排序从小到大。
有一种特殊的方法可以处理样本之间的值,但这取决于您使用的定义。有些取最近的,有些取两个样本之间的平均值,还有一些计算它们与样本的接近程度并取一个与其成线性比例的值。
【讨论】:
这应该会为您提供 15% 和 85% 的百分位值,正如您在累积图中看到的那样:
15_percentile = prob(find(prob<prctile(prob,15),1));
85_percentile = prob(find(prob>prctile(prob,85),1,'last'));
【讨论】:
有几种方法可以计算百分位数(请参阅http://en.wikipedia.org/wiki/Percentile)
这里的问题是 MatLab 和 Excel 不同意(Excel 使用美国国家标准与技术研究所采用的定义......也是 R 的默认值)......如果您交换数据和MatLab 和 Excel 之间的分析。
【讨论】: