# What is the minimum population size that Hardy-Weinberg calculations can be applied to?

I'm trying to find out if a particular allele is in Hardy-Weinberg disequilibrium, but the data is poor. What's the minimum population number that you can use to get any sort of respectable conclusion?

I've heard it's 5 individuals minimum for each genotype but can't find a source on that.

You can use power analysis to work out answers depending on the specifics of your data. The things you need to consider are:

1. The power of the test. This is the probability that the test will fail to reject the null hypothesis even if in truth it is false (Type II error). If the population is not in equilibrium, what is the probability that the test will fail to detect this? This will largely depend on the costs of a Type II error. If the experiment is expensive in terms of time/money/animals used etc. you would want to make sure it will give a sold answer at the end.
2. The significance level. 0.05 is commonly used. The probability that the null hypothesis is rejected even though it is true (Type I error). If the population is in equilibrium, what is the probability that the test will erroneously say it is in disequilibrium.
3. The degrees of freedom. The number of alleles.
4. The effect size. This is how far away from equilibrium you expect your samples to be. The largest effect size would be extinction of one allele. However, if two alleles are in a ratio of 100:101 across the full population, this is a small effect size.

For the Pearson's Chi-squared test we can use (in R)

library(pwr)
pwr.chisq.test(w = 0.3, N = 40, df = 4, sig.level = 0.05 )


A rough guide for effect size (w) is 0.1, 0.3, and 0.5 for small, medium, and large effect sizes. There is more detail here. N is the total number of data points, df is the number of alleles. This function will give us a value for 1 minus the power of our test. A value of 0.9 means there is a 10% chance of failing to detect an effect that truly exists.

If we want to work out a suitable number of data points to collect we must decide what power we want. Say we decide that a 0.01 chance of doing the test, but failing to detect disequilibrium if it exists is acceptable.

pwr.chisq.test(w = 0.3, df = 4, sig.level = 0.05, power=0.99 )


tells us that 280 data points are needed.

Without estimates of effect size or a number of genotypes it is hard to give a straight answer to your question, but 5 per genotype seems very small.

If you have only two genotypes, you might choose to use the Fisher Exact Test in which case you can use power.fisher.test() in the statmod package. The definitions of effect size and degrees of freedom are slightly different but the idea is the same.

• +1: nice to see power analysis mentioned every once in a while... too often biologists tend to skip on these things.
– nico
May 22, 2013 at 6:19
• Thanks, whilst I asked this a long time ago and it's not very relevant to me now I'm sure this will help people in the future!
– Ben
May 22, 2013 at 15:30
• Yes I was aware it was old. But as you say hopefully useful for others. Having got information from stackexchange a million times but never asked a question, I know that it's potentially true. May 22, 2013 at 21:14