An introduction to t-tests

A t-test is a statistical test that is used to compare the means of two groups. It is often used in hypothesis testing to determine whether a process or treatment actually has an effect on the population of interest, or whether two groups are different from one another.

You want to know whether the mean petal length of iris flowers differs according to their species. You find two different species of irises growing in a garden and measure 25 petals of each species. You can test the difference between these two groups using a t-test.

  • The null hypothesis (H0) is that the true difference between these group means is zero.
  • The alternate hypothesis (Ha) is that the true difference is different from zero.

When to use a t-test

A t-test can only be used when comparing the means of two groups (a.k.a. pairwise comparison). If you want to compare more than two groups, or if you want to do multiple pairwise comparisons, use an ANOVA test or a post-hoc test.

The t-test is a parametric test of difference, meaning that it makes the same assumptions about your data as other parametric tests. The t-test assumes your data:

  1. are independent
  2. are (approximately) normally distributed.
  3. have a similar amount of variance within each group being compared (a.k.a. homogeneity of variance)

If your data do not fit these assumptions, you can try a nonparametric alternative to the t-test, such as the Wilcoxon Signed-Rank test for data with unequal variances.

What type of t-test should I use?

When choosing a t-test, you will need to consider two things: whether the groups being compared come from a single population or two different populations, and whether you want to test the difference in a specific direction.

One-sample, two-sample, or paired t-test?

  • If the groups come from a single population (e.g. measuring before and after an experimental treatment), perform a paired t-test.
  • If the groups come from two different populations (e.g. two different species, or people from two separate cities), perform a two-sample t-test (a.k.a. independent t-test).
  • If there is one group being compared against a standard value (e.g. comparing the acidity of a liquid to a neutral pH of 7), perform a one-sample t-test.

One-tailed or two-tailed t-test?

  • If you only care whether the two populations are different from one another, perform a two-tailed t-test.
  • If you want to know whether one population mean is greater than or less than the other, perform a one-tailed t-test.

In your test of whether petal length differs by species:

  • Your observations come from two separate populations (separate species), so you perform a two-sample t-test.
  • You don’t care about the direction of the difference, only whether there is a difference, so you choose to use a two-tailed t-test.

What is your plagiarism score?

Compare your paper with over 60 billion web pages and 30 million publications.

  • Best plagiarism checker of 2020
  • Plagiarism report & percentage
  • Largest plagiarism database

Scribbr Plagiarism Checker

Performing a t-test

The t-test estimates the true difference between two group means using the ratio of the difference in group means over the pooled standard error of both groups. You can calculate it manually using a formula, or use statistical analysis software.

T-test formula

The formula for the two-sample t-test (a.k.a. the Student’s t-test) is shown below.

T-test formula

In this formula, t is the t-value, x1 and x2 are the means of the two groups being compared, s2 is the pooled standard error of the two groups, and n1 and n2 are the number of observations in each of the groups.

A larger t-value shows that the difference between group means is greater than the pooled standard error, indicating a more significant difference between the groups.

You can compare your calculated t-value against the values in a critical value chart to determine whether your t-value is greater than what would be expected by chance. If so, you can reject the null hypothesis and conclude that the two groups are in fact different.

T-test function in statistical software

Most statistical software (R, SPSS, etc.) includes a t-test function. This built-in function will take your raw data and calculate the t-value. It will then compare it to the critical value, and calculate a p-value. This way you can quickly see whether your groups are statistically different.

In your comparison of flower petal lengths, you decide to perform your t-test using R. The code looks like this:

t.test(Petal.Length ~ Species, data =

Download the data set to practice by yourself.

Sample data set

Interpreting test results

If you perform the t-test for your flower hypothesis in R, you will receive the following output:

T-test output in R

The output provides:

  1. An explanation of what is being compared, called data in the output table.
  2. The t-value: -33.719. Note that it’s negative; this is fine! In most cases, we only care about the absolute value of the difference, or the distance from 0. It doesn’t matter which direction.
  3. The degrees of freedom: 30.196. Degrees of freedom is related to your sample size, and shows how many ‘free’ data points are available in your test for making comparisons. The greater the degrees of freedom, the better your statistical test will work.
  4. The p-value: 2.2e-16 (i.e. 2.2 with 15 zeros in front). This describes the probability that you would see a t-value as large as this one by chance.
  5. A statement of the alternate hypothesis (Ha). In this test, the Ha is that the difference is not 0.
  6. The 95% confidence interval. This is the range of numbers within which the true difference in means will be 95% of the time. This can be changed from 95% if you want a larger or smaller interval, but 95% is very commonly used.
  7. The mean petal length for each group.


From the output table, we can see that the difference in means for our sample data is -4.084 (1.456 – 5.540), and the confidence interval shows that the true difference in means is between -3.836 and -4.331. So, 95% of the time, the true difference in means will be different from 0. Our p-value of 2.2e-16 is much smaller than 0.05, so we can reject the null hypothesis of no difference and say with a high degree of confidence that the true difference in means is not equal to zero.

Presenting the results of a t-test

When reporting your t-test results, the most important values to include are the t-value, the p-value, and the degrees of freedom for the test. These will communicate to your audience whether the difference between the two groups is statistically significant (a.k.a. that it is unlikely to have happened by chance).

You can also include the summary statistics for the groups being compared, namely the mean and standard deviation. In R, the code for calculating the mean and the standard deviation from the data looks like this: %>%
group_by(Species) %>%
summarize(mean_length = mean(Petal.Length),
sd_length = sd(Petal.Length))

In our example, you would report the results like this:

The difference in petal length between iris species 1 (Mean = 1.46; SD = 0.206) and iris species 2 (Mean = 5.54; SD = 0.569) was significant (t (30) = -33.7190; p < 2.2e-16).

Frequently asked questions about t-tests

What is a t-test?

A t-test is a statistical test that compares the means of two samples. It is used in hypothesis testing, with a null hypothesis that the difference in group means is zero and an alternate hypothesis that the difference in group means is different from zero.

What does a t-test measure?

A t-test measures the difference in group means divided by the pooled standard error of the two group means.

In this way, it calculates a number (the t-value) illustrating the magnitude of the difference between the two group means being compared, and estimates the likelihood that this difference exists purely by chance (p-value).

Which t-test should I use?

Your choice of t-test depends on whether you are studying one group or two groups, and whether you care about the direction of the difference in group means.

If you are studying one group, use a paired t-test to compare the group mean over time or after an intervention, or use a one-sample t-test to compare the group mean to a standard value. If you are studying two groups, use a two-sample t-test.

If you want to know only whether a difference exists, use a two-tailed test. If you want to know if one group mean is greater or less than the other, use a left-tailed or right-tailed one-tailed test.

What is the difference between a one-sample t-test and a paired t-test?

A one-sample t-test is used to compare a single population to a standard value (for example, to determine whether the average lifespan of a specific town is different from the country average).

A paired t-test is used to compare a single population before and after some experimental intervention or at two different points in time (for example, measuring student performance on a test before and after being taught the material).

Can I use a t-test to measure the difference among several groups?

A t-test should not be used to measure differences among more than two groups, because the error structure for a t-test will underestimate the actual error when many groups are being compared.

If you want to compare the means of several groups at once, it’s best to use another statistical test such as ANOVA or a post-hoc test.

Is this article helpful?
Rebecca Bevans

Rebecca is working on her PhD in soil ecology and spends her free time writing. She's very happy to be able to nerd out about statistics with all of you.

1 comment

Rebecca Bevans
Rebecca Bevans (Scribbr-team)
January 31, 2020 at 1:16 PM

Thanks for reading! Hope you found this article helpful. If anything is still unclear, or if you didn’t find what you were looking for here, leave a comment and we’ll see if we can help.

Still have questions?

Please click the checkbox on the left to verify that you are a not a bot.