Cross Validated is a question and answer site for people interested in statistics, machine learning, data analysis, data mining, and data visualization. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have three groups of data, each with a binomial distribution (i.e. each group has elements that are either success or failure). I do not have a predicted probability of success, but instead can only rely on the success rate of each as an approximation for the true success rate. I have only found this question, which is close but does not seem to exactly deal with the this scenario.

To simplify down the test, let's just say that I have 2 groups (3 can be extended from this base case).

  • Group 1 trials: $n_1$ = 2455
  • Group 2 trials: $n_2$ = 2730

  • Group 1 success: $k_1$ = 1556
  • Group 2 success: $k_2$ = 1671

I don't have an expected success probability, only what I know from the samples. So my implied success rate for the two groups is:

  • Group 1 success rate: $p_1$ = 1556/2455 = 63.4%
  • Group 2 success rate: $p_2$ = 1671/2730 = 61.2%

The success rate of each of the sample is fairly close. However my sample sizes are also quite large. If I check the CDF of the binomial distribution to see how different it is from the first (where I'm assuming the first is the null test) I get a very small probability that the second could be achieved.

In Excel:

1-BINOM.DIST(1556,2455,61.2%,TRUE) = 0.012

However, this does not take into account any variance of the first result, it just assumes the first result is the test probability.

Is there a better way to test if these two samples of data are actually statistically different from one another?

share|improve this question
Another question I came across that didn't really help much:… – Scott Aug 28 '14 at 17:15
Does this question help?… – Eric Aug 28 '14 at 17:32
In R, you could use prop.test: prop.test(c(1556, 1671), c(2455, 2730)). – COOLSerdash Aug 28 '14 at 17:48
@COOLSerdash you might want to give the answer in excel since that is what they seem to be using. – Dan Aug 28 '14 at 17:50
Extending the base case from two groups to three could be problematic, because the tests will be interdependent: you will need a binomial version of ANOVA to handle that. – whuber Mar 21 at 1:42
up vote 6 down vote accepted

The soultion is a simple google away:

So you would like to test the following null hypothesis against the given alternative

$H_0:p_1=p_2$ versus $H_A:p_1\neq p_2$

So you just need to calculate the test statistic which is

$$z=\frac{\hat p_1-\hat p_2}{\sqrt{\hat p(1-\hat p)\left(\frac{1}{n_1}+\frac{1}{n_2}\right)}}$$

where $\hat p=\frac{n_1\hat p_1+n_2\hat p_2}{n_1+n_2}$.

So now, in your problem, $\hat p_1=.634$, $\hat p_2=.612$, $n_1=2455$ and $n_2=2730.$

Once you calculate the test statistic, you just need to calculate the corresponding critical region value to compare your test statistic too. For example, if you are testing this hypothesis at the 95% confidence level then you need to compare your test statistic against the critical region value of $z_{\alpha/2}=1.96$ (for this two tailed test).

Now, if $z>z_{\alpha/2}$ then you may reject the null hypothesis, otherwise you must fail to reject the null hypothesis.

Well this solution works for the case when you are comparing two groups, but it does not generalize to the case where you want to compare 3 groups.

You could however use a Chi Squared test to test if all three groups have equal proportions as suggested by @Eric in his comment above: " Does this question help? … – Eric"

share|improve this answer
Thanks @Dan. As many times with Google, knowing the right term to search for is the first hurdle. I did take a look at the chi-squared test. The problem there, as with where I was first getting stuck, is that my expected calculation is based on the sample. I can't therefore provide an expected value, because my samples are used to determine that expected value. – Scott Aug 28 '14 at 18:33
@Scott, if your hypothesized proportions for the three groups are that they are all equal then the expected value should be 1/3 for each group. – Dan Aug 28 '14 at 18:35

In R the answer is calculated as:

fisher.test(rbind(c(1556,2455-1556), c(1671,2730-1671)), alternative="less")
share|improve this answer
Would you consider writing a little bit more than providing the R function? Naming the function does not help in understanding the problem and not everyone use R, so it would be no help for them. – Tim Dec 8 '14 at 13:52
This is the most exact statistical answer, and works for small numbers of observations (see the following: – Andrew Mao Mar 30 '15 at 19:36
Fishers exact test's_exact_test – Keith May 22 '15 at 23:59

Your test statistic is $Z = \frac{\hat{p_1}-\hat{p_2}}{\sqrt{\hat{p}(1-\hat{p})(1/n_1+1/n_2)}}$, where $\hat{p}=\frac{n_1\hat{p_1}+n_2\hat{p_2}}{n_1+n_2}$.

The critical regions are $Z > \Phi^{-1}(1-\alpha/2)$ and $Z<\Phi^{-1}(\alpha/2)$ for the two-tailed test with the usual adjustments for a one-tailed test.

share|improve this answer
Your formula for $Z$ has a mistake. You forgot the square root. – Dan Aug 28 '14 at 17:46
Embarrassing - thanks @Dan! Fixed now. – abaumann Aug 29 '14 at 11:11

Just a summary:

Dan and Abaumann's answers suggest testing under a binomial model where the null hypothesis is a unified single binomial model with its mean estimated from the empirical data. Their answers are correct in theory but they need approximation using normal distribution since the distribution of test statistic does not exactly follow Normal distribution. Therefore, it's only correct for a large sample size.

While David's answer is indicating a nonparametric test using Fisher's test.The information is here: And it can be applied to small sample sizes but hard to calculate for big sample sizes.

Which test to use and how much you trust your p-value is a mystery. But there are always biases in which test to choose.

Good Luck

share|improve this answer
Are you trying to suggest that sample sizes in the thousands, with likely parameter values near $1/2$, are not large for this purpose? – whuber May 3 at 1:03
For this case, I think you could use Dan's method but compute the p value in an exact way (binomial) and approxiamte way (normal Z>Φ−1(1−α/2)Z>Φ−1(1−α/2) and Z<Φ−1(α/2) ) to compare whether they are close enough. – Dr_Hope May 6 at 4:39

Original post: Dan's answer is actually incorrect, not to offend anyone. A z-test is used only if your data follows a standard normal distribution. In this case, your data follows a binomial distribution, therefore a use a chi-squared test if your sample is large or fisher's test if your sample is small.

Edit: My mistake, apologies to @Dan. A z-test is valid here if your variables are independent. If this assumption is not met or unknown, a z-test may be invalid.

share|improve this answer
The "only if" part is an extreme position unlikely to be shared by many. No data actually follow a normal distribution. Few data actually behave as if drawn randomly and independently from a normal distribution. Nevertheless, z tests continue to be effective because the distributions of statistics (such as the difference of means) to which they apply can be extremely well approximated by normal distributions. In fact, the appeal to a $\chi^2$ test relies on the same asymptotic assumptions as a z test does! – whuber Mar 21 at 1:44
If you believe in the CLT, then the normal distribution does commonly exist. – Ryan Mar 21 at 2:49

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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