Accelerating the pace of engineering and science

# ttest2

Two-sample t-test

## Description

example

h = ttest2(x,y) returns a test decision for the null hypothesis that the data in vectors x and y comes from independent random samples from normal distributions with equal means and equal but unknown variances, using the two-sample t-test. The alternative hypothesis is that the data in x and y comes from populations with unequal means. The result h is 1 if the test rejects the null hypothesis at the 5% significance level, and 0 otherwise.

example

h = ttest2(x,y,Name,Value) returns a test decision for the two-sample t-test with additional options specified by one or more name-value pair arguments. For example, you can change the significance level or conduct the test without assuming equal variances.

example

[h,p] = ttest2(___) also returns the p-value, p, of the test, using any of the input arguments in the previous syntaxes.

example

[h,p,ci,stats] = ttest2(___) also returns the confidence interval on the difference of the population means, ci, and the structure stats containing information about the test statistic.

## Examples

expand all

### Test for Equal Means

Load the data set. Create vectors containing the first and second columns of the data matrix to represent students' grades on two exams.

```load examgrades;

Test the null hypothesis that the two data samples are from populations with equal means.

`[h,p,ci,stats] = ttest2(x,y)`
```h =
0

p =
0.9867

ci =
-1.9438
1.9771

stats =
tstat: 0.0167
df: 238
sd: 7.7084```

The returned value of h = 0 indicates that ttest2 does not reject the null hypothesis at the default 5% significance level.

### Test for Equal Means Without Assuming Equal Variances

Load the data set. Create vectors containing the first and second columns of the data matrix to represent students' grades on two exams.

```load examgrades;

Test the null hypothesis that the two data vectors are from populations with equal means, without assuming that the populations also have equal variances.

`[h,p] = ttest2(x,y,'Vartype','unequal')`
```h =
0

p =
0.9867```

The returned value of h = 0 indicates that ttest2 does not reject the null hypothesis at the default 5% significance level even if equal variances are not assumed.

## Input Arguments

expand all

### x — Sample datavector | matrix | multidimensional array

Sample data, specified as a vector, matrix, or multidimensional array. ttest2 treats NaN values as missing data and ignores them.

• If x and y are specified as vectors, they do not need to be the same length.

• If x and y are specified as matrices, they must have the same number of columns. ttest2 performs a separate t-test along each column and returns a vector of results.

• If x and y are specified as multidimensional arrays, they must have the same size along all but the first nonsingleton dimension.

Data Types: single | double

### y — Sample datavector | matrix | multidimensional array

Sample data, specified as a vector, matrix, or multidimensional array. ttest2 treats NaN values as missing data and ignores them.

• If x and y are specified as vectors, they do not need to be the same length.

• If x and y are specified as matrices, they must have the same number of columns. ttest2 performs a separate t-test along each column and returns a vector of results.

• If x and y are specified as multidimensional arrays, they must have the same size along all but the first nonsingleton dimension. ttest2 works along the first nonsingleton dimension.

Data Types: single | double

### Name-Value Pair Arguments

Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside single quotes (' '). You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

Example: 'Tail','right','Alpha',0.01,'Vartype','unequal' specifies a right-tailed test at the 1% significance level, and does not assume that x and y have equal population variances.

### 'Alpha' — Significance level0.05 (default) | scalar value in the range (0,1)

Significance level of the hypothesis test, specified as the comma-separated pair consisting of 'Alpha' and a scalar value in the range (0,1).

Example: 'Alpha',0.01

Data Types: single | double

### 'Dim' — Dimensionfirst nonsingleton dimension (default) | positive integer value

Dimension of the input matrix along which to test the means, specified as the comma-separated pair consisting of 'Dim' and a positive integer value. For example, specifying 'Dim',1 tests the column means, while 'Dim',2 tests the row means.

Example: 'Dim',2

Data Types: single | double

### 'Tail' — Type of alternative hypothesis'both' (default) | 'right' | 'left'

Type of alternative hypothesis to evaluate, specified as the comma-separated pair consisting of 'Tail' and one of the following.

 'both' Test the alternative hypothesis that the population means are not equal. 'right' Test the alternative hypothesis that the population mean of x is greater than the population mean of y. 'left' Test the alternative hypothesis that the population mean of x is less than the population mean of y.

Example: 'Tail','right'

### 'Vartype' — Variance type'equal' (default) | 'unequal'

Variance type, specified as the comma-separated pair consisting of 'Vartype' and one of the following.

 'equal' Conduct test using the assumption that x and y are from normal distributions with unknown but equal variances. 'unequal' Conduct test using the assumption that x and y are from normal distributions with unknown and unequal variances. This is called the Behrens-Fisher problem. ttest2 uses Satterthwaite's approximation for the effective degrees of freedom.

Vartype must be a single string, even when x is a matrix or a multidimensional array.

Example: 'Vartype','unequal'

## Output Arguments

expand all

### h — Hypothesis test result1 | 0

Hypothesis test result, returned as a logical value.

• If h = 1, this indicates the rejection of the null hypothesis at the Alpha significance level.

• If h = 0, this indicates a failure to reject the null hypothesis at the Alpha significance level.

### p — p-valuescalar value in the range [0,1]

p-value of the test, returned as a scalar value in the range [0,1]. p is the probability of observing a test statistic as extreme as, or more extreme than, the observed value under the null hypothesis. Small values of p cast doubt on the validity of the null hypothesis.

### ci — Confidence intervalvector

Confidence interval for the difference in population means of x and y, returned as a two-element vector containing the lower and upper boundaries of the 100 × (1 – Alpha)% confidence interval.

### stats — Test statisticsstructure

Test statistics for the two-sample t-test, returned as a structure containing the following:

• tstat — Value of the test statistic.

• df — Degrees of freedom of the test.

• sd — Pooled estimate of the population standard deviation (for the equal variance case) or a vector containing the unpooled estimates of the population standard deviations (for the unequal variance case).

expand all

### Two-Sample t-test

The two-sample t-test is a parametric test that compares the location parameter of two independent data samples.

The test statistic is

$t=\frac{\overline{x}-\overline{y}}{\sqrt{\frac{{s}_{x}^{2}}{n}}+\frac{{s}_{y}^{2}}{m}},$

where $\overline{x}$ and $\overline{y}$ are the sample means, sx and sy are the sample standard deviations, and n and m are the sample sizes.

In the case where it is assumed that the two data samples are from populations with equal variances, the test statistic under the null hypothesis has Student's t distribution with n + m – 2 degrees of freedom, and the sample standard deviations are replaced by the pooled standard deviation

$s=\sqrt{\frac{\left(n-1\right){s}_{x}^{2}+\left(m-1\right){s}_{y}^{2}}{n+m-2}.}$

In the case where it is not assumed that the two data samples are from populations with equal variances, the test statistic under the null hypothesis has an approximate Student's t distribution with a number of degrees of freedom given by Satterthwaite's approximation. This test is sometimes called Welch's t-test.

### Multidimensional Array

A multidimensional array has more than two dimensions. For example, if x is a 1-by-3-by-4 array, then x is a three-dimensional array.

### First Nonsingleton Dimension

The first nonsingleton dimension is the first dimension of an array whose size is not equal to 1. For example, if x is a 1-by-2-by-3-by-4 array, then the second dimension is the first nonsingleton dimension of x.