【问题标题】:I can't plot the kernel density estimation of an Inverse gamma(0.001, 0.001) in matlab我无法在 matlab 中绘制逆伽玛(0.001,0.001)的核密度估计
【发布时间】:2015-07-19 19:03:38
【问题描述】:

我正在尝试绘制 Inverse gamma(0.001, 0.001) 的 ksdensity,但该图只有一个点。我使用的命令是

 alpha1 = 0.001;
    beta1 = 0.001;
    n = 1e+5;
    r=1./gamrnd(alpha1,1/beta1,n,1);  
   [f,xi] = ksdensity(r);
    plot(xi,f,'--m');

f的第一项为实数,其余均为NaNxi的第一项为实数,其余均为Inf

你能帮我解决这个问题吗?

非常感谢。

【问题讨论】:

    标签: matlab inverse gamma-distribution


    【解决方案1】:

    您查看r 中生成的数据了吗?我几乎有 49% 的时间得到 Inf 的值。看起来,带有您选择的参数的 Gamma 分布的许多值都是 0,或者实际上非常小,以至于它们无法以 Matlab 的标准双精度数字格式表示(可能的最小值为 2.225 · 10^-308)。

    如果您查看逆 Gamma 分布的 Wikipedia page,您会看到没有为 alpha Wolfram Alpha ,您的分布模式为 0.000999001,而中位数为 1.90687 · 10^298(仅比可能的最大双精度值低几个数量级,1.797 · 10^308!)。

    模式周围的密度

    x = 0.0001:0.0001:0.1;
    plot(x, beta1 ^ alpha1 / gamma(alpha1) .* x .^ -(alpha1 + 1) .* exp(- beta1 ./ x))
    

    看起来像这样

    但这仅涵盖总分布的一小部分(第一个百分位数为 41.2211)。

    所以这里的问题不是核密度估计,而是您正在查看的分布具有极端特性,这使得很难从分析公式中绘制密度,更不用说从模拟随机数估计它了。

    【讨论】:

    • 非常感谢。你不知道你是如何帮助我的。
    • @F.F.,很高兴我能帮上忙! :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-20
    • 2015-07-20
    • 2020-07-28
    • 1970-01-01
    • 2014-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多