Complete all Exercises, and submit answers to Questions on the Coursera platform.

In August of 2012, news outlets ranging from the Washington Post to the Huffington Post ran a story about the rise of atheism in America. The source for the story was a poll that asked people, “Irrespective of whether you attend a place of worship or not, would you say you are a religious person, not a religious person or a convinced atheist?” This type of question, which asks people to classify themselves in one way or another, is common in polling and generates categorical data. In this lab we take a look at the atheism survey and explore what’s at play when making inference about population proportions using categorical data.

Getting Started

Load packages

In this lab we will explore the data using the dplyr package and visualize it using the ggplot2 package for data visualization. The data can be found in the companion package for this course, statsr.

Let’s load the packages.

library(statsr)
library(dplyr)
library(ggplot2)

The survey

The press release for the poll, conducted by WIN-Gallup International, can be accessed here.

Take a moment to review the report then address the following questions.

  1. How many people were interviewed for this survey?
    1. A poll conducted by WIN-Gallup International surveyed 51,000 people from 57 countries.
    2. A poll conducted by WIN-Gallup International surveyed 52,000 people from 57 countries.
    3. A poll conducted by WIN-Gallup International surveyed 51,917 people from 57 countries.
    4. A poll conducted by WIN-Gallup International surveyed 51,927 people from 57 countries.
  2. Which of the following methods were used to gather information?
    1. Face to face
    2. Telephone
    3. Internet
    4. All of the above

“A total of 51,927 persons were interviewed globally. In each country a national probability sample of around 1000 men and women was interviewed either face to face (35 countries; n=33,890), via telephone (11 countries; n=7,661) or online (11 countries; n=10,376)”

  1. True / False: In the first paragraph, several key findings are reported. These percentages appear to be sample statistics.
    1. True
    2. False

These percentages are sample statistics derived from all the interviews conducted accross the world. It is not practical to ask every single person in this world their religious stand.

  1. True / False:The title of the report is “Global Index of Religiosity and Atheism”. To generalize the report’s findings to the global human population, We must assume that the sample was a random sample from the entire population in order to be able to generalize the results to the global human population. This seems to be a reasonable assumption.
    1. True
    2. False

This study is an observational study. Individuals are observed, interviewed and measures are recorded. Morever, this survey is entitled ‘Global Index of Religiosity and Atheism’ and is supposed to represent the entire adult human population on earth. This means that we need to make sure that no demographic segments of the entire adult population on earth are under-represented or over-represented. The data does seem to indicate that the respondents from various countries, who participated in the survey, were selected at random. However, there are certain interesting factors that lead me to believe that the findings of the report, don’t necessarily generalize the results to the global human population:

  • There are more than 150 countries in the world. WIN-Gallup surveyed only 57 of these countries, typically conducting around 1,000 internet, phone or personal interviews. These sample figures were then “scaled up” to reflect each country. Surveyed countries are extrapolated to non-surveyed nations to give global figures.
  • Regarding the 57 countries included, it also is not specified how the 57 countries were selected and how they are able to represent the global population. (For example, Indonesia, the country with the 4th largest population, and the largest Muslim population in the world, is not included in the 57 countries. Nor is Thailand, the country with the largest Buddhist proportion.)

The data

Turn your attention to Table 6 (pages 15 and 16), which reports the sample size and response percentages for all 57 countries. While this is a useful format to summarize the data, we will base our analysis on the original data set of individual responses to the survey. Load this data set into R with the following command.

data(atheism)
  1. What does each row of Table 6 correspond to?
    1. Countries
    2. Individual Persons
    3. Religions
  2. What does each row of atheism correspond to?
    1. Countries
    2. Individual Persons
    3. Religions
head(atheism)
## # A tibble: 6 x 3
##   nationality response     year
##   <fct>       <fct>       <int>
## 1 Afghanistan non-atheist  2012
## 2 Afghanistan non-atheist  2012
## 3 Afghanistan non-atheist  2012
## 4 Afghanistan non-atheist  2012
## 5 Afghanistan non-atheist  2012
## 6 Afghanistan non-atheist  2012

To investigate the link between these two ways of organizing this data, take a look at the estimated proportion of atheists in the United States. Towards the bottom of Table 6, we see that this is 5%. We should be able to come to the same number using the atheism data.

Create a new dataframe called us12 that contains only the rows in atheism associated with respondents to the 2012 survey from the United States:

us12 <- atheism %>%
  filter(nationality == "United States" , atheism$year == "2012")
head(us12)
## # A tibble: 6 x 3
##   nationality   response     year
##   <fct>         <fct>       <int>
## 1 United States non-atheist  2012
## 2 United States non-atheist  2012
## 3 United States non-atheist  2012
## 4 United States non-atheist  2012
## 5 United States non-atheist  2012
## 6 United States non-atheist  2012
  1. Next, calculate the proportion of atheist responses in the United States in 2012, i.e. in us12. True / False: This percentage agrees with the percentage in Table~6.
    1. True
    2. False
# type your code for Question 7 here, and Knit
us12 %>%
  filter(nationality == "United States") %>%
  group_by(response) %>%
  summarise(freq=n()) %>%
  mutate(prop=freq/sum(freq)*100)
## `summarise()` ungrouping output (override with `.groups` argument)
## # A tibble: 2 x 3
##   response     freq  prop
##   <fct>       <int> <dbl>
## 1 atheist        50  4.99
## 2 non-atheist   952 95.0

Inference on proportions

As was hinted earlier, Table 6 provides sample statistics, that is, calculations made from the sample of 51,927 people. What we’d like, though, is insight into the population population parameters. You answer the question, “What proportion of people in your sample reported being atheists?” with a statistic; while the question “What proportion of people on earth would report being atheists” is answered with an estimate of the parameter.

The inferential tools for estimating population proportion are analogous to those used for means in the last lab: the confidence interval and the hypothesis test.

Exercise: Write out the conditions for inference to construct a 95% confidence interval for the proportion of atheists in the United States in 2012. Are you confident all conditions are met?

Conditions for inference for creating a CI for a observed proportion

  • Independence: Since this is an observational study, the data should contain less than 10% of the population. Since 1002 observations is far less than 10% of the population of the United States, the independence condition is satisfied.
  • Sample size/skew:
    • There should be at least 10 successes and failures in the sample.
    • Assuming, ‘atheist’ constitutes a success, we have 50 successes and 952 failures, which is greater than 10
    • Hence success failure condition is met

If the conditions for inference are reasonable, we can either calculate the standard error and construct the interval by hand, or allow the inference function to do it for us.

inference(y = response, data = us12, statistic = "proportion", type = "ci", method = "theoretical", success = "atheist")
## Single categorical variable, success: atheist
## n = 1002, p-hat = 0.0499
## 95% CI: (0.0364 , 0.0634)

Note that since the goal is to construct an interval estimate for a proportion, it’s necessary to specify what constitutes a `success'', which here is a response ofatheist`.

Although formal confidence intervals and hypothesis tests don’t show up in the report, suggestions of inference appear at the bottom of page 7: “In general, the error margin for surveys of this kind is \(\pm\) 3-5% at 95% confidence.”

Exercise: Imagine that, after reading a front page story about the latest public opinion poll, a family member asks you, “What is a margin of error?” In one sentence, and ignoring the mechanics behind the calculation, how would you respond in a way that conveys the general concept?

The margin of error is the range of values above and below the sample estimate in which our population parameter could lie. It also shows the uncertainty associated with our sample estimate.

  1. Based on the R output, what is the margin of error for the estimate of the proportion of the proportion of atheists in US in 2012?
    1. The margin of error for the estimate of the proportion of atheists in the US in 2012 is 0.05.
    2. The margin of error for the estimate of the proportion of atheists in the US in 2012 is 0.025.
    3. The margin of error for the estimate of the proportion of atheists in the US in 2012 is 0.0135.
# type your code for Question 8 here, and Knit
ci95 <- inference(y = response, data = us12, statistic = "proportion", type = "ci", method = "theoretical", success = "atheist")
## Single categorical variable, success: atheist
## n = 1002, p-hat = 0.0499
## 95% CI: (0.0364 , 0.0634)

ci95$ME
## [1] 0.0135

Exercise: Using the inference function, calculate confidence intervals for the proportion of atheists in 2012 in two other countries of your choice, and report the associated margins of error. Be sure to note whether the conditions for inference are met. It may be helpful to create new data sets for each of the two countries first, and then use these data sets in the inference function to construct the confidence intervals.

# type your code for the Exercise here, and Knit
atheism %>%
  filter(nationality == "India", atheism$year == "2012") %>%
  group_by(response) %>%
  summarise(freq=n()) %>%
  mutate(prop=freq/sum(freq)*100)
## `summarise()` ungrouping output (override with `.groups` argument)
## # A tibble: 2 x 3
##   response     freq  prop
##   <fct>       <int> <dbl>
## 1 atheist        33  3.02
## 2 non-atheist  1059 97.0
atheism %>%
  filter(nationality == "France", atheism$year == "2012") %>%
  group_by(response) %>%
  summarise(freq=n()) %>%
  mutate(prop=freq/sum(freq)*100)
## `summarise()` ungrouping output (override with `.groups` argument)
## # A tibble: 2 x 3
##   response     freq  prop
##   <fct>       <int> <dbl>
## 1 atheist       485  28.7
## 2 non-atheist  1203  71.3

The two countries we’re going to calculating confidence intervals for are India and France These are confidence intervals for the proportion of atheists in 2012.

Conditions for inference for creating a CI for a observed proportion

  • Independence: Since this is an observational study, the data should contain less than 10% of the population. Since 1092 and 1688 observations are far less than 10% of the population of India and France, respectively, the independence condition is satisfied.
  • Sample size/skew:
    • There should be at least 10 successes and failures in the sample.
    • Assuming, ‘atheist’ constitutes a success, we have 33 successes and 1059 failures for the sample for India and 485 successes and 1203 failures for the sample for France, which are all greater than 10
    • Hence success failure condition is met
in95 <- inference(y = response, data = atheism %>%
  filter(nationality == "India", atheism$year == "2012"), statistic = "proportion", type = "ci", method = "theoretical", success = "atheist")
## Single categorical variable, success: atheist
## n = 1092, p-hat = 0.0302
## 95% CI: (0.0201 , 0.0404)

in95$CI
## [1] 0.0201 0.0404
in95$ME
## [1] 0.0102

We are 95% confident that approximately 2% to 4% of people from India are atheists. The margin of error for this approximation is $$1.02%.

fr95 <- inference(y = response, data = atheism %>%
  filter(nationality == "France", atheism$year == "2012"), statistic = "proportion", type = "ci", method = "theoretical", success = "atheist")
## Single categorical variable, success: atheist
## n = 1688, p-hat = 0.2873
## 95% CI: (0.2657 , 0.3089)

fr95$CI
## [1] 0.2657 0.3089
fr95$ME
## [1] 0.0216

We are 95% confident that approximately 2.7% to 3% of people from France are atheists. The margin of error for this approximation is $$2.16%.

How does the proportion affect the margin of error?

Imagine you’ve set out to survey 1000 people on two questions: are you female? and are you left-handed? Since both of these sample proportions were calculated from the same sample size, they should have the same margin of error, right? Wrong! While the margin of error does change with sample size, it is also affected by the proportion.

Think back to the formula for the standard error: \(SE = \sqrt{p(1-p)/n}\). This is then used in the formula for the margin of error for a 95% confidence interval: \(ME = 1.96\times SE = 1.96\times\sqrt{p(1-p)/n}\). Since the population proportion \(p\) is in this \(ME\) formula, it should make sense that the margin of error is in some way dependent on the population proportion. We can visualize this relationship by creating a plot of \(ME\) vs. \(p\).

The first step is to make a vector p that is a sequence from \(0\) to \(1\) with each number separated by \(0.01\). We can then create a vector of the margin of error (me) associated with each of these values of p using the familiar approximate formula (\(ME = 1.96 \times SE\)). Lastly, we plot the two vectors against each other to reveal their relationship.

d <- data.frame(p <- seq(0, 1, 0.01))
n <- 1000
d <- d %>%
  mutate(me = 1.96*sqrt(p*(1 - p)/n))
ggplot(d, aes(x = p, y = me)) +
  geom_line()

  1. Which of the following is false about the relationship between \(p\) and \(ME\).
    1. The \(ME\) reaches a minimum at \(p = 0\).
    2. The \(ME\) reaches a minimum at \(p = 1\).
    3. The \(ME\) is maximized when \(p = 0.5\).
    4. The most conservative estimate when calculating a confidence interval occurs when \(p\) is set to 1.

The question of atheism was asked by WIN-Gallup International in a similar survey that was conducted in 2005. We assume here that sample sizes have remained the same. Table 4 on page 13 of the report summarizes survey results from 2005 and 2012 for 39 countries.

Answer the following two questions using the inference function. As always, write out the hypotheses for any tests you conduct and outline the status of the conditions for inference.

  1. True / False: There is convincing evidence that Spain has seen a change in its atheism index between 2005 and 2012.

    Hint: Create a new data set for respondents from Spain. Then use their responses as the first input on the inference, and use year as the grouping variable.
    1. True
    2. False
# type your code for Question 10 here, and Knit
sp <- atheism %>%
  filter(nationality == "Spain", atheism$year == c("2005", "2012"))
sp %>%
  group_by(year) %>%
  summarise(freq=n())
## `summarise()` ungrouping output (override with `.groups` argument)
## # A tibble: 2 x 2
##    year  freq
##   <int> <int>
## 1  2005   573
## 2  2012   573
sp %>%
  group_by(response) %>%
  summarise(freq=n()) %>%
  mutate(prop=freq/sum(freq))
## `summarise()` ungrouping output (override with `.groups` argument)
## # A tibble: 2 x 3
##   response     freq   prop
##   <fct>       <int>  <dbl>
## 1 atheist       108 0.0942
## 2 non-atheist  1038 0.906

Conditions for inference for comparing two independent proportions

  • Independence:
    • within groups: Since this is an observational study, the data should contain less than 10% of the population. Since 573 and 473 observations are far less than 10% of the population for 2005 and 2012, respectively, the independence condition is satisfied for within groups.
    • between groups: it’s safe to assume that the two groups are not paired and are independent of each other. The observations are also 7 years apart, and influence by peers can be assumed negligible.
  • Sample size/skew:
    • There should be at least 10 successes and failures in the sample.
    • The \(p_{pool}\) for this sample is 0.0942, assuming ‘atheist’ constitutes a success.
    • For the year 2005, n_sucesses = 0.0942*573 = 54 and n_failures = 519, both are greater than 10.
    • For the year 2012, n_sucesses = 0.0942*573 = 54 and n_failures = 519, both are greater than 10.
    • Hence success failure condition is met
inference(y = response, x = year, data = sp, statistic = "proportion", type = "ht", method = "theoretical", success = "atheist", null= 0, alternative = "twosided")
## Warning: Explanatory variable was numerical, it has been converted
##               to categorical. In order to avoid this warning, first convert
##               your explanatory variable to a categorical variable using the
##               as.factor() function
## Response variable: categorical (2 levels, success: atheist)
## Explanatory variable: categorical (2 levels) 
## n_2005 = 573, p_hat_2005 = 0.0977
## n_2012 = 573, p_hat_2012 = 0.0908
## H0: p_2005 =  p_2012
## HA: p_2005 != p_2012
## z = 0.4044
## p_value = 0.6859

  1. True / False: There is convincing evidence that the United States has seen a change in its atheism index between 2005 and 2012.
    1. True
    2. False
# type your code for Question 11 here, and Knit
inference(y = response, x = year, data = atheism %>%
  filter(nationality == "United States", atheism$year == c("2005", "2012")), statistic = "proportion", type = "ht", method = "theoretical", success = "atheist", null= 0, alternative = "twosided")
## Warning: Explanatory variable was numerical, it has been converted
##               to categorical. In order to avoid this warning, first convert
##               your explanatory variable to a categorical variable using the
##               as.factor() function
## Response variable: categorical (2 levels, success: atheist)
## Explanatory variable: categorical (2 levels) 
## n_2005 = 501, p_hat_2005 = 0.012
## n_2012 = 501, p_hat_2012 = 0.0599
## H0: p_2005 =  p_2012
## HA: p_2005 != p_2012
## z = -4.0739
## p_value = < 0.0001

  1. If in fact there has been no change in the atheism index in the countries listed in Table 4, in how many of those countries would you expect to detect a change (at a significance level of 0.05) simply by chance?

    Hint: Type 1 error.
    1. 0
    2. 1
    3. 1.95
    4. 5

A type 1 error is rejecting the null hypothesis when H0 is actually true. We typically do not want to incorrectly reject H0 more than 5% of the time. This corresponds to a significance level of 0.05.

# type your code for Question 12 here, and Knit
39*0.05
## [1] 1.95

Since there are 39 countries in Table 4 that summarizes survey results from 2005 to 2012 we will need to multiply 0.05 by 39 to estimate how many countries we would expect to detect a change in the atheism index simply by chance. the result is 1.95, or 2 countries.

  1. Suppose you’re hired by the local government to estimate the proportion of residents that attend a religious service on a weekly basis. According to the guidelines, the estimate must have a margin of error no greater than 1% with 95% confidence. You have no idea what to expect for \(p\). How many people would you have to sample to ensure that you are within the guidelines?

    Hint: Refer to your plot of the relationship between \(p\) and margin of error. Do not use the data set to answer this question.
    1. 2401 people
    2. At least 2401 people
    3. 9604 people
    4. At least 9604 people

To find a sample size n so that the sample proportion is within 1% margin of error of the actual proportion at a 95% confidence interval:

Using the formula for the margin of error: \(0.01 \lt z^{*}\times \sqrt{p(1-p)/n}\)

Since at 95% confidence interval \(z^{*} = 1.96\), we can find \(n \lt (1.96^{2} \times p(1-p))/0.01^{2}\)

# type your code for Question 13 here, and Knit
((1.96**2) * (0.5 * 0.5))/(0.01 ** 2)
## [1] 9604

References

This is a product of OpenIntro that is released under a Creative Commons Attribution-ShareAlike 3.0 Unported. This lab was written for OpenIntro by Andrew Bray and Mine Çetinkaya-Rundel.