I have two numbers with 95% confidence intervals:

0.7 [0.5, 0.9]
1.03 [-0.27, 2.33]

I have multipled the two numbers to get 0.721. But what would the confidence interval for this number be?

I do not think multiplying the confidence intervals is correct, but I am struggling to find a solution.

  • 6
    $\begingroup$ Without making some assumptions about the distributions, and without the raw data, I don't think this has a solution. If you make assumptions you could simulate. $\endgroup$ – Peter Flom Sep 28 '17 at 11:22
  • $\begingroup$ If you know how the numbers and CIs were calculated, you can use an appropriate meta-analytic approach (e.g. odds ratios), if it makes sense to multiply the estimates. $\endgroup$ – Michael M Sep 28 '17 at 13:01
  • 1
    $\begingroup$ Like the other commenters said, there's not much that can be done here without knowing what quantity the CIs are supposed to estimate. $\endgroup$ – Kodiologist Sep 28 '17 at 14:30
  • $\begingroup$ @IcedCoffee I don't agree with the other comments, and think you could still compute a confidence interval for the product. However, it could be useful to address the comments to my own answer to know if the confidence intervals from the original data were likely simmetrical and normally distributed, and the reference sample size. Can you add these details? $\endgroup$ – Joe_74 Sep 29 '17 at 7:54
  • 1
    $\begingroup$ The confidence intervals were symmetrical, normally distributed, and the sample size was 9000. However, I have posted a solution below. $\endgroup$ – IcedCoffee Sep 30 '17 at 10:53

There might be more formal solutions, but the simplest one is to use bootstrap. You can easily do it with most statistical packages. I recommend percentile bootstrap with at least 1,000 samples, though.

  • 7
    $\begingroup$ How can you bootstrap without any data available, but only the estimates? $\endgroup$ – Knarpie Sep 28 '17 at 11:56
  • 1
    $\begingroup$ @Knarpie You can extract the SE from the CI, then use a random sequence to create (eg) 1000 point estimates using the Z distribution. Finally, perform bootstrap on their product. $\endgroup$ – Joe_74 Sep 28 '17 at 13:29
  • 2
    $\begingroup$ Bootstrap means resampling with replacement. Why would you first generate 1000 instances of products, and then bootstrap out of them, instead of using them all? $\endgroup$ – Knarpie Sep 28 '17 at 13:51
  • 4
    $\begingroup$ (-1) Among other things, this seems to require the CIs to have been constructed with SEs and the estimators to be independent. Neither need be the case. And I don't see the point in bootstrapping data that was itself simulated. $\endgroup$ – Kodiologist Sep 28 '17 at 14:36
  • $\begingroup$ @Kodiologist In most scenarios you can assume CI were symmetrically built. In addition, if you use different seeds for random sequence generation, then you would definitely need bootstrapping for CI estimation. $\endgroup$ – Joe_74 Sep 29 '17 at 8:21

I was given a solution to this problem and wanted to post it here for future reference to others.

  1. The length of the CI / 2 / 1.96 = se, i.e. the standard error of A or B
  2. se^2 = var, i.e. the variance of the estimate A or B
  3. Use the estimated A or B as the means of A or B, i.e. E(A) or E(B)
  4. Follow this page http://falkenblog.blogspot.se/2008/07/formula-for-varxy.html to get var(A*B), i.e. var(C)
  5. Square-root of var(C) is the se of C
  6. (C - 1.96*se(C), C + 1.96*se(C)) is the 95% CI of C

Note that if your A and B are correlated, you need to consider their covariance as well.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.