2016-09-06 240 views
-4

我有百分比表示的參數(天然氣混合組成​​)的分佈。如何測試這些數據的分佈參數(應該是伽馬,正態分佈或對數正態分佈),並根據R中的參數生成隨機組合?分配百分比與R

+1

當你說「混合物組合物」你意味着必須每觀察一次測量(例如數據是數字的單個載體,例如21.2%,3.2%,46.7% ,54.1%...),還是你有不同組分的分數,對於每次觀察((2.5%,90%,7.5%),(10%,90%,0%)等於1) ? –

+0

謝謝,我應該對一個樣本(組成)進行分析,即對於每個觀測(樣本),我將得到總和爲1的分數的小數部分。我應該能夠分別測試每個樣品(成分)中組分的分佈。 – Sequestrator

回答

1

這可能是CrossValidated一個更好的問題,而是:

  • 一般按擬合優度從一系列可能的分佈中選擇一個好主意。

distributions

無奈的是,這張圖實際上並沒有最好的選擇爲您的數據(組成,持續:相反,你應該根據你的數據的定性的特點,這樣的選擇,範圍在0到1 [或0到100]之間),這是一個Beta distribution(儘管如果您的樣本中的值恰好爲0或100,則存在技術問題)。

在R:

## some arbitrary data 
z <- c(2,8,40,45,56,58,70,89) 
## fit (beta values must be in (0,1), not (0,100), so divide by 100) 
(m <- MASS::fitdistr(z/100,"beta",start=list(shape1=1,shape2=1))) 
## sample 1000 new values 
z_new <- 100*rbeta(n=1000,shape1=m$estimate["shape1"], 
        shape2=m$estimate["shape2"]) 
+0

非常感謝你的例子。然而,它涉及複雜烴混合物(例如油組合物)的正分數的熱力學分析。在實踐中,爲了估計在實驗室中不可能分析的組分的分數,使用伽馬分佈。所以你的例子中的向量z應該有其元素的總和等於100(或1)。但是,在R語法中,我不太擅長說出您的示例是否適用於gamma(或類似的)分發。 – Sequestrator