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.
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.
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.
“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)”
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.
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:
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.
atheism correspond to?
## # 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:
## # 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
us12. True / False: This percentage agrees with the percentage in Table~6.
# 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
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?
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.
# 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)
## [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.
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)
## [1] 0.0201 0.0404
## [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)
## [1] 0.2657 0.3089
## [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%.
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()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.
inference, and use year as the grouping variable.
# 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
## `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
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
# 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
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.
## [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.
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}\)
## [1] 9604
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.