【R语言】t检验

t检验(t-test)是用于比较两个样本均值是否存在显著差异的一种统计方法。

t.test()函数的调用格式:

R 复制代码
t.test(x, y=NULL, alternative=c("two.sided", "less", "greater"), mu=0, paired=FALSE, var.equal=FALSE, conf.level=0.95, ...)

参数详解:

  1. x:用于均值比较的数值向量。
  2. y:用于均值比较的数值向量。当y=NULL时,表示为单样本t检验。
  3. alternative:表示指定假设检验的备择检验类型。two.sided:双侧检验(默认);less:左侧检验(备择假设为样本均值小于mu);greater:右侧检验(备择假设为样本均值大于mu)。
  4. mu :一个对比用的数值,默认为0。当检验为单样本t检验时,表示x所代表的总体均值是否与mu中指定的值相等;当检验为双样本t检验时,表示x和y代表的总体均值之差是否与mu中指定的值相等。
  5. pair :逻辑值,指定是否为配对样本,默认为FALSE,即独立样本。
  6. var.equal :逻辑值,指定两个样本的方差是否相等(默认为TRUE,即假设方差相等;如果方差可能不相等,应设置为FALSE以执行Welch t检验)
  7. conf.level:置信区间的置信水平。

一、单样本t检验

**单样本t检验(One-Sample t-Test)**用于比较一个样本的均值与已知的总体均值是否存在显著差异。

R 复制代码
sample_data <- c(5.1, 4.8, 5.0, 5.3, 4.9)

# 总体均值
mu <- 5.0

# 执行单样本t检验
t.test(sample_data, mu = mu)

二、独立样本t检验

**独立样本t检验(Independent Two-Sample t-Test)**用于比较两个独立样本的均值是否存在显著差异。

R 复制代码
group1 <- c(5.1, 4.8, 5.0, 5.3, 4.9)
group2 <- c(5.5, 5.2, 5.4, 5.6, 5.0)

# 执行独立样本t检验, 假设两组数据之间无差异
t.test(group1, group2, alternative="two.sided", var.equal = T)

使用R语言中内置的数据集InsectSprays,检验杀虫剂C与杀虫剂D的效果差异。

R 复制代码
head(InsectSprays)
library(dplyr)
# 筛选杀虫剂C和D
data1 <- dplyr::filter(InsectSprays, spray %in% c("C", "D"))
# 独立样本t检验:假设使用杀虫剂C后的昆虫数目比使用杀虫剂D后的少
t.test(count ~ spray, data1, alternative="less", var.equal=T)

从以下结果可知,使用杀虫剂C后的昆虫数目(2.08)显著(P=0.0027<0.05)小于使用杀虫剂D后的昆虫数目(4.917),即杀虫剂C的效果比D好。

相关推荐
承渊政道8 分钟前
【Python编程—从入门到实践】(Python字典:从基础语义到现代工程实践)
开发语言·python·pycharm·字典·嵌套
luj_176828 分钟前
一线一区一变破解人盯人防守密码
开发语言·网络·c++·经验分享·算法
名字还没想好☜1 小时前
Python 字符编码实战:encode/decode、UnicodeDecodeError 与 open 的 encoding 坑
开发语言·后端·python·编程语言
萧瑟余晖1 小时前
持久层选型与框架对比详解
开发语言·架构
CodeStats1 小时前
【Java 类加载器】Java 类加载器完整体系深度拆解(上):从 JVM 启动到双亲委派模型
java·开发语言·jvm·classloader·双亲委派
软件黑马王子1 小时前
24.Editor 资源加载:主要作用和基本原理
开发语言·前端框架·c#
luj_17681 小时前
中锋卡位与开放线博弈
c语言·开发语言·网络·经验分享·算法
未来之窗软件服务1 小时前
计算机二级[英文]-C 逻辑运算和fopen—东方仙盟
c语言·开发语言·仙盟创梦ide·东方仙盟
Jackson_GJH1 小时前
日志_图解spdlog
开发语言·c++
CodeStats2 小时前
【Java类加载器】Java 类加载器完整体系深度拆解(下):自定义加载器实战与 SPI 破坏双亲委派(MySQL 驱动揭秘)
java·开发语言·jvm·classloader·双亲委派