R 中 dt、qt、pt 和 rt 指南

Student t 分布是统计学中最常用的分布之一。本教程介绍如何使用dt()qt()pt()rt()函数在 R 中处理 Student t 分布。

dt

函数dt返回给定某个随机变量x和自由度df的学生 t 分布的概率密度函数 (pdf) 值。使用dt的语法如下:

dt(x, df)

以下代码演示了dt的一些实际操作示例:

 #find the value of the Student t distribution pdf at x = 0 with 20 degrees of freedom
dt(x = 0, df = 20)

#[1] 0.3939886

#by default, R assumes the first argument is x and the second argument is df
dt(0, 20)

#[1] 0.3939886
#find the value of the Student t distribution pdf at x = 1 with 30 degrees of freedom
dt(1, 30)

#[1] 0.2379933

通常,当尝试使用学生 t 分布解决有关概率的问题时,您通常会使用pt而不是dt 。然而, dt的一个有用应用是在 R 中创建学生 t 分布图。以下代码说明了如何执行此操作:

 #Create a sequence of 100 equally spaced numbers between -4 and 4
x <- seq(-4, 4, length=100)

#create a vector of values that shows the height of the probability distribution
#for each value in x, using 20 degrees of freedom
y <- dt(x = x, df = 20)

#plot x and y as a scatterplot with connected lines (type = "l") and add
#an x-axis with custom labels
plot(x,y, type = "l", lwd = 2, axes = FALSE, xlab = "", ylab = "")
axis(1, at = -3:3, labels = c("-3s", "-2s", "-1s", "mean", "1s", "2s", "3s"))

这会生成以下图:

pt函数返回给定某个随机变量x和自由度df的学生 t 分布的累积密度函数 (cdf) 的值。使用 pnorm 的语法如下:

点(x,df)

简单来说, pt返回学生 t 分布中给定x值左侧的面积。如果您对给定x值右侧的区域感兴趣,您可以简单地添加参数lower.tail = FALSE

pt(x, df, lower.tail = FALSE)

以下示例说明了如何使用 pt 解决一些概率问题。

示例 1:查找值为 -0.785、自由度为 14 的 t 统计量左侧的面积。

 pt(-0.785, 14)

#[1] 0.2227675

示例 2:查找值为 -0.785、自由度为 14 的 t 统计量右侧的面积。

 #the following approaches produce equivalent results

#1 - area to the left
1 - pt(-0.785, 14)

#[1] 0.7772325

#area to the right
pt(-0.785, 14, lower.tail = FALSE)

#[1] 0.7772325 

示例 3:查找位于 -0.785 左侧或 0.785 右侧、具有 14 个自由度的 Student t 分布中的总面积。

 pt (-0.785, 14) + pt (0.785, 14, lower.tail = FALSE)

#[1] 0.4455351

qt

函数qt返回给定某个随机变量x和自由度df 的学生 t 分布的逆累积密度函数 (cdf) 的值。使用qt的语法如下:

qt(x, df)

简单来说,您可以使用qt找出学生 t 分布的第 p 分位数的 t 分数是多少。

以下代码演示了qt的一些实际操作示例:

 #find the t-score of the 99th quantile of the Student t distribution with df = 20
qt(.99, df = 20)

#[1][1]2.527977

#find the t-score of the 95th quantile of the Student t distribution with df = 20
qt(.95, df = 20)

#[1]1.724718

#find the t-score of the 90th quantile of the Student t distribution with df = 20
qt(.9, df = 20)

#[1]1.325341

请注意, qt找到的临界值将对应于 t 分布表中找到的临界值以及逆 t 分布计算器可以找到的临界值。

室温

函数rt生成一个随机变量向量,在给定向量长度n和自由度df的情况下,该向量遵循学生 t 分布。使用rt的语法如下:

rt(n, df)

以下代码演示了rt的一些实际操作示例:

 #generate a vector of 5 random variables that follows a Student t distribution
#with df = 20
rt(n = 5, df = 20)

#[1] -1.7422445 0.9560782 0.6635823 1.2122289 -0.7052825

#generate a vector of 1000 random variables that follows a Student t distribution
#with df = 40
narrowDistribution <- rt(1000, 40)

#generate a vector of 1000 random variables that follows a Student t distribution
#with df = 5
wideDistribution <- rt(1000, 5)

#generate two histograms to view these two distributions side by side, and specify
#50 bars in histogram,
par(mfrow=c(1, 2)) #one row, two columns
hist(narrowDistribution, breaks=50, xlim = c(-6, 4)) 
hist(wideDistribution, breaks=50, xlim = c(-6, 4))

这会生成以下直方图:

请注意宽分布比窄分布更宽。事实上,我们指定宽分布中的自由度为 5,而窄分布中的自由度为 40。自由度越少,Student t 分布就越宽。

进一步阅读:
R 中 dnorm、pnorm、qnorm 和 rnorm 指南
R 中的 dbinom、pbinom、qbinom 和 rbinom 指南

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注