How to do a one-sided hypothesis test for two sample means
Description
If we have two samples, $x_1, \ldots , x_n$ and $x’_1, \ldots , x’_n$, and we compute the mean of each one, we might want to ask whether one mean is less than the other. Or more precisely, is their difference significantly less than zero?
Related tasks:
- How to compute a confidence interval for a population mean
- How to do a two-sided hypothesis test for a sample mean
- How to do a two-sided hypothesis test for two sample means
- How to do a one-way analysis of variance (ANOVA)
- How to do a hypothesis test for a mean difference (matched pairs)
- How to do a hypothesis test for a population proportion
Using SciPy, in Python
If we call the mean of the first sample $\bar x_1$ and the mean of the second sample $\bar x_2$, then this is a two-sided test with the null hypothesis $H_0: \bar x_1 - \bar x_2 \ge 0$. We choose a value $0\leq\alpha\leq1$ as the probability of a Type I error (false positive, finding we should reject $H_0$ when it’s actually true). Let’s use $\alpha=0.10$ as an example.
1
2
3
4
5
6
7
8
9
from scipy import stats
# Replace these first three lines with the values from your situation.
sample1 = [ 6, 9, 7, 10, 10, 9 ]
sample2 = [ 12, 14, 10, 17, 9 ]
# Run a one-sample t-test and print out alpha, the p value,
# and whether the comparison says to reject the null hypothesis.
stats.ttest_ind( sample1, sample2, equal_var=False, alternative="less" )
1
Ttest_indResult(statistic=-2.4616581720814326, pvalue=0.02548641870923849)
The output says that the $p$-value is about $0.0255$, which is less than $\alpha=0.10$. Therefore the samples give us enough evidence to reject the null hypothesis at the $\alpha=0.10$ level. That is, the data suggest that $\bar x_1 < \bar x_2$.
The equal_var
parameter tells SciPy not to assume that the two samples
have equal variances. If in your case they do, you can omit that parameter,
and it will revert to its default value of True
.
Content last modified on 24 July 2023.
See a problem? Tell us or edit the source.
Solution, in R
If we call the mean of the first sample $\bar x_1$ and the mean of the second sample $\bar x_2$, then this is a left-tailed test with the null hypothesis $H_0: \bar x_1 - \bar x_2 \ge 0$. We choose a value $0 \le \alpha \le 1$ as the probability of a Type I error (false positive, finding we should reject $H_0$ when it’s actually true).
1
2
3
4
5
6
7
8
# Replace these first three lines with the values from your situation.
alpha <- 0.10
sample1 <- c( 6, 9, 7, 10, 10, 9 )
sample2 <- c( 12, 14, 10, 17, 9 )
# Run a one-sample t-test and print out alpha, the p value,
# and whether the comparison says to reject the null hypothesis.
t.test( sample1, sample2, conf.level=1-alpha, alternative = "less" )
1
2
3
4
5
6
7
8
9
10
Welch Two Sample t-test
data: sample1 and sample2
t = -2.4617, df = 5.7201, p-value = 0.02549
alternative hypothesis: true difference in means is less than 0
90 percent confidence interval:
-Inf -1.605229
sample estimates:
mean of x mean of y
8.5 12.4
Although we can deduce the answer to our question from the above output, by comparing the $p$-value with $\alpha$ manually, we can also ask R to do it.
1
2
3
# Is there enough evidence to reject the null hypothesis?
result <- t.test( sample1, sample2, conf.level=1-alpha, alternative = "less" )
result$p.value < alpha
1
[1] TRUE
In this case, the samples give us enough evidence to reject the null hypothesis at the $\alpha=0.10$ level. The data suggest that $\bar x_1 < \bar x_2$.
Here we did not assume that the two samples had equal variance.
If in your case they do, you can pass the parameter var.equal=TRUE
to t.test
.
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.