Practice 10 Conducting One-sample t-test in R

10.1 Directions


In this practice exercise, you will conduct a one-sample t-test in R.

10.2 A closer look at the code


Will be using the mtcars data set to test the hypothesis the average miles per gallon for cars in this data set is 10 mpg. Thus, the null hypothesis is that \(mu = 10\) the alternative hypothsis is that \(\mu \ne 10\). Note that in are, !is the not apoerator, so != means not equal.

10.2.1 Conduct the t-test

To conduct a t-test, we need the following steps

  1. Calculate the mean
  2. Calculate the standard error of the mean
  3. Calculate a t-score for the sample mean, i.e. the distance from the hypothesized mean
  4. Calculate the p-value for the t-score

10.2.1.1 Step 1: Calculate the mean

Use the mean() command to calculate the average mpg.

# Load the data
data("mtcars")
attach(mtcars)
## The following object is masked from package:ggplot2:
## 
##     mpg
# Calculate the mean
sample.mean <- mean(mpg)
print(c("sample.mean",sample.mean))
## [1] "sample.mean" "20.090625"

10.2.1.2 Step 2: Calculate the standard error of the mean

The formula for the standard error of the mean is \({S_{\bar X}} = \frac{\sigma}{{\sqrt n }}\), and if we do not know the population standard deviation \({S_{\bar X}} = \frac{s}{{\sqrt n }}\).

The sd() command can be used to find the standard deviation. The length() command can be use to determine the sample size.

# Calulate the standard error of the mean
sample.n <- length(mpg)
sample.sd <- sd(mpg)
sample.se <- sample.sd/sqrt(sample.n) 
print(c("sample.se =",sample.se))
## [1] "sample.se ="      "1.06542395937281"

10.2.1.3 Step 3: Calculate a t-score for the sample mean, i.e. the distance from the hypothesized mean

The formula for the t-score is \[t - score = \frac{{\bar x - \mu }}{{{\sigma _{\bar x}}}},\] \(\bar{x}\) is the sample mean, and \(\sigma _{\bar x}\) is the standard error of the mean.

# Calculate the t-statistic for the test
t.stat <- (sample.mean - 10)/sample.se
print(c("t.stat",t.stat))
## [1] "t.stat"           "9.47099500741477"

10.2.1.4 Step 4. Calculate the p-value for the t-score

Here we use th pt() command to find the probability of a t-score as far or father away from zero. To make things a little simpler, we use the abs() command to ensure the t-score is positive. Finally, this is a two sided test so we need to multiply the value returned by pt() by 2.

# Calculate the p-value
degrees.freedom = sample.n - 1
p.value = pt(q=abs(t.stat), df=degrees.freedom,lower.tail=F) * 2
print(c("Two-sided p.value",p.value))
## [1] "Two-sided p.value"    "1.15459766493821e-10"

10.2.1.5 Calculate the p-value for a one sided test

For this, do not use the abs() function. For a greater than test, lower.tail=F, and for less than test, lower.tail=T.

# Conduct a t-test to determine if mpg greater than 10
#H0: mu = 10 
#Ha: mu > 10 
p.value <- pt(q=t.stat,df=degrees.freedom,lower.tail=F)
print(c("One-sided p.value (greater than test)",p.value))
## [1] "One-sided p.value (greater than test)"
## [2] "5.77298832469105e-11"
# Conduct a t-test to determine if mpg is less than 10
#H0: mu = 10 
#Ha: mu < 10 
p.value <- pt(q=t.stat,df=degrees.freedom,lower.tail=T)
print(c("One-sided p.value (less than test)",p.value))
## [1] "One-sided p.value (less than test)" "0.99999999994227"

10.2.1.6 Finally, use t.test()

# For Ha: mu !=10
t.test(mpg, mu=10, level=0.95, alternative = "two.sided")
## 
##  One Sample t-test
## 
## data:  mpg
## t = 9.471, df = 31, p-value = 1.155e-10
## alternative hypothesis: true mean is not equal to 10
## 95 percent confidence interval:
##  17.91768 22.26357
## sample estimates:
## mean of x 
##  20.09062
# For Ha: mu > 10
t.test(mpg, mu=10, level=0.95, alternative = "greater")
## 
##  One Sample t-test
## 
## data:  mpg
## t = 9.471, df = 31, p-value = 5.773e-11
## alternative hypothesis: true mean is greater than 10
## 95 percent confidence interval:
##  18.28418      Inf
## sample estimates:
## mean of x 
##  20.09062
# For Ha: mu < 10
t.test(mpg, mu=10, level=0.95, alternative = "less")
## 
##  One Sample t-test
## 
## data:  mpg
## t = 9.471, df = 31, p-value = 1
## alternative hypothesis: true mean is less than 10
## 95 percent confidence interval:
##      -Inf 21.89707
## sample estimates:
## mean of x 
##  20.09062

10.3 R code used in the VoiceThread


# Load the data
data("mtcars")
attach(mtcars)

# Load the data
data("mtcars")
attach(mtcars)

# Conduct a t-test to determine if mpg is equal to 10
#H0: mu = 10 
#Ha: mu != 10 

# Step 1. Calculate the mean of miles per gallon
sample.mean <- mean(mpg)
print(c("sample.mean =",sample.mean))

# Step 2: Calculate the standard error of the mean
sample.n <- length(mpg)
sample.sd <- sd(mpg)
sample.se <- sample.sd/sqrt(sample.n)
print(c("sample.se =",sample.se))

# Step 3: Calculate the t-statistic for the test
t.stat <- (sample.mean-10)/sample.se
print(c("t.stat",t.stat))

# Step 4: Calculate the p-value
degrees.freedom <- sample.n-1
p.value <- pt(q=abs(t.stat),df=degrees.freedom,lower.tail=F)*2
print(c("Two-sided p.value",p.value))

# Conduct a t-test to determine if mpg greater than 10
#H0: mu = 10 
#Ha: mu > 10 
p.value <- pt(q=t.stat,df=degrees.freedom,lower.tail=F)
print(c("One-sided p.value (greater than test)",p.value))

# Conduct a t-test to determine if mpg is less than 10
#H0: mu = 10 
#Ha: mu < 10 
p.value <- pt(q=t.stat,df=degrees.freedom,lower.tail=T)
print(c("One-sided p.value (less than test)",p.value))

# t.test
t.test(mpg, mu=10, level=0.95, alternative="two.sided")
t.test(mpg, mu=10, level=0.95, alternative="greater")
t.test(mpg, mu=10, level=0.95, alternative="less")

10.4 Now you try


Use R to complete the following activities (this is just for practice you do not need to turn anything in).

Using the mtcars data set, test the hypothesis the average miles per gallon for care in this data set is 20 mpg.