Student’s t-distribution in R
On this page, I will run through the Student’s t-distribution in R based on the build in R functions: dt(), pt(), qt() and rt().
For a more reader friendly format, view my RPubs doc for this page: https://rpubs.com/CarstenGrube/t-distribution-in-R. On my page Student’s t-distribution I go through more details of the t-distribution.
Student t probability density with the dt() function
Let’s graph the density of a t-distribution using the dt() function. We will create a vector of quantiles, apply the dt() funtions to this vector and then plot it:
# Creating the vector with the x-values for dt function
x_dt <- seq(– 5, 5, by = 0.01)
# Applying the dt() function
y_dt <- dt(x_dt, df = 3)
# Plotting
plot(y_dt, type = “l”, main = “t-distribution density function example”, las=1)
Student’s t cumulative distribution with the pt() function
P-value in one-tailed test with pt() function
Say we calculate a t-statistics of 1.9 using the t-stat formula:
# t-stat=1.9, df=15
# one-sided p-value
# P(t => 1.9)
pt(q=1.9, df=15, lower.tail = F)
## [1] 0.03841551
The p-value is 0.038 leading to rejection of H0 at a significance level greater than 0.038.
P-value in two-tailed test with pt() function
Let’s run a two-tailed test with the exampel above: t-stat=1.9, df=15
# two-sided p-value
# By adding the two tails
pt(q=1.9, df=15, lower.tail = F) + pt(q=–1.9, df=15, lower.tail = T)
## [1] 0.07683103
# By doubling one tail
pt(q=1.9, df=15, lower.tail = F)*2
## [1] 0.07683103
Graphing the CDF
Let’s see how we can graph the t cumulative distribution function (CDF). We will start by creating a vector. Then we apply the pt() function and plot it:
# Creating the vector with the x-values for dt function
x_pt <- seq(– 5, 5, by = 0.01)
# Applying the dt() function
y_pt <- pt(x_pt, df = 3)
# Plotting
plot(y_pt, type = “l”, main = “t-distribution cumulative function example”, las=1)
Student’s t quantile function with qt()
Finding the t-value for a confidence interval
Let’s find t for a 95% confidence interval with 2.5% in each tail and df=15
# find t for 95% confidence interval
# value of t with 2.5% in each tail
qt(p=0.025, df = 15, lower.tail = T)
## [1] -2.13145
Graphing the quantile function using qt() function
We will specify the x-values with the seq() function for the qt() function, apply the qt() function and plot it:
# Specifyin the x-values
x_qt <- seq(0.1, by = 0.01)
# Applying the qt() function
y_qt <- qt(x_qt, df = 3)
# Plotting
plot(y_qt, main = “t quantile function example”, las = 1)
Generating random numbers with the rt() function
Let’s use the rt() function to generate random variables. First, we will set a seed for reproducibility specifying also the sample size n that we with to simulate:
# Setting seed for reproducibility
set.seed(91929)
# Setting sample size
n <- 10000
# Using rt() to drawing N log normally distributed values
y_rt <- rt(n, df = 3)
# Plotting a histogram of y_rt
hist(y_rt, breaks = 100, main = “Randomly drawn t density”)
Thanks to Joachim for your Statistics Globe site. This page is partly a run through of your t-distribution page: https://statisticsglobe.com/student-t-distribution-in-r-dt-pt-qt-rt

Carsten Grube
Freelance Data Analyst
Normal distribution
Confidence intervals
Simple linear regression, fundamentals
Two-sample inference
ANOVA & the F-distribution

+34 616 71 29 85
Call me

Spain: Ctra. 404, km 2, 29100 Coín, Malaga
...........
Denmark: c/o Musvitvej 4, 3660 Stenløse
Drop me a line
What are you working on just now? Can I help you, and can you help me?
About me
Learning statistics. Doing statistics. Freelance since 2005. Dane. Living in Spain. With my Spanish wife and two children.
Connect with me
What they say
20 years in sales, analysis, journalism and startups. See what my customers and partners say about me.
0 Comments