--- title: "SDM4 in R: Confidence Intervals for Proportions (Chapter 18)" author: "Nicholas Horton (nhorton@amherst.edu)" date: "June 13, 2018" output: pdf_document: fig_height: 2.8 fig_width: 6 html_document: fig_height: 3 fig_width: 5 word_document: fig_height: 4 fig_width: 6 --- ```{r, include = FALSE} # Don't delete this chunk if you are using the mosaic package # This loads the mosaic and dplyr packages require(mosaic) options(digits = 3) ``` ```{r, include = FALSE} # knitr settings to control how R chunks work. require(knitr) opts_chunk$set( tidy = FALSE, # display code as typed size = "small" # slightly smaller font for code ) ``` ## Introduction and background This document is intended to help describe how to undertake analyses introduced as examples in the Fourth Edition of *Stats: Data and Models* (2014) by De Veaux, Velleman, and Bock. More information about the book can be found at http://wps.aw.com/aw_deveaux_stats_series. This file as well as the associated R Markdown reproducible analysis source file used to create it can be found at http://nhorton.people.amherst.edu/sdm4. This work leverages initiatives undertaken by Project MOSAIC (http://www.mosaic-web.org), an NSF-funded effort to improve the teaching of statistics, calculus, science and computing in the undergraduate curriculum. In particular, we utilize the `mosaic` package, which was written to simplify the use of R for introductory statistics courses. A short summary of the R needed to teach introductory statistics can be found in the mosaic package vignettes (http://cran.r-project.org/web/packages/mosaic). A paper describing the mosaic approach was published in the *R Journal*: https://journal.r-project.org/archive/2017/RJ-2017-024. ## Chapter 18: Confidence intervals for proportions ### Section 18.1: A confidence interval The Facebook survey of 156 respondents yielded 48 who updated their status every day (or more often). ```{r} n <- 156 binom.test(48, n) # exact binomial ``` Calculation on page 473 ```{r} phat <- 48/n phat sep <- sqrt(phat*(1-phat)/n) sep # matches value on page 473 interval <- phat + c(-2, 2)*sep interval ``` ### Section 18.2: Interpreting confidence intervals ```{r warning = FALSE} set.seed(1988) CIsim(n = 100, samples = 20) ``` We would expect 19 out of 20 of the intervals to cover the true (population) value, but here only 18 out of 20 actually covered that value (see Figure at top of page 476). ### Section 18.3: Margin of error We can replicate the calculation for the "For Example: Finding the margin of error Take 1" (page 478) ```{r} sdp <- sqrt(.5*.5/1010) sdp # worst case margin of error (based on p=0.5) me <- 2*sdp me ``` We can replicate the calculation for the "For Example: Finding the margin of error Take 1" (pages 478-479) ```{r} qnorm(.95, mean = 0, sd = 1) # z-star for 90% confidence interval sep <- sqrt(.4*.6/1010) sep me <- 1.6445*sep me ``` ### Section 18.4: Assumptions We can replicate the calculation for the "For Example: choosing a sample size" (page 482) ```{r} zstar <- qnorm(.975, mean = 0, sd = 1) zstar me <- 0.02 # desired margin of error p <- 0.40 n <- (zstar*sqrt(p*(1-p))/me)^2 n ``` We will need about 2305 subjects to yield a margin of error of 2% under these assumptions.