Index accuracy based on sample size out of population size Suppose I have people who work at different companies and I am interested in seeing their view on some topic.
In order to do this, I decide to conduct interviews on people from each of the different companies and from these interviews I come up with an index that ranges from -100 to 100 that measures each person’s view on the topic (-100 being negative, 100 being positive).
After getting an index for each person, I decide to average indexes of people who work at the same company to get a “company index”.
Suppose the distribution of people who work at each of the companies is the following:
Company     # of People in Company
A           1
B           6
C           10
D           8
E           15
F           4

In the end, I want to end up with something like:
Company     # of People in Company  Index for Company
A           1                   40.3    
B           6                   0.5
C           10                  -30
…           …                   …

My question is: how many people should I interview from each company so that the index calculated for the company is accurate/valid? I presume this would be based on the company size, as well as the desired confidence band size for the index.
What would be an example for each of these if I wanted a confidence band of say +-20?
What would be the confidence level if, for example, only 1 person was interviewed from company B (out of 6)? Or 2 people with variance of X?
 A: We can try to solve this from a different, simpler perspective. Basically, we want to estimate the sample size needed to get a certain Standard Error (which will be used to construct the Confidence Interval). For this I will make some assumptions, which may be more or less correct, but we have to start somewhere.
I will assume the data come from a normal distribution. I don't have any data so I will just simulate some at random. So suppose I have 6 data points with some values
> set.seed(2019)
> dat=rnorm(6,runif(1,-100,100),runif(1,0,50))
> mean(dat); sd(dat)
[1] 38.82794
[1] 37.29289
> dat
[1] 35.633223 -4.479012 86.629680  8.804734 80.292927 26.086079

For the normal distribution it stands that the standard error is
$$SE=\dfrac{\sigma}{\sqrt{n}}$$
So inverting this formula we can estimate n by
$$n=\Big(\dfrac{\sigma}{SE}\Big)^2$$
We estimate $\sigma$ from the data, in this case it's $37.29289$, the standard error we want it to be 10. Why? Because in your specifications you said you wanted to have a CI of $\pm20$, which I am going to assume you meant a 95 % CI. So if we set $SE=10$ we will get the 95 % CI (roughly 2 standard deviations). Finally we plug in the numbers and get
> (sd(dat)/10)^2
[1] 13.9076

So you need 14 observations for the desired CI.
