How to compare proportions by having only the mean proportion and 95%CI (reported by a meta-analysis) I have a proportion of 31.6% (24/76) and I need to test whether this proportion is significantly different from a proportion reported by a meta-analysis study equal to 59% (95%CI: 53%; 65%). The meta-analysis found that proportion and the 95%CI from linear mixed models, pooling data from several other studies.
I suppose I cannot use the classical methodology for testing two proportions using normal approximation and estimating the standard deviation as p(1-p). I believe that the 95%CI reported by the meta-analysis should be used somehow.
Any suggestions on how I can perform this comparison?
Thank you very much.
 A: An estimate of the standard error of your estimate $\hat\pi_1$ from a sample of $n$ is given by
$$
\hat\sigma_{\hat\pi_1}=\sqrt{\frac{\hat\pi_1(1-\hat\pi_1)}{n}}
$$
Assuming that in the meta-analysis the upper & lower $1-\alpha$ confidence bounds $\pi^\mathrm{u}_2$ & $\pi^\mathrm{l}_2$ are calculated in reasonably conventional fashion, then an estimate of the standard error of their estimate $\hat\pi_2$ is given by
$$\hat\sigma_{\hat\pi_2} = \frac{\pi^\mathrm{u}_2 - \pi^\mathrm{l}_2}{2\Phi^{-1}\left(1-\frac{\alpha}{2}\right)}$$
where $\Phi$ is the standard Gaussian distribution function. A Wald-type test of the null hypothesis that the difference between the two proportions is zero seems the most straightforward approach: asymptotically, under the null
$\frac{\hat\pi_2-\hat\pi_1}{\sqrt{\hat\sigma_{\hat\pi_1}^2+\hat\sigma_{\hat\pi_2}^2}}\sim\mathcal{N}\left(0,1\right)$
test <- function(x1, n1, p2, lb, ub, alpha){
  p1 <- x1/n1
  v1 <- p1*(1-p1)/n1
  v2 <- ((ub - lb)/(2*qnorm(1-alpha/2)))^2
  se <- sqrt(v1 +v2)
  z <- (p2-p1)/se
  pv <- 2*min(pnorm(z), pnorm(-z))
  return(c(test.stat=z ,p.value=pv))
}

test(24, 76, 0.59, 0.53, 0.56 , 0.05)
#   test.stat      p.value 
#5.090600e+00 3.569321e-07 

test(12, 76, 0.20, 0.12, 0.29 , 0.05)
#test.stat   p.value 
#0.6988176 0.4846661 

A: You could use $x = 24$ successes in $n = 76$ trials to test $H_0: p = .53$ against $H_a: p < 0.53,$ where $0.53$ is the lower end of the CI from
meta analysis. In R, the relevant exact binomial test
is as shown below. The null hypothesis is strongly
rejected with P-value nearly $0.$
binom.test(24, 75, .53, alt = "less")

        Exact binomial test

data:  24 and 75
number of successes = 24, number of trials = 75, 
 p-value = 0.0001944
alternative hypothesis: 
 true probability of success is less than 0.53
95 percent confidence interval:
  0.0000000 0.4195974
sample estimates:
probability of success 
                  0.32 

There may be more elegant solutions, but your data
with $\hat p = 0.32$ are so far from matching the results of the meta
analysis that the decision is hardly in doubt. [Turns out that there is a "more elegant solution"; see @Scortchi's Answer.]
Even a 99.9% one sided CI for $p$ indicates your
point estimate $\hat p = 0.32$ is not consistent with $p > 0.5035,$ below $0.53.$
binom.test(24,75, .53, alt="less", 
           conf.lev=.999)$conf.int
[1] 0.0000000 0.5034918
attr(,"conf.level")
[1] 0.999

A: Because some of my proportions are next to 0 or 1, the Wald-type test can give biased results. To overcome this issue, I simulated two beta distributions with specified parameters and applied a bootstraped difference test to obtain the p-value.
Beta.t.test <- function(x1, n1, med2, lb, ub, M, Alpha){
  #Function to estimate Beta parameters
  estBetaParams <- function(mu, var) {
    alpha <- ((1 - mu) / var - 1 / mu) * mu ^ 2
    beta <- alpha * (1 / mu - 1)
    return(params = list(alpha = alpha, beta = beta))
  }

  #Data from group 1: absolute frequency
  med1 <- x1/n1 ; var1 <- med1*(1-med1)/n1

  #Data from group 2: meta analysis result with 95%CI limits
  var2 <- ((ub - lb)/(2*qnorm(1-Alpha/2)))^2

  #Estimating beta parameters for both groups
  Beta1 <- estBetaParams(med1,var1)
  Beta2 <- estBetaParams(med2,var2)

  #Ploting
  X <- seq(0,1,0.001)
  B1 <- dbeta(X, Beta1$alpha, Beta1$beta)
  B2 <- dbeta(X, Beta2$alpha, Beta2$beta)
  plot(X,B1,type = "l"); lines(X,B2,col = 2)

  #Bootstrap test
  set.seed(1)
  RB1 <- rbeta(M, Beta1$alpha, Beta1$beta)
  RB2 <- rbeta(M, Beta2$alpha, Beta2$beta)
  if (med1 > med2){
    DifB <- RB1 - RB2
  } else {DifB <- RB2 - RB1}
  #Percentile 95% CI for the difference
  quantile(DifB, probs = c(0.025, 0.975))

  p.value <- 2*sum(DifB <= 0)/M ; p.value
  return(p.value)
}

When applied to the data far from 0 or 1, we get a very close p.value as reported by Scortchi
> test(12, 76, 0.20, 0.12, 0.29 , 0.05)
test.stat   p.value 
0.6988176 0.4846661 
> Beta.t.test(12,76,0.20,0.12,0.29,99999,0.05)
[1] 0.4823248

But with proportions near 0 or 1, the results can be a little distinct
> test(2, 50, 0.10, 0.07, 0.13 , 0.05)
test.stat   p.value 
1.8952016 0.0580657 
> Beta.t.test(2, 50, 0.10, 0.07, 0.13, 99999, 0.05)
[1] 0.09390094

