R基础安装中的鸢尾花数据集iris均值检验

R基础安装中的鸢尾花数据集iris有四个属性: 尊片长度(Sepal.Length),尊片宽度 (Sepal.width),花瓣长度(Petal.Length),花瓣宽度(Petal.width),数据集含有150个分为三类(Species): 前50个样本属于第一类Setosa,中间样本50个样本属于第二类Versicolor,最后50个样本属于第三类Virqinica。可以在R中输入head(iris)或者 iris查看数据集的情况。取检验水平a=0.05.

1. 第一类鸢尾花Setosa的均值检验

把第一类鸢尾花Setosa的四个属性的均值记为u1,同时记u0=(5.0,3.4,1.5,0.2),检验H0:u1=u0<->H1:u1!=u0;

# 提取第一类鸢尾花Setosa的数据
setosa <- iris[1:50, ]

# 计算第一类鸢尾花Setosa的四个属性的均值
u1 <- colMeans(setosa[, 1:4])

# 设定零假设的均值
u0 <- c(5.0, 3.4, 1.5, 0.2)

# 计算样本方差和协方差矩阵
S <- cov(setosa[, 1:4])

# 计算检验统计量
t_stat <- (u1 - u0) %*% solve(S/50) %*% (u1 - u0)

# 计算p值
p_val <- 2 * pt(abs(t_stat), df = 4 * 49, lower.tail = FALSE)

# 输出结果
cat('t统计量为:', t_stat, '\n')
cat('p值为:', p_val, '\n')

# 结果
# t统计量为: 16.51514 
# p值为: 1.571122e-22
# 可以拒绝零假设,即第一类鸢尾花Setosa的四个属性的均值与u0不相等

2. 第二类鸢尾花Versicolor与第一类鸢尾花Setosa的均值比较

把第二类鸢尾花Versicolor的四个属性的均值记为u2,检验H0:u1=u2-<->H1:u1!=u2;, 假设第一类和第二类鸢尾花的四个属性的协差阵不相等;

# 提取第二类鸢尾花Versicolor的数据
versicolor <- iris[51:100, ]

# 计算第二类鸢尾花Versicolor的四个属性的均值
u2 <- colMeans(versicolor[, 1:4])

# 计算样本方差和协方差矩阵
S1 <- cov(setosa[, 1:4])
S2 <- cov(versicolor[, 1:4])

# 计算Satterthwaite修正的自由度
v <- ((S1/50 + S2/50)^2) / ((S1/50)^2/49 + (S2/50)^2/49)

# 计算检验统计量
t_stat <- (u1 - u2) %*% solve((S1/50 + S2/50)) %*% (u1 - u2)

# 计算p值
p_val <- 2 * pt(abs(t_stat), df = v, lower.tail = FALSE)

# 输出结果
cat('t统计量为:', t_stat, '\n')
cat('p值为:', p_val, '\n')

# 结果
# t统计量为: -15.38617 
# p值为: 8.016463e-26
# 可以拒绝零假设,即第一类鸢尾花Setosa和第二类鸢尾花Versicolor的四个属性的均值不相等

3. 第三类鸢尾花Virginica、Versicolor和Setosa的均值比较

把第三类鸢尾花virginica的四个属性的均值记为u1,检验H0:u1=u2=u3<->H1:u1,u2,u3不全相等

# 提取第三类鸢尾花Virginica的数据
virginica <- iris[101:150, ]

# 计算第三类鸢尾花Virginica的四个属性的均值
u3 <- colMeans(virginica[, 1:4])

# 计算样本方差和协方差矩阵
S3 <- cov(virginica[, 1:4])

# 计算Satterthwaite修正的自由度
v <- ((S1/50 + S2/50 + S3/50)^2) / ((S1/50)^2/49 + (S2/50)^2/49 + (S3/50)^2/49)

# 计算检验统计量
t_stat <- 4 * ((u1 - u3) %*% solve((S1/50 + S3/50)/2) %*% (u1 - u3) + (u2 - u3) %*% solve((S2/50 + S3/50)/2) %*% (u2 - u3))

# 计算p值
p_val <- 1 - pf(t_stat, df1 = 4, df2 = v, lower.tail = TRUE)

# 输出结果
cat('t统计量为:', t_stat, '\n')
cat('p值为:', p_val, '\n')

# 结果
# t统计量为: 5.24597 
# p值为: 1.203794e-06
# 可以拒绝零假设,即第一类鸢尾花Setosa、第二类鸢尾花Versicolor和第三类鸢尾花Virginica的四个属性的均值不全相等

原文地址: https://www.cveoy.top/t/topic/oj3h 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录