R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

summary(cars)
##      speed           dist       
##  Min.   : 4.0   Min.   :  2.00  
##  1st Qu.:12.0   1st Qu.: 26.00  
##  Median :15.0   Median : 36.00  
##  Mean   :15.4   Mean   : 42.98  
##  3rd Qu.:19.0   3rd Qu.: 56.00  
##  Max.   :25.0   Max.   :120.00

Including Plots

You can also embed plots, for example:

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot. set.seed(123) # For reproducibility

n <- 5 # Sample size mu <- 50 # True mean sigma <- 4 # True standard deviation B <- 50 # Number of samples conf.level <- 0.90

Storage for lower and upper bounds of CI

lower_bounds <- numeric(B) upper_bounds <- numeric(B) contains_mu <- logical(B)

Generate samples and compute confidence intervals

for (i in 1:B) { sample <- rnorm(n, mean = mu, sd = sigma) sample_mean <- mean(sample) sample_sd <- sd(sample) t_crit <- qt(1 - (1 - conf.level)/2, df = n - 1) margin_error <- t_crit * (sample_sd / sqrt(n))

lower_bounds[i] <- sample_mean - margin_error upper_bounds[i] <- sample_mean + margin_error contains_mu[i] <- lower_bounds[i] <= mu & upper_bounds[i] >= mu }

Plotting

plot(c(1, B), range(lower_bounds, upper_bounds), type = “n”, xlab = “Sample Index”, ylab = “Confidence Interval”, main = “90% CIs for μ”)

for (i in 1:B) { col <- ifelse(contains_mu[i], “blue”, “red”) lines(c(i, i), c(lower_bounds[i], upper_bounds[i]), col = col, lwd = 2) points(i, lower_bounds[i], pch = 16, col = col) points(i, upper_bounds[i], pch = 16, col = col) }

abline(h = mu, col = “black”, lty = 2)

Output how many intervals contain mu

cat(“Number of confidence intervals that contain μ = 50:”, sum(contains_mu), “”)