2016-09-06 202 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