Hello, Try the following.
dmix <- function(x){ dens <- function(x, df) dchisq(x^2, df = df)*2*x 0.5*dens(x, df = 1) + 0.5*dens(x, df = 2) } pmix <- function(x, lower.tail = TRUE){ p <- integrate(dmix, lower = 0, upper = x) if(lower.tail) p$value else 1 - p$value } quant <- 1 pmix(quant, lower.tail = FALSE) Hope this helps, Rui Barradas Em 01-06-2013 05:26, Tiago V. Pereira escreveu:
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? All the best, Tiago ______________________________________________ R-help@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.
______________________________________________ R-help@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.