How to do a hypothesis test for the mean with known standard deviation
Description
Let’s say we are measuring a variable over a population, and we know its standard
deviation
Related tasks:
- How to compute a confidence interval for a population mean
- How to do a hypothesis test for a mean difference (matched pairs)
- How to do a hypothesis test for a population proportion
- How to do a hypothesis test for population variance
- How to do a hypothesis test for the difference between means when both population variances are known
- How to do a hypothesis test for the difference between two proportions
- How to do a hypothesis test for the ratio of two population variances
- How to do a hypothesis test of a coefficient’s significance
- How to do a one-sided hypothesis test for two sample means
- How to do a two-sided hypothesis test for a sample mean
- How to do a two-sided hypothesis test for two sample means
Using SciPy, in Python
We will use the following fake data, but you can insert your actual data in its place. We have a sample of just 5 values and an assumed population standard deviation of 3.
1
2
sample = [31, 44, 28, 25, 40] # sample data
pop_std = 3 # population standard deviation
We also choose a value
Two-tailed test
In a two-tailed test, we compare the unknown population mean to a hypothesized
value
1
2
3
4
5
6
7
from scipy import stats
import numpy as np
m = 30 # hypothesized mean
n = len(sample) # number of observations
xbar = np.mean(sample) # sample mean
test_stat = (xbar - m) / (pop_std/np.sqrt(n)) # test statistic
2*stats.norm.sf(abs(test_stat)) # two-tailed p-value
0.007290358091535614
The
Right-tailed test
In a right-tailed hypothesis test, the null hypothesis is that the population mean
is greater than or equal to a chosen value,
Most of the code below is the same as above, but we repeat it to make it easy to
copy and paste. Only the computation of the
1
2
3
4
5
6
7
from scipy import stats
import numpy as np
m = 30 # hypothesized mean
n = len(sample) # number of observations
xbar = np.mean(sample) # sample mean
test_stat = (xbar - m) / (pop_std/np.sqrt(n)) # test statistic
stats.norm.sf(abs(test_stat)) # right-tailed p-value
0.003645179045767807
The
Left-tailed test
In a left-tailed hypothesis test, the null hypothesis is that the population mean
is less than or equal to a chosen value,
Most of the code below is the same as above, but we repeat it to make it easy to
copy and paste. Only the computation of the
1
2
3
4
5
6
7
from scipy import stats
import numpy as np
m = 30 # hypothesized mean
n = len(sample) # number of observations
xbar = np.mean(sample) # sample mean
test_stat = (xbar - m) / (pop_std/np.sqrt(n)) # test statistic
stats.norm.sf(-abs(test_stat)) # left-tailed p-value
0.9963548209542322
The
Content last modified on 24 July 2023.
See a problem? Tell us or edit the source.
Solution, in R
We will use the following fake data, but you can insert your actual data in its place. We have a sample of just 5 values and an assumed population standard deviation of 3.
1
2
sample <- c(31, 44, 28, 25, 40) # sample data
pop.std <- 3 # population standard deviation
We also choose a value
Two-tailed test
In a two-tailed test, we compare the unknown population mean to a hypothesized
value
1
2
3
4
5
m <- 30 # hypothesized mean
n <- length(sample) # number of observations
xbar <- mean(sample) # sample mean
test.stat <- (xbar - m) / (pop.std/sqrt(n)) # test statistic
2*pnorm(abs(test.stat), 0, 1, lower.tail=FALSE) # two-tailed p-value
[1] 0.007290358
The
Right-tailed test
In a right-tailed hypothesis test, the null hypothesis is that the population mean
is greater than or equal to a chosen value,
Most of the code below is the same as above, but we repeat it to make it easy to
copy and paste. Only the computation of the
1
2
3
4
5
m <- 30 # hypothesized mean
n <- length(sample) # number of observations
xbar <- mean(sample) # sample mean
test.stat <- (xbar - m) / (pop.std/sqrt(n)) # test statistic
pnorm(test.stat, 0, 1, lower.tail=FALSE) # right-tailed p-value
[1] 0.003645179
The
Left-tailed test
In a left-tailed hypothesis test, the null hypothesis is that the population mean
is less than or equal to a chosen value,
Most of the code below is the same as above, but we repeat it to make it easy to
copy and paste. Only the computation of the
1
2
3
4
5
m <- 30 # hypothesized mean
n <- length(sample) # number of observations
xbar <- mean(sample) # sample mean
test.stat <- (xbar - m) / (pop.std/sqrt(n)) # test statistic
pnorm(test.stat, 0, 1, lower.tail=TRUE) # left-tailed p-value
[1] 0.9963548
The
Content last modified on 24 July 2023.
See a problem? Tell us or edit the source.
Topics that include this task
Opportunities
This website does not yet contain a solution for this task in any of the following software packages.
- Excel
- Julia
If you can contribute a solution using any of these pieces of software, see our Contributing page for how to help extend this website.