我的值为10-25th百分位数范围0.49
,25-50百分位数是1.36
(这是峰值),第50-75百分位数是0.18
,> 90百分位数为0.15
。
我想插入范围> 5,5-,第75-90百分位数的值。如何在MATLAB中做到这一点?
如果我假设正态分布,其峰值为1.36
(25-50th百分位数)(如附图所示),如何插入未知百分位数范围的值?
答案 0 :(得分:1)
实际上,为了找到百分位值而执行插值对我来说并不是很好。如果您正在处理normal distribution
并且其参数(mu
和sigma
)已知,那么您正在寻找的是norminv
函数(官方文档:{{3 }})。
X = norminv(P,mu,sigma)使用计算正常CDF的倒数 相应的平均μ和标准差sigma P.中的相应概率.sigma中的参数必须是 正值,P中的值必须位于区间[0 1]。
例如,您可以找到包含95%标准正态分布值的区间:
norminv([0.025 0.975],0,1)
这是您使用mu=10
和sigma=3.5
找到正态分布的第99个百分位数的方法:
norminv(0.99,10,3.5)
如果您不了解这些参数,可以从实际拥有的数据中估算出这些参数。普通家庭的参数是mean
和standard deviation
;一旦了解它们,就完整地描述了基础分布。实际上:
mean
位于第25百分位和第75百分位之间。平均这两个值来近似它。standard deviation
的1.35倍。因此,取上述值之间的差异除以1.35,以获得standard deviation
的近似值。如果您想使用linear interpolation
,请查看interp1
(https://mathworks.com/help/stats/norminv.html)。