24

I know that I need mean and s.d to find the interval, however, what if the question is:

For a survey of 1,000 randomly chosen workers, 520 of them are female. Create a 95% confidence interval for the proportion of workers who are female based on the survey.

How do I find mean and s.d for that?

Kim
  • 4,080
  • 2
  • 30
  • 51
Pig
  • 2,002
  • 5
  • 26
  • 42
  • Perhaps look at the answers posted here: http://stackoverflow.com/questions/17802320/r-proportion-confidence-interval-factor – Mark Miller Feb 12 '14 at 07:50

4 Answers4

34

You can also use prop.test from package stats, or binom.test

prop.test(x, n, conf.level=0.95, correct = FALSE)

        1-sample proportions test without continuity correction

data:  x out of n, null probability 0.5
X-squared = 1.6, df = 1, p-value = 0.2059
alternative hypothesis: true p is not equal to 0.5
95 percent confidence interval:
 0.4890177 0.5508292
sample estimates:
   p 
0.52 

You may find interesting the article TWO-SIDED CONFIDENCE INTERVALS FOR THE SINGLE PROPORTION: COMPARISON OF SEVEN METHODS, where in Table 1 on page 861 are given different confidence intervals, for a single proportion, calculated using seven methods (for selected combinations of n and r). Using prop.test you can get the results found in rows 3 and 4 of the table, while binom.test returns what you see in row 5.

gd047
  • 29,749
  • 18
  • 107
  • 146
22

In this case, you have binomial distribution, so you will be calculating binomial proportion confidence interval.

In R, you can use binconf() from package Hmisc

> binconf(x=520, n=1000)
 PointEst     Lower     Upper
     0.52 0.4890177 0.5508292

Or you can calculate it yourself:

> p <- 520/1000
> p + c(-qnorm(0.975),qnorm(0.975))*sqrt((1/1000)*p*(1-p))
[1] 0.4890345 0.5509655
Zbynek
  • 5,673
  • 6
  • 30
  • 52
21

Alternatively, use function propCI from the prevalence package, to get the five most commonly used binomial confidence intervals:

> library(prevalence)
> propCI(x = 520, n = 1000)
    x    n    p        method level     lower     upper
1 520 1000 0.52 agresti.coull  0.95 0.4890176 0.5508293
2 520 1000 0.52         exact  0.95 0.4885149 0.5513671
3 520 1000 0.52      jeffreys  0.95 0.4890147 0.5508698
4 520 1000 0.52          wald  0.95 0.4890351 0.5509649
5 520 1000 0.52        wilson  0.95 0.4890177 0.5508292
Rui Barradas
  • 70,273
  • 8
  • 34
  • 66
6

Another package: tolerance will calculate confidence / tolerance ranges for a ton of typical distribution functions.

Rui Barradas
  • 70,273
  • 8
  • 34
  • 66
Carl Witthoft
  • 20,573
  • 9
  • 43
  • 73
  • wow, that package `tolerance` is comprehensive & thorough. outstanding recommendation! – cmo Mar 20 '19 at 13:57