【问题标题】:c# MathNet Gamma distribution sampling not matchingc# MathNet Gamma 分布采样不匹配
【发布时间】:2022-07-19 05:52:19
【问题描述】:

我正在尝试使用 MathNet 库为不同的分布实现事件时间采样。我让他们为指数、正常和威布尔工作,但同样的过程对 Gamma 不起作用有人知道我做错了什么吗?

测试示例以获得平均值。

    using System;
    using MathNet.Numerics.Distributions;

    public class Program
    {
        public static void Main()
        {
            double sum = 0.0;
            var dist = new Gamma(0.5,50);
            int runs = 1000000;
            for (int i=0; i<runs; i++)
            {
                sum += dist.Sample();
            }
            Console.WriteLine((sum/runs).ToString());
        }
    }

返回:~0.01

使用在线计算器https://keisan.casio.com/exec/system/1180573218 我得到 11.37 的平均值。 (CD 0.5,形状 0.5 刻度 50)

【问题讨论】:

    标签: c# mathnet-numerics


    【解决方案1】:

    有两点要记住:

    1. Math.Net 使用shape and rate (or inverse scale) 定义伽马分布,而大多数在线计算器使用形状和比例。
    2. 较低(或较高)CDF 不等于分布的期望值:如果您执行integral to calculate the expected value,您会得到E[X] = shape/rate,这与您从代码中得到的结果非常接近

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-29
      • 2021-04-06
      • 2016-10-10
      • 2022-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多