In this article, we will discuss how to do a one-sample t-test in Python with some practical examples.

## What is One-sample t-test for mean?

The one-sample t-test for the mean is used to test whether the population mean is equal to the pre-defined (standard/hypothetical) mean (μ) value when the population standard deviation is unknown and sample size is small.

## What are the conditions required for conducting a one-sample t-test for mean?

**Assumptions for One Sample Mean t-test**

- The parent population from which the sample is drawn should be normal.
- The sample observations should be independent of each other i.e sample should be random.
- The population standard deviation is unknown.

**Hypothesis for the one sample t-test for mean**

Let μ_{0} denote the hypothesized value for the mean and x̄ denotes the sample mean.

*Null Hypothesis:*

**H _{0} : x̄= μ_{0}** The population means is equal to hypothesized(standard) mean.

** Alternative Hypothesis:**Three possible forms of alternative hypothesis are as follows:

**H**Population mean is less than the hypothesized mean.It is called lower tail test (left-tailed test)._{a}: x̄< μ_{0}**H**Population mean is greater than the hypothesized mean.It is called Upper tail test(right-tailed test)._{a}: x̄>μ_{0}**H**Population mean is not equal to hypothesized mean.It is called two tail test._{a}: x̄ ≠μ_{0}

**Formula for the test statistic of one sample t- test for mean is:**

where :

**x̄:** observed sample mean

**μ _{0}:** hypothesized population mean

**n:** sample size

**s:** sample standard deviation with n-1 degree of freedom

**Summary for the one sample t-test for mean**

Left-tailed Test | Left-tailed Test | Right-tailed Test | Two-tailed Test |

Null Hypothesis | H_{0} : x̄≥ μ_{0} | H_{0} : x̄≤ μ_{0} | H_{0} : x̄= μ_{0} |

Alternate Hypothesis | H_{a} : x̄< μ_{0} | H_{a} : x̄> μ_{0} | H_{a} : x̄ ≠ μ_{0} |

Test Statistic | t= (x̄ – μ_{0} )/(s/ √ n) | t= (x̄ – μ_{0} )/(s/ √ n) | t= (x̄ – μ_{0} )/(s/ √ n) |

Decision Rule: p-value approach (where α is level of significance) | If p-value ≤α then Reject H _{0} | If p-value ≤α then Reject H _{0} | If p-value ≤α then Reject H _{0} |

Decision Rule: Critical-value approach | If t ≤ -t_{α}then Reject H _{0} | If t ≥ t_{α}then Reject H _{0} | If t ≤ -t_{α} or t ≥ t_{α} then Reject H_{0} |

**Function in Python for t-test**

**ttest_1samp**() function in Python from the stats package from SciPy library is used to perform a one-sample t-test for mean.

ttest_1samp(a, popmean, alternative='two-sided')

**a:** an array of given sample observations.

**popmean:** Expected value in null hypothesis.

**alternative:** {‘two-sided’, ‘less’, ‘greater’}, optional

Defines the alternative hypothesis. The following options are available (default is ‘two-sided’):

- ‘two-sided’: the mean of the underlying distribution of the sample is different than the given population mean (
*popmean*) - ‘less’: the mean of the underlying distribution of the sample is less than the given population mean (
*popmean*) - ‘greater’: the mean of the underlying distribution of the sample is greater than the given population mean (
*popmea*n)

**pip install scipy:**

If you find yourself without the **SciPy** library installed, you can easily remedy that by running the following command in your Python environment:

pip install scipy

**How to conduct one sample t-test for mean in Python?**

We will calculate the test statistic with one-sample t-test for the mean.

**Procedure to perform One Sample t-test for mean.**

**Step 1:** Define the both Null Hypothesis and Alternate Hypothesis.

**Step 2:** Decide the level of significance α (i.e. alpha).

**Step 3:** Calculate the test statistic using the ttest_1samp() function from Python.

**Step 4:** Interpret the t-test results.

**Step 5:** Determine the rejection criteria for the given confidence level and interpret the results whether the test statistic lies in the rejection region or non-rejection region.

Let’s see practical examples that show how to do the t.test in Python.

## Example of One Sample t-test in Python

A random sample of 10 students had the following I.Q.’ s :

80, 110, 130, 101, 108, 83, 90, 92, 100, 105. Does this data support the

assumption of a population mean I.Q. of 105 or it is less than that.

Assume that the I.Q. values of students follows a normal distribution. Test at 5% level of significance?

**Solution:** Given data :

sample size (n) = 10

hypothesized mean value (μ_{0})= 105

level of significance (α) = 0.05

confidence level = 0.95

Let’s solve this example by the step-by-step procedure.

**Step 1:** Define the Null Hypothesis and Alternate Hypothesis.

let μ be the mean IQ of students

**Null Hypothesis**: the mean IQ of students in the class is equal to 105.

**H _{0} : μ =**

**105**

**Alternate Hypothesis**: the mean IQ of students in the class is less than 105

**H _{a} : μ <**

**105**

**Step 2:** level of significance (α) = 0.05

**Step 3:** Calculate the test statistic using the **ttest_1samp**() function from Python.

# Import the stats library import scipy.stats as stats # Define given dataset dataset = [80, 110, 130, 101, 108, 83, 90, 92, 100, 105] #perform one sample t-test stats.ttest_1samp(a=dataset, popmean=105,alternative='less')

Specify the alternative hypothesis as “less” because we are performing left tailed test. The results for the one-sample t-test are as follows.

TtestResult(statistic=np.float64(-1.0976558761566697), pvalue=np.float64(0.15042609252516528), df=np.int64(9))

**Step 4:** Interpret the t-test results.

**How to interpret t-test results in Python?**

Let’s see the interpretation of t-test results in Python.

**statistic**: It is the test statistic of the t-test. In our case test statistic = -1.0976558761566697

**df**: It is the degree of freedom for the t-test statistic. In our case df=9

**p-value**: This is the p-value corresponding to t-test statistic i.e. -1.0976558761566697 and degree of freedom i.e. 9. In our case, the p-value is 0.15042609252516528.

**Conclusion:**

Since the p-value[ 0.150426] is not less than the level of significance (α) = 0.05, we fail to reject the null hypothesis.

This means we do not have sufficient evidence to say that the mean IQ of the students in the class is different from 105.