---
title: "Inference for a normal population: R code for Chapter 11 examples"
author: "Michael Whitlock and Dolph Schluter"
output:
html_document:
toc: yes
toc_depth: 3
---
_Note: This document was converted to R-Markdown from [this page](http://whitlockschluter.zoology.ubc.ca/r-code/rcode11) by M. Drew LaMar. You can download the R-Markdown [here](https://qubeshub.org/collections/post/1279/download/chap11.Rmd)._
Download the R code on this page as a single file [here](http://whitlockschluter.zoology.ubc.ca/wp-content/rcode/chap11.r)
## New methods
Hover over a function argument for a short description of its meaning. The variable names are plucked from the examples further below.
**One-sample $t$-test:**
> t.test(heat$temperature, mu = 98.6)
**Other new methods:**
Confidence intervals for the variance and the standard deviation.
## Example 11.2. [Stalk-eyed flies](http://whitlockschluter.zoology.ubc.ca/wp-content/data/chapter11/chap11e2Stalkies.csv)
*__Confidence intervals for the population mean, variance, and standard deviation__ using eye span measurements from a sample of stalk-eyed flies.*
Read and inspect the data.
```{r}
stalkie <- read.csv(url("http://whitlockschluter.zoology.ubc.ca/wp-content/data/chapter11/chap11e2Stalkies.csv"))
stalkie
```
**Histogram** with options
```{r, fig.width=4, fig.height=4}
hist(stalkie$eyespan, right = FALSE, col = "firebrick", las = 1,xlab = "Eye span (mm)", ylab = "Frequency", main = "")
```
**95% confidence interval for the mean.** Adding `$conf.int` after the function `t.test` causes R to give the 95% confidence interval for the mean.
```{r}
t.test(stalkie$eyespan)$conf.int
```
**99% confidence interval for the mean.** Adding the argument `conf.level=0.99` changes the confidence level of the confidence interval.
```{r}
t.test(stalkie$eyespan, conf.level = 0.99)$conf.int
```
**95% confidence interval for variance.** R has no built-in function for the confidence interval of a variance, so must we compute it using the formula in the book:
```{r}
df <- length(stalkie$eyespan) - 1
varStalkie <- var(stalkie$eyespan)
lower = varStalkie * df / qchisq(0.05/2, df, lower.tail = FALSE)
upper = varStalkie * df / qchisq(1 - 0.05/2, df, lower.tail = FALSE)
c(lower = lower, variance = varStalkie, upper = upper)
```
**95% confidence interval for standard deviation.** Calculated from the confidence interval of the variance, which we just calculated above.
```{r}
c(lower = sqrt(lower), std.dev = sqrt(varStalkie), upper = sqrt(upper))
```
## Example 11.3. [Human body temperature](http://whitlockschluter.zoology.ubc.ca/wp-content/data/chapter11/chap11e3Temperature.csv)
*Uses a __one-sample $t$-test__ to compare body temperature in a random sample of people with the "expected" temperature 98.6$^\circ$F.*
Read and inspect the data.
```{r}
heat <- read.csv(url("http://whitlockschluter.zoology.ubc.ca/wp-content/data/chapter11/chap11e3Temperature.csv"))
head(heat)
```
**Histogram** with options.
```{r, fig.width=4, fig.height=4}
hist(heat$temperature, right = FALSE, breaks = seq(97, 100.5, by = 0.5),
col = "firebrick", las = 1, xlab = "Body temperature (degrees F)",
ylab = "Frequency", main = "")
```
**One-sample $t$-test** can be calculate using `t.test`. The `mu` argument gives the value stated in the null hypothesis.
```{r}
t.test(heat$temperature, mu = 98.6)
```