18.5 C
London
Saturday, July 19, 2025
HomePythonProbability Distributions in PythonHow to Use the t Distribution in Python

How to Use the t Distribution in Python

Related stories

Learn About Opening an Automobile Repair Shop in India

Starting a car repair shop is quite a good...

Unlocking the Power: Embracing the Benefits of Tax-Free Investing

  Unlocking the Power: Embracing the Benefits of Tax-Free Investing For...

Income Splitting in Canada for 2023

  Income Splitting in Canada for 2023 The federal government’s expanded...

Can I Deduct Home Office Expenses on my Tax Return 2023?

Can I Deduct Home Office Expenses on my Tax...

Canadian Tax – Personal Tax Deadline 2022

  Canadian Tax – Personal Tax Deadline 2022 Resources and Tools...

The t distribution is a probability distribution that is similar to the normal distribution except it has heavier “tails” than the normal distribution.

That is, more values in the distribution are located in the tail ends than the center compared to the normal distribution:

Normal distribution vs. t-distribution

This tutorial explains how to use the t distribution in Python.

How to Generate a t Distribution

You can use the t.rvs(df, size) function to generate random values from a t distribution with a specific degrees of freedom and sample size:

from scipy.stats import t

#generate random values from t distribution with df=6 and sample size=10
t.rvs(df=6, size=10)

array([-3.95799716, -0.01099963, -0.55953846, -1.53420055, -1.41775611,
       -0.45384974, -0.2767931 , -0.40177789, -0.3602592 ,  0.38262431])

The result is an array of 10 values that follow a t distribution with 6 degrees of freedom.

How to Calculate P-Values Using t Distribution

We can use the t.cdf(x, df, loc=0, scale=1) function to find the p-value associated with some t test statistic.

Example 1: Find One-Tailed P-Value

Suppose we perform a one-tailed hypothesis test and end up with a t test statistic of -1.5 and degrees of freedom = 10.

We can use the following syntax to calculate the p-value that corresponds to this test statistic:

from scipy.stats import t

#calculate p-value
t.cdf(x=-1.5, df=10)

0.08225366322272008

The one-tailed p-value that corresponds to a t test statistic of -1.5 with 10 degrees of freedom is 0.0822.

Example 2: Find Two-Tailed P-Value

Suppose we perform a two-tailed hypothesis test and end up with a t test statistic of 2.14 and degrees of freedom = 20.

We can use the following syntax to calculate the p-value that corresponds to this test statistic:

from scipy.stats import t

#calculate p-value
(1 - t.cdf(x=2.14, df=20)) * 2

0.04486555082549959

The two-tailed p-value that corresponds to a t test statistic of 2.14 with 20 degrees of freedom is 0.0448.

Note: You can double check these answers by using the Inverse t Distribution Calculator.

How to Plot a t Distribution

You can use the following syntax to plot a t distribution with a specific degrees of freedom:

from scipy.stats import t
import matplotlib.pyplot as plt

#generate t distribution with sample size 10000
x = t.rvs(df=12, size=10000)

#create plot of t distribution
plt.hist(x, density=True, edgecolor='black', bins=20)

t distribution plot in Python

Alternatively, you can create a density curve using the seaborn visualization package:

import seaborn as sns

#create density curve
sns.kdeplot(x)

plot t distribution curve in Python

Additional Resources

The following tutorials offer additional information about the t distribution:

Normal Distribution vs. t-Distribution: What’s the Difference?
Inverse t Distribution Calculator

Subscribe

- Never miss a story with notifications

- Gain full access to our premium content

- Browse free from up to 5 devices at once

Latest stories