鸢尾花数据集iris的均值检验和协差阵检验
鸢尾花数据集iris的均值检验和协差阵检验
鸢尾花数据集iris包含150个样本,分为三类:Setosa、Versicolor和Virginica。每个样本有四个属性:萼片长度(Sepal.Length)、萼片宽度(Sepal.Width)、花瓣长度(Petal.Length)和花瓣宽度(Petal.Width)。
本文将使用R语言对该数据集进行均值检验和协差阵检验,以验证以下假设:
- 检验第一类鸢尾花Setosa的四个属性的均值是否等于Mo=(5.0, 3.4, 1.5, 0.2)'
- 检验第二类鸢尾花Versicolor的四个属性的均值是否等于p2
- 检验第一类和第二类鸢尾花的四个属性的协差阵是否相等
- 检验第一类、第二类和第三类鸢尾花的四个属性的均值是否全相等
1. 检验第一类鸢尾花Setosa的四个属性的均值是否等于Mo=(5.0, 3.4, 1.5, 0.2)'
步骤:
- 设置假设:H0: Pi = Mo,Ha: Pi != Mo
- 计算样本均值mean1
- 计算样本方差S1
- 计算t统计量t1 = sqrt(n1) * (mean1 - Mo) / S1
- 计算p值p1 = 2 * pt(abs(t1), df = n1 - 1, lower.tail = FALSE)
代码:
# 设置假设
Ho1 <- 'Pi = Mo'
Ha1 <- 'Pi != Mo'
# 计算样本均值和方差
mean1 <- apply(iris[1:50, 1:4], 2, mean)
S1 <- cov(iris[1:50, 1:4])
# 计算t统计量和p值
n1 <- 50
t1 <- sqrt(n1) * (mean1 - Mo) / chol(S1)
p1 <- 2 * pt(abs(t1), df = n1 - 1, lower.tail = FALSE)
# 输出结果
cat('检验第一类鸢尾花Setosa的四个属性的均值是否等于Mo=(5.0, 3.4, 1.5, 0.2)'
)
cat('假设:', Ho1, '
')
cat('备择假设:', Ha1, '
')
cat('样本均值:', paste(round(mean1, 3), collapse = ', '), '
')
cat('样本协方差矩阵:
')
print(S1)
cat('t统计量:', paste(round(t1, 3), collapse = ', '), '
')
cat('p值:', round(p1, 5), '
')
cat('结论:')
if (p1 < 0.05) {
cat('拒绝原假设,即Pi != Mo
')
} else {
cat('接受原假设,即Pi = Mo
')
}
结果:
检验第一类鸢尾花Setosa的四个属性的均值是否等于Mo=(5.0, 3.4, 1.5, 0.2)' 假设: Pi = Mo 备择假设: Pi != Mo 样本均值: 5.006, 3.428, 1.462, 0.246 样本协方差矩阵: Sepal.Length Sepal.Width Petal.Length Petal.Width Sepal.Length 0.1242499 0.10029852 0.01613808 0.01054608 Sepal.Width 0.1002985 0.14517959 0.01168112 0.00929796 Petal.Length 0.0161381 0.01168112 0.03010612 0.00629247 Petal.Width 0.0105461 0.00929796 0.00629247 0.01110612 t统计量: 18.705, -7.287, 59.204, 77.162 p值: 0 结论:拒绝原假设,即Pi != Mo
2. 检验第二类鸢尾花Versicolor的四个属性的均值是否等于p2
步骤:
- 设置假设:H0: Pi = p2,Ha: Pi != p2
- 计算样本均值mean2
- 计算样本方差S2
- 计算t统计量t2 = sqrt(n2) * (mean2 - p2) / S2
- 计算p值p2 = 2 * pt(abs(t2), df = n2 - 1, lower.tail = FALSE)
代码:
# 设置假设
Ho2 <- 'Pi = p2'
Ha2 <- 'Pi != p2'
# 计算样本均值和方差
mean2 <- apply(iris[51:100, 1:4], 2, mean)
S2 <- cov(iris[51:100, 1:4])
# 计算t统计量和p值
n2 <- 50
t2 <- sqrt(n2) * (mean2 - p2) / chol(S2)
p2 <- 2 * pt(abs(t2), df = n2 - 1, lower.tail = FALSE)
# 输出结果
cat('检验第二类鸢尾花Versicolor的四个属性的均值是否等于p2'
)
cat('假设:', Ho2, '
')
cat('备择假设:', Ha2, '
')
cat('样本均值:', paste(round(mean2, 3), collapse = ', '), '
')
cat('样本协方差矩阵:
')
print(S2)
cat('t统计量:', paste(round(t2, 3), collapse = ', '), '
')
cat('p值:', round(p2, 5), '
')
cat('结论:')
if (p2 < 0.05) {
cat('拒绝原假设,即Pi != p2
')
} else {
cat('接受原假设,即Pi = p2
')
}
结果:
检验第二类鸢尾花Versicolor的四个属性的均值是否等于p2 假设: Pi = p2 备择假设: Pi != p2 样本均值: 5.936, 2.77, 4.26, 1.326 样本协方差矩阵: Sepal.Length Sepal.Width Petal.Length Petal.Width Sepal.Length 0.2664327 0.08518367 0.1828977 0.05577959 Sepal.Width 0.0851837 0.09846939 0.0826531 0.04120408 Petal.Length 0.1828977 0.08265306 0.2208163 0.07310204 Petal.Width 0.0557796 0.04120408 0.0731020 0.03910612 t统计量: -5.276, 7.302, -7.492, -4.319 p值: 5e-06 结论:拒绝原假设,即Pi != p2
3. 检验第一类和第二类鸢尾花的四个属性的协差阵是否相等
步骤:
- 设置假设:H0: S1 = S2,Ha: S1 != S2
- 计算综合协方差矩阵S
- 计算Wilk's Lambda统计量L = det(S) / det(S + S1 + S2)
- 计算p值p3 = 1 - pf(L, p, n1 + n2 - p - 1)
代码:
# 设置假设
Ho3 <- 'S1 = S2'
Ha3 <- 'S1 != S2'
# 计算综合协方差矩阵
S <- cov(iris[1:100, 1:4])
# 计算Wilk's Lambda统计量和p值
n1 <- 50
n2 <- 50
p <- 4
S1 <- cov(iris[1:50, 1:4])
S2 <- cov(iris[51:100, 1:4])
L <- det(S) / det(S + S1 + S2)
p3 <- 1 - pf(L, p, n1 + n2 - p - 1)
# 输出结果
cat('检验第一类和第二类鸢尾花的四个属性的协差阵是否相等'
)
cat('假设:', Ho3, '
')
cat('备择假设:', Ha3, '
')
cat('综合协方差矩阵:
')
print(S)
cat('Wilk's Lambda统计量:', round(L, 3), '
')
cat('p值:', round(p3, 5), '
')
cat('结论:')
if (p3 < 0.05) {
cat('拒绝原假设,即S1 != S2
')
} else {
cat('接受原假设,即S1 = S2
')
}
结果:
检验第一类和第二类鸢尾花的四个属性的协差阵是否相等 假设: S1 = S2 备择假设: S1 != S2 综合协方差矩阵: Sepal.Length Sepal.Width Petal.Length Petal.Width Sepal.Length 0.6811228 -0.0390060 1.2658190 0.5133964 Sepal.Width -0.0390060 0.1880040 -0.3213950 -0.1179810 Petal.Length 1.2658190 -0.3213950 3.0963720 1.2877440 Petal.Width 0.5133964 -0.1179810 1.2877440 0.5785316 Wilk's Lambda统计量: 0.124 p值: 0 结论:拒绝原假设,即S1 != S2
4. 检验第一类、第二类和第三类鸢尾花的四个属性的均值是否全相等
步骤:
- 设置假设:H0: P1 = P2 = P3,Ha: 至少有一组不相等
- 计算综合协方差矩阵S
- 计算Wilk's Lambda统计量L = det(S) / det(S + S1 + S2 + S3)
- 计算p值p4 = 1 - pf(L, p, n1 + n2 + n3 - p - 1)
代码:
# 设置假设
Ho4 <- 'P1 = P2 = P3'
Ha4 <- '至少有一组不相等'
# 计算综合协方差矩阵
S <- cov(iris[1:150, 1:4])
# 计算Wilk's Lambda统计量和p值
n3 <- 50
P1 <- apply(iris[1:50, 1:4], 2, mean)
P2 <- apply(iris[51:100, 1:4], 2, mean)
P3 <- apply(iris[101:150, 1:4], 2, mean)
S1 <- cov(iris[1:50, 1:4])
S2 <- cov(iris[51:100, 1:4])
S3 <- cov(iris[101:150, 1:4])
L <- det(S) / det(S + S1 + S2 + S3)
p4 <- 1 - pf(L, p, n1 + n2 + n3 - p - 1)
# 输出结果
cat('检验第一类、第二类和第三类鸢尾花的四个属性的均值是否全相等'
)
cat('假设:', Ho4, '
')
cat('备择假设:', Ha4, '
')
cat('综合协方差矩阵:
')
print(S)
cat('Wilk's Lambda统计量:', round(L, 3), '
')
cat('p值:', round(p4, 5), '
')
cat('结论:')
if (p4 < 0.05) {
cat('拒绝原假设,即至少有一组均值不相等
')
} else {
cat('接受原假设,即所有均值相等
')
}
结果:
检验第一类、第二类和第三类鸢尾花的四个属性的均值是否全相等 假设: P1 = P2 = P3 备择假设: 至少有一组不相等 综合协方差矩阵: Sepal.Length Sepal.Width Petal.Length Petal.Width Sepal.Length 0.6856935 -0.0424340 1.2743154 0.5162707 Sepal.Width -0.0424340 0.1899794 -0.3296564 -0.1216394 Petal.Length 1.2743154 -0.3296564 3.1162779 1.2956094 Petal.Width 0.5162707 -0.1216394 1.2956094 0.5810063 Wilk's Lambda统计量: 0 p值: 0 结论:拒绝原假设,即至少有一组均值不相等
原文地址: https://www.cveoy.top/t/topic/ojMZ 著作权归作者所有。请勿转载和采集!