Explain how to perform a two-sample z-test for the difference between two population proportions

  1. Home
  2. Easy Guides
  3. R software
  4. R Basic Statistics
  5. Comparing Proportions in R
  6. Two-Proportions Z-Test in R

  • What is two-proportions z-test?
  • Research questions and statistical hypotheses
  • Formula of the test statistic
    • Case of large sample sizes
    • Case of small sample sizes
  • Compute two-proportions z-test in R
    • R functions: prop.test()
    • Compute two-proportions z-test
    • Interpretation of the result
    • Access to the values returned by prop.test() function
  • See also
  • Infos

What is two-proportions z-test?

The two-proportions z-test is used to compare two observed proportions. This article describes the basics of two-proportions *z-test and provides pratical examples using R sfoftware**.

For example, we have two groups of individuals:

  • Group A with lung cancer: n = 500
  • Group B, healthy individuals: n = 500

The number of smokers in each group is as follow:

  • Group A with lung cancer: n = 500, 490 smokers, \(p_A = 490/500 = 98%\)
  • Group B, healthy individuals: n = 500, 400 smokers, \(p_B = 400/500 = 80%\)

In this setting:

  • The overall proportion of smokers is \(p = frac{(490 + 400)}{500 + 500} = 89%\)
  • The overall proportion of non-smokers is \(q = 1-p = 11%\)

We want to know, whether the proportions of smokers are the same in the two groups of individuals?


Explain how to perform a two-sample z-test for the difference between two population proportions

Research questions and statistical hypotheses

Typical research questions are:


  1. whether the observed proportion of smokers in group A (\(p_A\)) is equal to the observed proportion of smokers in group (\(p_B\))?
  2. whether the observed proportion of smokers in group A (\(p_A\)) is less than the observed proportion of smokers in group (\(p_B\))?
  3. whether the observed proportion of smokers in group A (\(p_A\)) is greater than the observed proportion of smokers in group (\(p_B\))?

In statistics, we can define the corresponding null hypothesis (\(H_0\)) as follow:

  1. \(H_0: p_A = p_B\)
  2. \(H_0: p_A \leq p_B\)
  3. \(H_0: p_A \geq p_B\)

The corresponding alternative hypotheses (\(H_a\)) are as follow:

  1. \(H_a: p_A \ne p_B\) (different)
  2. \(H_a: p_A > p_B\) (greater)
  3. \(H_a: p_A < p_B\) (less)

Note that:

  • Hypotheses 1) are called two-tailed tests
  • Hypotheses 2) and 3) are called one-tailed tests

Formula of the test statistic

Case of large sample sizes

The test statistic (also known as z-test) can be calculated as follow:

\[ z = \frac{p_A-p_B}{\sqrt{pq/n_A+pq/n_B}} \]

where,

  • \(p_A\) is the proportion observed in group A with size \(n_A\)
  • \(p_B\) is the proportion observed in group B with size \(n_B\)
  • \(p\) and \(q\) are the overall proportions

  • if \(|z| < 1.96\), then the difference is not significant at 5%
  • if \(|z| \geq 1.96\), then the difference is significant at 5%
  • The significance level (p-value) corresponding to the z-statistic can be read in the z-table. We’ll see how to compute it in R.

Note that, the formula of z-statistic is valid only when sample size (\(n\)) is large enough. \(n_Ap\), \(n_Aq\), \(n_Bp\) and \(n_Bq\) should be \(\geq\) 5.

Case of small sample sizes

The Fisher Exact probability test is an excellent non-parametric technique for comparing proportions, when the two independent samples are small in size.

Compute two-proportions z-test in R

R functions: prop.test()

The R functions prop.test() can be used as follow:

prop.test(x, n, p = NULL, alternative = "two.sided", correct = TRUE)

  • x: a vector of counts of successes
  • n: a vector of count trials
  • alternative: a character string specifying the alternative hypothesis
  • correct: a logical indicating whether Yates’ continuity correction should be applied where possible

Note that, by default, the function prop.test() used the Yates continuity correction, which is really important if either the expected successes or failures is < 5. If you don’t want the correction, use the additional argument correct = FALSE in prop.test() function. The default value is TRUE. (This option must be set to FALSE to make the test mathematically equivalent to the uncorrected z-test of a proportion.)

Compute two-proportions z-test

We want to know, whether the proportions of smokers are the same in the two groups of individuals?

res <- prop.test(x = c(490, 400), n = c(500, 500)) # Printing the results res 2-sample test for equality of proportions with continuity correction data: c(490, 400) out of c(500, 500) X-squared = 80.909, df = 1, p-value < 2.2e-16 alternative hypothesis: two.sided 95 percent confidence interval: 0.1408536 0.2191464 sample estimates: prop 1 prop 2 0.98 0.80

The function returns:

  • the value of Pearson’s chi-squared test statistic.
  • a p-value
  • a 95% confidence intervals
  • an estimated probability of success (the proportion of smokers in the two groups)


Note that:

  • if you want to test whether the observed proportion of smokers in group A (\(p_A\)) is less than the observed proportion of smokers in group (\(p_B\)), type this:
prop.test(x = c(490, 400), n = c(500, 500), alternative = "less")
  • Or, if you want to test whether the observed proportion of smokers in group A (\(p_A\)) is greater than the observed proportion of smokers in group (\(p_B\)), type this:
prop.test(x = c(490, 400), n = c(500, 500), alternative = "greater")

Interpretation of the result

The p-value of the test is 2.36310^{-19}, which is less than the significance level alpha = 0.05. We can conclude that the proportion of smokers is significantly different in the two groups with a p-value = 2.36310^{-19}.

Note that, for 2 x 2 table, the standard chi-square test in chisq.test() is exactly equivalent to prop.test() but it works with data in matrix form.

Access to the values returned by prop.test() function

The result of prop.test() function is a list containing the following components:


  • statistic: the number of successes
  • parameter: the number of trials
  • p.value: the p-value of the test
  • conf.int: a confidence interval for the probability of success.
  • estimate: the estimated probability of success.

The format of the R code to use for getting these values is as follow:

# printing the p-value res$p.value [1] 2.363439e-19# printing the mean res$estimateprop 1 prop 2 0.98 0.80 # printing the confidence interval res$conf.int[1] 0.1408536 0.2191464 attr(,"conf.level") [1] 0.95

See also

  • One Proportion Z-Test in R: Compare an Observed Proportion to an Expected One
  • Chi-Square Goodness of Fit Test in R: Compare Multiple Observed Proportions to Expected Probabilities
  • Chi-Square Test of Independence in R: Evaluate The Association Between Two Categorical Variables

Infos

This analysis has been performed using R software (ver. 3.2.4).


Enjoyed this article? I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Twitter, Facebook or Linked In.

Show me some love with the like buttons below... Thank you and please don't forget to share and comment below!!

Avez vous aimé cet article? Je vous serais très reconnaissant si vous aidiez à sa diffusion en l'envoyant par courriel à un ami ou en le partageant sur Twitter, Facebook ou Linked In.

Montrez-moi un peu d'amour avec les like ci-dessous ... Merci et n'oubliez pas, s'il vous plaît, de partager et de commenter ci-dessous!



How do we test the difference between two population proportions?

A hypothesis test can help determine if a difference in the estimated proportions reflects a difference in the population proportions. The difference of two proportions follows an approximate normal distribution. Generally, the null hypothesis states that the two proportions are the same.

How do you find the Z statistic for the difference of proportions?

z=(p−P)σ where P is the hypothesized value of population proportion in the null hypothesis, p is the sample proportion, and σ is the standard deviation of the sampling distribution.

How do you perform a z

How do I run a Z Test?.
State the null hypothesis and alternate hypothesis..
Choose an alpha level..
Find the critical value of z in a z table..
Calculate the z test statistic (see below)..
Compare the test statistic to the critical z value and decide if you should support or reject the null hypothesis..

How do you find the difference between two sample proportions?

The expected value of the difference between all possible sample proportions is equal to the difference between population proportions. Thus, E(p1 - p2) = P1 - P2.