# [R] How to compute a P-value for a complex mixture of chi-squared distributions in R

Sat Jun 1 20:41:52 CEST 2013

```Hello,

No, nothing wrong. (I feel silly for not having noticed it.) In fact not
only it's much simpler but it's also more accurate than the use of
accurate with the default rel.tol.
It should be better, however, to use lower.tail = FALSE, since the op
wants p-values.

0.5 * pchisq(x^2, 1, lower.tail = FALSE) + 0.5 * pchisq(x^2, 2,
lower.tail = FALSE)

Em 01-06-2013 14:57, peter dalgaard escreveu:
>
> On Jun 1, 2013, at 06:32 , Tiago V. Pereira wrote:
>
>> Hello, R users!
>>
>> I am struggling with the following problem:
>>
>> I need to compute a P-value for a mixture of two chi-squared
>> distributions. My P-value is given by:
>>
>> P = 0.5*prob(sqrt(chi2(1)) <= x) + 0.5*prob(sqrt(chi2(2)) <= x)
>>
>> In words, I need to compute the p-value for 50–50 mixture of the square
>> root of a chi-squared random variable with 1 degree of freedom and the
>> square root of a chi-squared with two degrees of freedom.
>>
>> Although I can quickly simulate data, the P-values I am looking for are at
>> the tail of the distribution, that is, alpha levels below 10^-7. Hence,
>> simulation is not efficient.
>>
>> Are you aware of smart approach?
>
> Er,...
>
> Anything wrong with
>
> 0.5 * pchisq(x^2, 1) + 0.5 * pchisq(x^2, 2)
>
> ???
>
> -pd
>
>
>>
>>
>> All the best,
>>
>> Tiago
>>
>> ______________________________________________
>> R-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help