[英]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.