R:如何获得总体的p值(获得x <2)(由三个正态分布组合建模)?

时间:2011-06-27 06:51:14

标签: r distribution probability

感谢上一篇文章的精彩答案,我使用了以下链接中提供的程序,使我的数据符合三种正态分布:

https://stats.stackexchange.com/questions/10062/which-r-package-to-use-to-calculate-component-parameters-for-a-mixture-model

在拟合数据后,三个正态分布的参数如下:

      pi      mu sigma
1 0.5552 -0.4868 2.044
2 0.2739  8.3846 1.399
3 0.1709 12.5317 1.036

要检查我的数据(x)和模型分布(ee)之间的协议,我执行了以下步骤:

e1 <- rnorm(5552, mean=-0.4868, sd=2.044)
e2 <- rnorm(2739, mean=8.3846, sd=1.399)
e3 <- rnorm(1709, mean=12.5317, sd=1.036)
ee <- c(e1,e2,e3)
qqplot(x, ee)

我得到了qqplot如下:(http://i.stack.imgur.com/3favy.png

看起来不错,所以,我想计算这个模型群体获得等于或小于2.0的值的p值。你能不能教我如何用R?

来计算这个p值

模型群ee的密度图附于此处(http://i.stack.imgur.com/pExhF.png)。

2 个答案:

答案 0 :(得分:1)

假设您的参数位于数据框param中(也许这适用于带有命名列的矩阵)。

对“左2”的个人贡献:

> probs <- with(param, pi*pnorm(2, mu, sigma) )
> probs
[1] 4.930888e-01 6.883473e-07 2.409615e-25

总数:

> prob <- with(param, sum(pi*pnorm(2, mu, sigma)) )
> prob
[1] 0.4930895

只是看看输出你会猜到几乎所有的贡献都来自第一个组件,因为其他两个的方法是远在右边。第一个贡献的价值主要是pi(比例)估计,因为它的大部分质量是“2的左边”。

答案 1 :(得分:0)

我认为你只想用类似的东西计算尾区概率。

> sum(ee <= 2) / length(ee)
> [1] 0.4936