MathNet.Numerics负二项分布中位数无法计算问题咨询
问题解答
是的,MathNet.Numerics 4.9.0版本确实不支持负二项分布(NegativeBinomial)的Median属性计算,访问该属性会抛出System.NotSupportedException异常,原因如下:
- 该版本中,
NegativeBinomial类继承自DiscreteDistribution基类,而基类的Median属性默认实现就是抛出这个异常,只有当具体分布类重写该属性并实现计算逻辑时才能正常使用。 - 负二项分布的中位数没有简洁的闭合式解析解,需要通过数值方法近似求解,而4.9.0版本的
NegativeBinomial类并未实现这部分逻辑。
替代方案:自行近似计算中位数
你可以通过累积分布函数(CDF)来近似求解中位数——找到最小的整数k,使得NegBin.CumulativeDistribution(k) ≥ 0.5。示例代码如下:
var negBin = new MathNet.Numerics.Distributions.NegativeBinomial(30, 0.03); double target = 0.5; int median = 0; while (negBin.CumulativeDistribution(median) < target) { median++; } // 此时median即为近似的中位数
内容的提问来源于stack exchange,提问作者the man
相关产品推荐
相关产品推荐

