在统计中, T检验是最常见的检验之一, 用于确定两组平均值是否相等。该测试的假设是, 两组均从具有相同波动的正态分布中采样。零假设是这两个均值是相同的, 而备选的是它们是不相同的。众所周知, 在原假设下, 我们可以计算一个t统计量, 该统计量将遵循t分布具有n1 + n2-2个自由度。
在R中, 有多种类型的T检验, 例如一个样本和Welch T检验。 R提供了一个t.test()函数, 该函数提供了多种T检验。
不同的T-test有t.test()函数的以下语法
独立的2组T检验
t.test(y~x)
此处, y是数字, x是二进制因子。
独立的2组T检验
t.test(y1, y2)
此处, y1和y2是数字。
配对T检验
t.test(y1, y2, paired=TRUE)
此处, y1和y2是数字。
一次样本T检验
t.test(y, mu=3)
在这里, 何:亩= 3
如何在R中执行T检验
在T检验中, 为了指定均等方差和汇总方差估计, 我们设置var.equal = True。我们还可以使用alternative =” less”或alternative =” greater”来指定单尾测试。
让我们看看如何执行一个样本, 配对样本和独立样本的T检验。
一样本T检验
单样本T检验是将向量的平均值与理论平均值进行比较的T检验。以下公式可用于计算T检验:
这里,
- M是平均值。
- ?是理论平均值。
- s是标准偏差。
- n是观察数。
为了评估t检验的统计显着性, 我们需要计算p值。 p值范围从0到1, 并解释如下:
- 如果p值小于0.05, 则表示我们很有信心拒绝原假设。这样H3被接受。
- 如果p值大于0.05, 则表明我们没有足够的证据来拒绝原假设。
我们通过查看t检验的相应绝对值来构造p值。
在R中, 我们使用t.test()函数的以下语法在R中执行一次样本T检验。
t.test(x, ?=0)
这里,
- x是我们感兴趣的变量的名称。
- ?由零假设描述, 该假设等于均值。
例子
让我们看一个单样本T检验示例, 在该示例中, 我们测试木材装运量是否小于通常的量(?0 = 0)。
set.seed(0)
ship_vol <- c(rnorm(70, mean = 35000, sd = 2000))
t.test(ship_vol, mu = 35000)
输出
配对样本T检验
为了执行配对样本测试, 我们需要两个向量数据y1和y2。然后, 我们将使用语法t.test(y1, y2, 成对= TRUE)运行代码。
例:
假设我们在一家大型的卫生诊所工作, 并且正在测试一种旨在降低高血压的新药Procardia。我们发现13000例收缩压高(x 150 = 150 mmHg, SD = 10 mmHg)的人, 我们为他们提供了一个月的Procardia, 然后再次测量他们的血压。我们发现平均收缩压降至144 mmHg, 标准差为9 mmHg。
set.seed(2800)
pre.treatment <- c(rnorm(2000, mean = 130, sd = 5))
post.treatment <- c(rnorm(2000, mean = 144, sd = 4))
t.test(pre_Treatment, post_Treatment, paired = TRUE)
输出
独立样本T检验
根据我们数据的结构及其方差的相等性, 独立样本T检验可以采用以下三种形式之一:
- y1和y2是数字的独立样本T检验。
- 独立样本T检验, 其中y1是数字, y2是二进制。
- 不假设方差相等的独立样本T检验。
独立样本t检验具有以下t.test()函数的一般形式:
t.test(y1, y2, paired=FALSE)
默认情况下, R假定y1和y2的版本不相等, 因此默认为Welch检验。为了进行切换, 我们设置标志var.equal = TRUE。
让我们看一些检验假设的例子。在这种假设下, 克利夫兰人和纽约人每月花费不同的金额在户外用餐。
示例1:独立样本T检验, 其中y1和y2是数字
set.seed(0)
Spenders.Cleve <- rnorm(50, mean = 300, sd = 70)
Spenders.NY <- rnorm(50, mean = 350, sd = 70)
t.test(Spenders.Cleve, Spenders.NY, var.equal = TRUE)
输出
示例2:其中y1是数字, y2是二进制
set.seed(0)
Spenders.Cleve <- rnorm(50, mean = 300, sd = 70)
Spenders.NY <- rnorm(50, mean = 350, sd = 70)
Amount.Spent <- c(Spenders.Cleve, Spenders.NY)
city.name <- c(rep("Cleveland", 50), rep("New York", 50))
t.test(Amount.Spent ~ city.name, var.equal = TRUE)
输出
例3:不假设方差相等
set.seed(0)
Spenders.Cleve <- rnorm(50, mean = 300, sd = 70)
Spenders.NY <- rnorm(50, mean = 350, sd = 70)
t.test(Spenders.Cleve, Spenders.NY, var.equal = FALSE)
输出
评论前必须登录!
注册