# ttest

One-sample and paired-sample t-test

## Syntax

``h = ttest(x)``
``h = ttest(x,y)``
``h = ttest(x,y,Name,Value)``
``h = ttest(x,m)``
``h = ttest(x,m,Name,Value)``
``````[h,p] = ttest(___)``````
``````[h,p,ci,stats] = ttest(___)``````

## Description

example

````h = ttest(x)` returns a test decision for the null hypothesis that the data in `x` comes from a normal distribution with mean equal to zero and unknown variance, using the one-sample t-test. The alternative hypothesis is that the population distribution does not have a mean equal to zero. The result `h` is `1` if the test rejects the null hypothesis at the 5% significance level, and `0` otherwise.```

example

````h = ttest(x,y)` returns a test decision for the null hypothesis that the data in ```x – y``` comes from a normal distribution with mean equal to zero and unknown variance, using the paired-sample t-test.```

example

````h = ttest(x,y,Name,Value)` returns a test decision for the paired-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 a one-sided test.```

example

````h = ttest(x,m)` returns a test decision for the null hypothesis that the data in `x` comes from a normal distribution with mean `m` and unknown variance. The alternative hypothesis is that the mean is not `m`.```

example

````h = ttest(x,m,Name,Value)` returns a test decision for the one-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 a one-sided test.```

example

``````[h,p] = ttest(___)``` also returns the p-value, `p`, of the test, using any of the input arguments from the previous syntax groups.```

example

``````[h,p,ci,stats] = ttest(___)``` also returns the confidence interval `ci` for the mean of `x`, or of `x – y` for the paired t-test, and the structure `stats` containing information about the test statistic.```

## Examples

collapse all

Load the sample data. Create a vector containing the third column of the stock returns data.

```load stockreturns x = stocks(:,3);```

Test the null hypothesis that the sample data comes from a population with mean equal to zero.

`[h,p,ci,stats] = ttest(x)`
```h = 1 ```
```p = 0.0106 ```
```ci = 2×1 -0.7357 -0.0997 ```
```stats = struct with fields: tstat: -2.6065 df: 99 sd: 1.6027 ```

The returned value `h = 1` indicates that `ttest` rejects the null hypothesis at the 5% significance level.

Load the sample data. Create a vector containing the third column of the stock returns data.

```load stockreturns x = stocks(:,3);```

Test the null hypothesis that the sample data are from a population with mean equal to zero at the 1% significance level.

`h = ttest(x,0,'Alpha',0.01)`
```h = 0 ```

The returned value `h = 0` indicates that `ttest` does not reject the null hypothesis at the 1% significance level.

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

```load examgrades x = grades(:,1); y = grades(:,2);```

Test the null hypothesis that the pairwise difference between data vectors `x` and `y` has a mean equal to zero.

`[h,p] = ttest(x,y)`
```h = 0 ```
```p = 0.9805 ```

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

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

```load examgrades x = grades(:,1); y = grades(:,2);```

Test the null hypothesis that the pairwise difference between data vectors `x` and `y` has a mean equal to zero at the 1% significance level.

`[h,p] = ttest(x,y,'Alpha',0.01)`
```h = 0 ```
```p = 0.9805 ```

The returned value of `h = 0` indicates that `ttest` does not reject the null hypothesis at the 1% significance level.

Load the sample data. Create a vector containing the first column of the students' exam grades data.

```load examgrades x = grades(:,1);```

Test the null hypothesis that sample data comes from a distribution with mean `m = 75`.

`h = ttest(x,75)`
```h = 0 ```

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

Load the sample data. Create a vector containing the first column of the students’ exam grades data.

```load examgrades x = grades(:,1);```

Plot a histogram of the exam grades data and fit a normal density function.

```histfit(x) xlabel("Grade") ylabel("Frequency")``` Use a right-tailed t-test to test the null hypothesis that the data comes from a population with mean equal to 65, against the alternative that the mean is greater than 65.

`[h,~,~,stats] = ttest(x,65,"Tail","right")`
```h = 1 ```
```stats = struct with fields: tstat: 12.5726 df: 119 sd: 8.7202 ```

The returned value of `h = 1` indicates that `ttest` rejects the null hypothesis at the default significance level of 5%, in favor of the alternative hypothesis that the data comes from a population with a mean greater than 65.

Plot the corresponding Student's t-distribution, the returned t-statistic, and the critical t-value. Calculate the critical t-value for the default confidence level of 95% by using `tinv`.

```nu = stats.df; k = linspace(-15,15,300); tdistpdf = tpdf(k,nu); tval = stats.tstat```
```tval = 12.5726 ```
```tvalpdf = tpdf(tval,nu); tcrit = tinv(0.95,nu)```
```tcrit = 1.6578 ```
```plot(k,tdistpdf) hold on scatter(tval,tvalpdf,"filled") xline(tcrit,"--") legend(["Student's t pdf", "t-Statistic", ... "Critical Cutoff"])``` The orange dot represents the t-statistic and is located to the right of the dashed black line that represents the critical t-value.

## Input Arguments

collapse all

Sample data, specified as a vector, matrix, or multidimensional array. `ttest` performs a separate t-test along each column and returns a vector of results. If `y` sample data is specified, `x` and `y` must be the same size.

Data Types: `single` | `double`

Sample data, specified as a vector, matrix, or multidimensional array. If `y` sample data is specified, `x` and `y` must be the same size.

Data Types: `single` | `double`

Hypothesized population mean, specified as a scalar value.

Data Types: `single` | `double`

### Name-Value Arguments

Specify optional pairs of arguments as `Name1=Value1,...,NameN=ValueN`, where `Name` is the argument name and `Value` is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and enclose `Name` in quotes.

Example: `'Tail','right','Alpha',0.01` conducts a right-tailed hypothesis test at the 1% significance level.

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`

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`

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

• `'both'` — Test against the alternative hypothesis that the population mean is not `m`.

• `'right'` — Test against the alternative hypothesis that the population mean is greater than `m`.

• `'left'` — Test against the alternative hypothesis that the population mean is less than `m`.

`ttest` tests the null hypothesis that the population mean is `m` against the specified alternative hypothesis.

Example: `'Tail','right'`

## Output Arguments

collapse all

Hypothesis test result, returned as `1` or `0`.

• 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-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.

Confidence interval for the true population mean, returned as a two-element vector containing the lower and upper boundaries of the 100 × (1 – `Alpha`)% confidence interval.

Test statistics, returned as a structure containing the following:

• `tstat` — Value of the test statistic.

• `df` — Degrees of freedom of the test.

• `sd` — Estimated population standard deviation. For a paired t-test, `sd` is the standard deviation of `x – y`.

collapse all

### One-Sample t-Test

The one-sample t-test is a parametric test of the location parameter when the population standard deviation is unknown.

The test statistic is

`$t=\frac{\overline{x}-\mu }{s/\sqrt{n}},$`

where $\overline{x}$ is the sample mean, `μ` is the hypothesized population mean, s is the sample standard deviation, and n is the sample size. Under the null hypothesis, the test statistic has Student’s t distribution with n – 1 degrees of freedom.

### 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`.

## Tips

• Use `sampsizepwr` to calculate:

• The sample size that corresponds to specified power and parameter values;

• The power achieved for a particular sample size, given the true parameter value;

• The parameter value detectable with the specified sample size and power.

## Version History

Introduced before R2006a