R语言计算:t分布及t检验-R语言实现

时间:2024-04-18 20:44:52

使用R语言绘制 t t t分布曲线图

# 设置*度  
df <- 5  

curve(dt(x, df), from = -5, to = 5, xlab = "t值", ylab = "概率密度",   
      main = paste("t分布曲线图 (df =", df, ")"), col = "blue", lwd = 2)  
grid(col="gray", lty="dotted")  
abline(v=0, col="gray") 
abline(h=0, col="gray")
polygon(c(-5, seq(-5, 5, length=200), 5),   
        c(0, dt(seq(-5, 5, length=200), df), 0),   
        col="lightblue", border=NA)

生成图形
在这里插入图片描述
t t t分布单尾曲线图

df <- 5  
  
# t > 0
curve(dt(x, df), from = 0, to = 5, xlab = "t值", ylab = "概率密度",   
      main = paste("t分布单尾曲线图 (df =", df, ")"), col = "blue", lwd = 2, xlim = c(0, 5))  
grid(col = "gray", lty = "dotted")  
polygon(c(0, seq(0, 5, length = 200), 5),   
        c(0, dt(seq(0, 5, length = 200), df), 0),   
        col = "lightblue", border = NA)

在这里插入图片描述
t t t分布双尾曲线图

df <- 5  

curve(dt(x, df), from = -5, to = 5, xlab = "t值", ylab = "概率密度",   
      main = paste("t分布双尾曲线图 (df =", df, ")"), col = "blue", lwd = 2)  
grid(col = "gray", lty = "dotted")  
# t < -2 
polygon(c(-5, seq(-5, -2, length = 200), -2),   
        c(0, dt(seq(-5, -2, length = 200), df), 0),   
        col = "blue", border = NA)  
polygon(c(2, seq(2, 5, length = 200), 5),   
        c(0, dt(seq(2, 5, length = 200), df), 0),   
        col = "blue", border = NA)

在这里插入图片描述单样品t检验

单样品t检验用于检验单个样本的均值与已知的某个值(通常是理论值或标准值)是否有显著差异。

# 检验数据的均值是否与某个已知值(比如10)有显著差异
data <- c(9.8, 10.2, 9.9, 10.1, 10.0, 9.7, 10.3)

print(t.test(data, mu = 10))

输出

	One Sample t-test

data:  data
t = 0, df = 6, p-value = 1
alternative hypothesis: true mean is not equal to 10
95 percent confidence interval:
  9.80021 10.19979
sample estimates:
mean of x 
       10 

根据输出的报告可以看出:
t值=0,样本均值与假设的均值(在这里是10)之间没有差异。
*度=6,对于单样本t检验, d f = n − 1 df = n - 1 df=n1 n n n是样本数量。
p值=1,不能拒绝样本均值与10没有显著差异的原假设。
置信区间=95%。

双样品t检验
用于比较两个独立样本的均值是否存在显著差异。

# 现有两组独立的数据,比较这两组数据的均值是否有显著差异
data1 <- c(9.8, 10.2, 9.9, 10.1, 10.0)
data2 <- c(9.5, 9.6, 9.7, 9.9, 9.8, 10.0, 9.7, 9.8)

print(t.test(data1, data2))

输出

	Welch Two Sample t-test

data:  data1 and data2
t = 2.7584, df = 8.7335, p-value = 0.02279
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 0.04401691 0.45598309
sample estimates:
mean of x mean of y 
    10.00      9.75 

根据输出的报告可以看出:
t值=2.7584,在双样本t检验中,t值用于衡量两组数据的均值之间的差异,相对于它们的合并标准误差来说是否显著。
*度=8.7335,对于双样本t检验,使用Welch公式对两个样本的大小和方差进行调整计算得出。
p值=0.02279,这小于常用的显著性水平0.05,两组数据的均值存在显著差异。
置信区间=95%。
根据R语言的输出报告显示,可以拒绝两组数据均值相同的原假设。

配对样品t检验

配对样品t检验用于比较同一组观测对象在不同条件下的测量值是否存在显著差异。

# 现有一组观测对象在两种不同条件下的测量值,检验这两种条件下测量值的均值是否有显著差异
data1 <- c(5.1, 5.5, 5.3, 5.6, 5.4)
data2 <- c(4.8, 5.0, 5.2, 5.4, 5.1)

print(t.test(data2, data1, paired = TRUE))

输出

Paired t-test

data:  data2 and data1
t = -4.2212, df = 4, p-value = 0.01347
alternative hypothesis: true mean difference is not equal to 0
95 percent confidence interval:
 -0.46416853 -0.09583147
sample estimates:
mean difference 
          -0.28 

t值=-4.2212,在配对t检验中,t值用于衡量配对观测值之间的差异是否显著,第一组数据的均值小于第二组。
*度=4。
p值=0.01347,由于p值小于常用的显著性水平0.05,我们可以拒绝两组数据的均值差异为0的原假设,认为两组数据的均值存在显著差异。
置信区间=95%,对于两组数据的均值差异,有95%的信心认为这个差异在-0.46416853到-0.09583147之间。
样本估计=-0.28。配对数据中计算出的实际均值差异。