2016-10-15 38 views
1

我試圖找出50個樣本均值的95%可信區間。樣品尺寸範圍從2至600,和每個樣品中的值是有界1和5之間 例如:使用JAGS對數正態分佈的貝葉斯估計

sample 1 = (1,3.5,2.8,5,4.6) 
sample 2 = (1,5) 
sample 3 = (4.1,1.1,5,3.5,2,2.4,...) 

樣品具有10或更大的尺寸具有對數正態分佈,其中i用於JAGS爲貝葉斯估計數正態分佈適於從約翰K. Kruschke參數,與模型規格如下:

modelstring = " 
    model { 
    for(i in 1 : N) { 
     y[i] ~ dlnorm(muOfLogY , 1/sigmaOfLogY^2) 
    } 
    sigmaOfLogY ~ dunif(0.001*sdOfLogY , 1000*sdOfLogY) 
    muOfLogY ~ dunif(0.001*meanOfLogY , 1000*meanOfLogY) 
    muOfY <- exp(muOfLogY+sigmaOfLogY^2/2) 
    modeOfY <- exp(muOfLogY-sigmaOfLogY^2) 
    sigmaOfY <- sqrt(exp(2*muOfLogY+sigmaOfLogY^2)*(exp(sigmaOfLogY^2)-1)) 
} 
" 

該模型正常工作與樣品大小> 10。然而,用3 < =樣品< 10 i的上限得到極值(例如3000)超過平均值的最大可能值(例如5)。 在樣本量= 2的情況下,我得到了以下錯誤:

Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) : 
    NA/NaN/Inf in 'y' 

我是新來JAGS並不能找出如何解決這個問題。我認爲smaples < 10分佈不再是對數正態分佈! 任何想法? 謝謝

回答

0

首先是一個語義注​​釋。您不使用JAGS來查找示例手段。您正在使用JAGS來查找樣本出現的人羣的平均值。如果您想查找樣本(對數)平均值,則可以取平均值(對數)樣本值。

現在,如果每個樣本中的值都介於1和5之間(由於某種外部約束),那麼樣本絕不會從對數正態分佈中抽取,這本質上會使概率質量超過大於5的值。

讓我們想象一下,這麼說的原因,從對數正態分佈抽樣確實出現了樣品(因此不是固有1間跳躍和5)。然後,JAGS只是告訴你,樣本中沒有足夠的信息來很好地估計其繪製的總體平均值。當樣本量爲2時,我不會擔心理解錯誤,因爲從兩個樣本中根本沒有辦法很好地推斷總體均值。即使你知道人口確實是按正態分佈的日誌,情況也是如此。而且由於你的人口實際上並不是以對數正態分佈的(它們的範圍在1到5之間),所以整個推理過程無論如何都是無效的。