1
$\begingroup$

I'd like to calculate proportion confidence intervals for a labor economics survey of 2000 people, but the subpopulations I'm looking at are often 10 or fewer people. I'm not sure if it's appropriate to assume normality and was looking for some non-parametric way to calculate proportions.

Within the survey, I'm looking at workers who are urbanized, skilled, or self-employed. When broken down by year, it narrows to a small N by sub-population. The histograms are often heavily skewed, depending on the variables used.

So, for instance, let's say I have data (in R)

year <- c(2000, 2001, 2002)
total <- c(1000, 1000, 1000)
selfemployed <- c(4, 5, 6)
test <- data.frame(year, total, selfemployed)

And I want to estimate some form of upper and lower-bound estimates of the number of self-employed in the population, what is a good method? This is not for regression or modeling, just descriptive statistics. I saw a discussion of bootstrapping methods here but am unsure the best method. Thanks, and please let me know if I can make this question more clear.

$\endgroup$
  • 1
    $\begingroup$ small samples and bootstrap are not good friends $\endgroup$ – gioxc88 Mar 20 '18 at 2:38
  • $\begingroup$ I don't see what about this is unclear. $\endgroup$ – Peter Flom Mar 20 '18 at 18:33
1
$\begingroup$

Since the proportions are close to the boundary of the parameter space (0 in this case), I would not trust the normal approximation. Instead, I would advocate exact confidence intervals based on the binomial distribution. Note that these intervals may be skewed and include 0.

| cite | improve this answer | |
$\endgroup$
1
$\begingroup$

There is actually a substantial literature on estimating binomial proportions and their CI. A good entry point is Agresti and Coull. It turns out that the exact estimates are not optimal. R offers several CI for binomial proportions in the binom package. For your data:

install.packages("binom")
library(binom)


binom.confint(4, 1000, alpha=0.05,
        method= "all",
        include.x=FALSE, include.n=FALSE, return.df=FALSE)

shows a wide variety of confidence intervals. (And similar for 5 and 6).

| cite | improve this answer | |
$\endgroup$

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.