簡體   English   中英

我無法在Matlab中繪制反伽馬(0.001,0.001)的內核密度估計

[英]I can't plot the kernel density estimation of an Inverse gamma(0.001, 0.001) in matlab

我正在嘗試繪制反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的第一項是實數,其他所有項均為NaN xi的第一項是實數,其他所有項都是Inf

你能請我幫我嗎。

非常感謝你。

您是否看過r生成的數據? 我幾乎有49%的時間獲得Inf值。 看起來,帶有您選擇的參數的Gamma分布的許多值都是0,或者實際上很小,以至於它們無法以Matlab的標准雙精度數值格式表示(最小的可能值為2.225·10 ^ -308)。

如果您在Wikipedia頁面上查看反Gamma分布,則會看到沒有為alpha <= 1定義均值,沒有為alpha <= 2定義方差, 依此類推 。根據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))

看起來像這樣

但這僅占總分布的一小部分(第1個百分位數為41.2211)。

因此,這里的問題不是內核密度估計,而是您正在查看的分布具有極端的屬性,這使得很難根據解析公式來繪制密度,更不用說根據模擬隨機數對其進行估算了。

暫無
暫無

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

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