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

Rui Barradas ruipbarradas at sapo.pt
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)

Rui Barradas

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
>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list