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.
To access the press release for the poll, conducted by WIN-Gallup International, click on the following link:
Take a moment to review the report then address the following questions.
Key findings are presented as population parameters, not sample statistics. They are presented as generalized characteristics of the population at large.
For the reports to be generalized the sample proportion of Atheist used in the analysis should have a normal distribution. For this to be the case the:
1) Sample observations need to be independent. Because the study used 50,000 men and women (chosen at random, although that isn’t stated) from 57 countries, that being less than 10% of the global human population, we can assume they are independent.
2) The success-failure condition should be satisfied. We compute successes and failures for each proportion. As can be seen below all of them are greater than 10, which means they meet the condition.
n<-50000
patheist<-0.13
prelegious<-0.59
pnotrelegious<-0.23
ta1<-n*patheist
ta1## [1] 6500
ta2<-n*(1-patheist)
ta2## [1] 43500
tr1<-n*prelegious
tr1## [1] 29500
tr2<-n*(1-prelegious)
tr2## [1] 20500
tn1<-n*pnotrelegious
tn1## [1] 11500
tn2<-n*(1-pnotrelegious)
tn2## [1] 38500
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.
load("more/atheism.RData")atheism correspond to?Each row in table 6 corresponds to data for each country. That is data for all proportions and the number of samples n.
The atheism table on the other had, has rows corresponding to each individual surveyed. That is each individual’s country and the answer to which group they affiliate to as well as the year they were surveyed.
head(atheism)## nationality response year
## 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.
us12 that contains only the rows in atheism associated with respondents to the 2012 survey from the United States. Next, calculate the proportion of atheist responses. Does it agree with the percentage in Table 6? If not, why?Table shows this proportion to be 5%, sa as calculated before from the dataset
us12 <- subset(atheism, nationality == "United States" & year == "2012")
head(us12)## nationality response year
## 49926 United States non-atheist 2012
## 49927 United States non-atheist 2012
## 49928 United States non-atheist 2012
## 49929 United States non-atheist 2012
## 49930 United States non-atheist 2012
## 49931 United States non-atheist 2012
print(paste("Proportion of US 2012 census atheist responces is ",toString(round(nrow(subset(us12,response=="atheist"))/nrow(us12)*100,0)),"%",sep=""))## [1] "Proportion of US 2012 census atheist responces is 5%"
As was hinted at in Exercise 1, Table 6 provides statistics, that is, calculations made from the sample of 51,927 people. What we’d like, though, is insight into the 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 chapter: the confidence interval and the hypothesis test.
To be able to perform this calculation, the sampling distribution needs to be nearly normal. Conditions to safely make this assumptions are:
Observations are independent. In this case our sample is assumed random and represents less than 10% of the global population, and less than 10% for each country.
Success-failure condition. Sample sizes need to be sufficiently large so that successes and failures are both greater than 10. Below it is shown how this condition is also met.
n<-nrow(us12)
p<-nrow(subset(us12,response=="atheist"))/nrow(us12)
n*p## [1] 50
n*(1-p)## [1] 952
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(us12$response, est = "proportion", type = "ci", method = "theoretical",
success = "atheist")## Single proportion -- success: atheist
## Summary statistics:
## p_hat = 0.0499 ; n = 1002
## Check conditions: number of successes = 50 ; number of failures = 952
## Standard error = 0.0069
## 95 % Confidence interval = ( 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 of "atheist".
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”.
Marging of error = zSE From above we know SE=0.0069 For a 95% confidence level z=1.96
Calculated below:
SE<-0.0069
Z<-1.96
ME<-Z*SE
ME## [1] 0.013524
paste("Marging of error: ME =",ME)## [1] "Marging of error: ME = 0.013524"
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.Ukraine
ukr12 <- subset(atheism, nationality == "Ukraine" & year == "2012")
head(ukr12)## nationality response year
## 48913 Ukraine non-atheist 2012
## 48914 Ukraine non-atheist 2012
## 48915 Ukraine non-atheist 2012
## 48916 Ukraine non-atheist 2012
## 48917 Ukraine non-atheist 2012
## 48918 Ukraine non-atheist 2012
n<-nrow(ukr12)
p<-nrow(subset(ukr12,response=="atheist"))/nrow(ukr12)
p## [1] 0.029615
s<-n*p
s## [1] 30
f<-n*(1-p)
f## [1] 983
if (s>10 & f>10) {
print("Conditions are met")
}## [1] "Conditions are met"
res<-inference(ukr12$response, est = "proportion", type = "ci", method = "theoretical", success = "atheist")## Single proportion -- success: atheist
## Summary statistics:
## p_hat = 0.0296 ; n = 1013
## Check conditions: number of successes = 30 ; number of failures = 983
## Standard error = 0.0053
## 95 % Confidence interval = ( 0.0192 , 0.0401 )
Using the results
SE<-0.0053
Z<-1.96
ME<-Z*SE
ME## [1] 0.010388
paste("Marging of error: ME =",ME)## [1] "Marging of error: ME = 0.010388"
Germany
gr12 <- subset(atheism, nationality == "Germany" & year == "2012")
head(gr12)## nationality response year
## 18310 Germany atheist 2012
## 18311 Germany non-atheist 2012
## 18312 Germany non-atheist 2012
## 18313 Germany non-atheist 2012
## 18314 Germany non-atheist 2012
## 18315 Germany non-atheist 2012
n<-nrow(gr12)
p<-nrow(subset(gr12,response=="atheist"))/nrow(gr12)
p## [1] 0.1494024
s<-n*p
s## [1] 75
f<-n*(1-p)
f## [1] 427
if (s>10 & f>10) {
print("Conditions are met")
}## [1] "Conditions are met"
inference(gr12$response, est = "proportion", type = "ci", method = "theoretical", success = "atheist")## Single proportion -- success: atheist
## Summary statistics:
## p_hat = 0.1494 ; n = 502
## Check conditions: number of successes = 75 ; number of failures = 427
## Standard error = 0.0159
## 95 % Confidence interval = ( 0.1182 , 0.1806 )
Using the results
SE<-0.0159
Z<-1.96
ME<-Z*SE
ME## [1] 0.031164
paste("Marging of error: ME =",ME)## [1] "Marging of error: ME = 0.031164"
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 = 2 \times SE\)). Lastly, we plot the two vectors against each other to reveal their relationship.
n <- 1000
p <- seq(0, 1, 0.01)
me <- 2 * sqrt(p * (1 - p)/n)
plot(me ~ p, ylab = "Margin of Error", xlab = "Population Proportion")p and me.The relationship between p and me is non linear, but also it has a max at a proportion of 0.5 an minimuns zero at p=0 and p=1
We can confirm this looking at the formula for me
Calculating for the max
p<-0.5
2 * sqrt(p * (1 - p)/n)## [1] 0.03162278
max(me) # we confirm this is the maximum## [1] 0.03162278
Calculating for the min
p<-0
2 * sqrt(p * (1 - p)/n)## [1] 0
p<-1
2 * sqrt(p * (1 - p)/n)## [1] 0
min(me) # we confirm these are the minimum## [1] 0
The textbook emphasizes that you must always check conditions before making inference. For inference on proportions, the sample proportion can be assumed to be nearly normal if it is based upon a random sample of independent observations and if both \(np \geq 10\) and \(n(1 - p) \geq 10\). This rule of thumb is easy enough to follow, but it makes one wonder: what’s so special about the number 10?
The short answer is: nothing. You could argue that we would be fine with 9 or that we really should be using 11. What is the “best” value for such a rule of thumb is, at least to some degree, arbitrary. However, when \(np\) and \(n(1-p)\) reaches 10 the sampling distribution is sufficiently normal to use confidence intervals and hypothesis tests that are based on that approximation.
We can investigate the interplay between \(n\) and \(p\) and the shape of the sampling distribution by using simulations. To start off, we simulate the process of drawing 5000 samples of size 1040 from a population with a true atheist proportion of 0.1. For each of the 5000 samples we compute \(\hat{p}\) and then plot a histogram to visualize their distribution.
p <- 0.1
n <- 1040
p_hats <- rep(0, 5000)
for(i in 1:5000){
samp <- sample(c("atheist", "non_atheist"), n, replace = TRUE, prob = c(p, 1-p))
p_hats[i] <- sum(samp == "atheist")/n
}
hist(p_hats, main = "p = 0.1, n = 1040", xlim = c(0, 0.18))These commands build up the sampling distribution of \(\hat{p}\) using the familiar for loop. You can read the sampling procedure for the first line of code inside the for loop as, “take a sample of size \(n\) with replacement from the choices of atheist and non-atheist with probabilities \(p\) and \(1 - p\), respectively.” The second line in the loop says, “calculate the proportion of atheists in this sample and record this value.” The loop allows us to repeat this process 5,000 times to build a good representation of the sampling distribution.
mean to calculate summary statistics.The distributions looks to be normal. As calculated below it is centered on 0.099 ~ 0.1 and has a standard deviation, or indication of spread, of 0.0092
Also below is the probability plot for p_hats, which also show how it is a normal distribution.
mean(p_hats)## [1] 0.09969
sd(p_hats)## [1] 0.009287382
qqnorm(p_hats)
qqline(p_hats)par(mfrow = c(2, 2)) command before creating the histograms. You may need to expand the plot window to accommodate the larger two-by-two plot. Describe the three new sampling distributions. Based on these limited plots, how does \(n\) appear to affect the distribution of \(\hat{p}\)? How does \(p\) affect the sampling distribution?The simulations below show that n affects the spread of the distributions. With larger n we see less spread, or smaller distributions standard deviations.
\(p\) on the other hand changes where the distributions are centered, that is their mean.
proportionSimulation<-function(n,p) {
p_hats <- rep(0, 5000)
for(i in 1:5000){
samp <- sample(c("atheist", "non_atheist"), n, replace = TRUE, prob = c(p, 1-p))
p_hats[i] <- sum(samp == "atheist")/n
}
print(paste("Mean:",mean(p_hats)))
print(paste("Standard Deviation:",sd(p_hats)))
hist(p_hats, main = paste("p =",p,", n =",n), xlim = c(0, 0.18))
}
par(mfrow=c(2,2))
proportionSimulation(1040,0.1)## [1] "Mean: 0.0999109615384615"
## [1] "Standard Deviation: 0.00924424652659742"
proportionSimulation(400,0.1)## [1] "Mean: 0.1001565"
## [1] "Standard Deviation: 0.0152521566805053"
proportionSimulation(1040,0.02)## [1] "Mean: 0.0199417307692308"
## [1] "Standard Deviation: 0.00423882257934567"
proportionSimulation(400,0.02)## [1] "Mean: 0.020053"
## [1] "Standard Deviation: 0.00697545141080324"
Once you’re done, you can reset the layout of the plotting window by using the command par(mfrow = c(1, 1)) command or clicking on “Clear All” above the plotting window (if using RStudio). Note that the latter will get rid of all your previous plots.
We need to see if they pass the normality test, that is, samples are independent and success and failure is greater than 10.
Both have small n compared to the actual population of the population in those countries, they we assume independence.
For success and failure we do the analysis below. Here we find that the test passes for Australia, but failed for Ecuador, with n*p being 8, below 10. So we can proceed with confidence with Australia, but with Ecuador we should exercise some caution. A limit of 10 is subjective, so an 8 might not completely invalidate results, but they should be taking with pre-cautions.
Australia
n<-1040
p<-0.1
s<-n*p
s## [1] 104
f<-n*(1-p)
f## [1] 936
if (s>10 & f>10) {
print("Success-failure condition passed")
} else {
print("Success-failure condition failed")
}## [1] "Success-failure condition passed"
Ecuador
n<-400
p<-0.02
s<-n*p
s## [1] 8
f<-n*(1-p)
f## [1] 392
if (s>10 & f>10) {
print("Success-failure condition passed")
} else {
print("Success-failure condition failed")
}## [1] "Success-failure condition failed"
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.
1 - 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.
**a.** Is there 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. Form
confidence intervals for the true proportion of athiests in both
years, and determine whether they overlap.
We calculate the confidence intervals for Spain for both years below. Results show that the intervals overlap.
Intervals ( 0.0734 , 0.1065 ) and ( 0.083 , 0.1177 ) for 2012 and 2005 respectively. Which means there is not enough evidence to support the statement that Spain has seen a change in its atheism index between the two years.
sp12 <- subset(atheism, nationality == "Spain" & year == "2012")
head(sp12)## nationality response year
## 45230 Spain non-atheist 2012
## 45231 Spain non-atheist 2012
## 45232 Spain non-atheist 2012
## 45233 Spain non-atheist 2012
## 45234 Spain non-atheist 2012
## 45235 Spain non-atheist 2012
sp05 <- subset(atheism, nationality == "Spain" & year == "2005")
head(sp05)## nationality response year
## 61188 Spain non-atheist 2005
## 61189 Spain non-atheist 2005
## 61190 Spain non-atheist 2005
## 61191 Spain non-atheist 2005
## 61192 Spain non-atheist 2005
## 61193 Spain non-atheist 2005
inference(sp12$response, est = "proportion", type = "ci", method = "theoretical", success = "atheist")## Single proportion -- success: atheist
## Summary statistics:
## p_hat = 0.09 ; n = 1145
## Check conditions: number of successes = 103 ; number of failures = 1042
## Standard error = 0.0085
## 95 % Confidence interval = ( 0.0734 , 0.1065 )
inference(sp05$response, est = "proportion", type = "ci", method = "theoretical", success = "atheist")## Single proportion -- success: atheist
## Summary statistics:
## p_hat = 0.1003 ; n = 1146
## Check conditions: number of successes = 115 ; number of failures = 1031
## Standard error = 0.0089
## 95 % Confidence interval = ( 0.083 , 0.1177 )
**b.** Is there convincing evidence that the United States has seen a
change in its atheism index between 2005 and 2012?
We run the same analysis for United States, which results in two intervals, ( 0.0364 , 0.0634 ) in 2012 and ( 0.0038 , 0.0161 ) in 2005, which do not overlap. In this case we do seem to see enough evidence that suggests that there has been a change in the atheism index.
us12 <- subset(atheism, nationality == "United States" & year == "2012")
head(us12)## nationality response year
## 49926 United States non-atheist 2012
## 49927 United States non-atheist 2012
## 49928 United States non-atheist 2012
## 49929 United States non-atheist 2012
## 49930 United States non-atheist 2012
## 49931 United States non-atheist 2012
us05 <- subset(atheism, nationality == "United States" & year == "2005")
head(us05)## nationality response year
## 67899 United States non-atheist 2005
## 67900 United States non-atheist 2005
## 67901 United States non-atheist 2005
## 67902 United States non-atheist 2005
## 67903 United States non-atheist 2005
## 67904 United States non-atheist 2005
inference(us12$response, est = "proportion", type = "ci", method = "theoretical", success = "atheist")## Single proportion -- success: atheist
## Summary statistics:
## p_hat = 0.0499 ; n = 1002
## Check conditions: number of successes = 50 ; number of failures = 952
## Standard error = 0.0069
## 95 % Confidence interval = ( 0.0364 , 0.0634 )
inference(us05$response, est = "proportion", type = "ci", method = "theoretical", success = "atheist")## Single proportion -- success: atheist
## Summary statistics:
## p_hat = 0.01 ; n = 1002
## Check conditions: number of successes = 10 ; number of failures = 992
## Standard error = 0.0031
## 95 % Confidence interval = ( 0.0038 , 0.0161 )
2 - 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: Look in the textbook index under Type 1 error.
If there has in fact been no change, then seen a change would represent a Type I error, in which we erroneously reject the null hypothesis. At a 0.05 significance level, we would expect 5% of the countries to detect a change simply by chance. With 39 countries we would expect about 2 of them to detect a change simply by chance (5% of 39 is 1.95~2)
3 - 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.
We can refer back to the graph mentioned. The \(p\) is not kwon. But using the graph we can find the \(p\) that correspond to a margin of error of 0.01. Knowing the relationship between margin of error, z* and standard error we can compute the required n.
ME = z* SE => SE = ME / z*
SE = \(\sqrt{p(1-p)/n}\) => n = p(1-p) / SE\(^2\)
ME<-0.01
Z<-1.96 #95% confidence
SE<-ME/Z
SE## [1] 0.005102041
n <- 1000
p <- seq(0, 1, 0.01)
me <- 1.96 * sqrt(p * (1 - p)/n)
plot(me ~ p, ylab = "Margin of Error", xlab = "Population Proportion")p1<-min(which(me>0.01)) #conpute n for the lower side of the graph
p[p1]## [1] 0.03
n<-p[p1]*(1-p[p1])/SE^2
ceiling(n)## [1] 1118
p2<-max(which(me>0.01)) #compute n for the top side of the graph, should result in the same n
p[p2]## [1] 0.97
n<-p[p2]*(1-p[p2])/SE^2
ceiling(n)## [1] 1118
Also using the supplied graph, we can calculate the n for the maximum amount of margin error since the graph shows that the corresponding \(p\) is 0.5.
ME<-0.01
Z<-1.96 #95% confidence
SE<-ME/Z
SE## [1] 0.005102041
p<-0.5
n<-p*(1-p)/SE^2
ceiling(n)## [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.