首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何插值值以填充百分位数范围?

如何插值值以填充百分位数范围?
EN

Stack Overflow用户
提问于 2017-11-21 10:21:32
回答 1查看 1.1K关注 0票数 1

我有第10-25百分位数范围的数值,即0.49,25-50百分位数是1.36 (这是峰值),50-75百分位数是0.18,>90百分位数是0.15

我想插值范围>5,5-10,75-90百分位数的值。如何在MATLAB中做到这一点?

如果我假设一个正态分布,其峰值是1.36 (第25至第50百分位数)(如图所示),如何插值未知百分位数范围的值?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-21 10:58:53

实际上,为了找到百分位数而执行插值对我来说不是很好。如果您正在处理一个normal distribution,并且它的参数(musigma)是已知的,那么您要寻找的是norminv函数(正式文档:https://mathworks.com/help/stats/norminv.html)。

X= norminv( P,mu,sigma)用对应的平均值mu和标准差σ在P中对应的概率计算出法向of的逆,σ中的参数必须是正的,P中的值必须在0 1区间。

例如,您如何找到包含95%标准正态分布值的间隔:

代码语言:javascript
运行
复制
norminv([0.025 0.975],0,1)

这就是如何用mu=10sigma=3.5找到正态分布的第99百分位数。

代码语言:javascript
运行
复制
norminv(0.99,10,3.5)

如果您不知道这些参数,您可以根据实际拥有的数据来估计它们。正常族的参数是meanstandard deviation;一旦它们被知道,底层的分布就会被完全描述。实际上:

  • 正态分布的mean介于25和75百分位数之间。平均这两个值来逼近它。
  • 在正态分布中,第25百分位数和第75百分位数的差值约为其standard deviation的1.35倍。因此,取上述值之间的差值,除以1.35,以获得standard deviation的近似。

如果您想使用linear interpolation,请查看interp1 (https://mathworks.com/help/matlab/ref/interp1.html)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47410624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档