簡體   English   中英

c# MathNet Gamma 分布采樣不匹配

[英]c# MathNet Gamma distribution sampling not matching

我正在嘗試使用 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)

有兩件事要記住:

  1. Math.Net 使用 gamma 分布的形狀和速率(或反比例)定義,而大多數在線計算器都使用形狀和比例。
  2. 下(或上)CDF 不等於分布的期望值:如果你用 積分來計算期望值,你會得到E[X] = shape/rate ,這與你從你得到的結果非常接近代碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM