如何使用Math.NET计算99.5百分位数及处理Quantile返回NaN问题
Math.NET 99.5百分位数计算方案
问题根因
你调用Quantile返回NaN的核心原因是两个统计方法的参数范围要求不同:
Percentile()方法的第二个参数为0-100区间的百分比值,因此你之前计算98、99百分位时传入100-2、100-1(也就是98、99)是符合要求的。Quantile()方法的第二个参数要求为0-1区间的概率值,你直接传入100-0.5f=99.5,远大于参数的上限1,因此返回NaN。
正确实现代码
计算99.5百分位时,只需要把百分比值除以100转换为0-1区间的概率值即可,正确写法如下:
MathNet.Numerics.Statistics.Statistics.Quantile(valuesInDecile, 0.995)
结果验证
针对你提供的39条数据集,调用上述代码计算得到的99.5百分位数约为0.096,符合插值计算逻辑。
内容的提问来源于stack exchange,提问作者sofsntp
相关产品推荐
相关产品推荐

