本文主要是介绍R实验 方差分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
实验目的:
掌握单因素方差分析的思想和方法;
掌握多重均值检验方法;
掌握多个总体的方差齐性检验;
掌握Kruskal-Wallis秩和检验的思想和方法;
掌握多重Wilcoxon秩和检验的思想和方法。
实验内容:
(习题7.1)进行一次试验,当缓慢旋转的布面轮子受到磨损时,比较3种布上涂料的磨损量。对每种涂料类型试验10个涂料样品,记录每个样品直到出现可见磨损时的小时数,数据由下表给出(数据存放在paint.data文件中)。试用单因素方差分析方法分析:这3种涂料直至磨损明显可见的平均时间是否存在显著差异?如果存在,请做多重T检验,分析哪种涂料之间存在显著差异。
涂料 | 磨损小时数 | |||||||||
A | 148 | 76 | 393 | 520 | 236 | 134 | 55 | 166 | 415 | 153 |
B | 513 | 264 | 433 | 94 | 535 | 327 | 214 | 135 | 280 | 304 |
C | 335 | 643 | 216 | 536 | 128 | 723 | 258 | 380 | 594 | 465 |
三种涂料的磨损数据
解:
(1)这3种涂料直至磨损明显可见的平均时间是否存在显著差异?
提出假设:
H0:3种涂料直至磨损明显可见的平均时间不存在显著差异。
H1:3种涂料直至磨损明显可见的平均时间存在显著差异。
源代码及运行结果:(复制到此处,不要截图)
> x<-scan("C:\\Users\\黄培滇\\Desktop\\R语言生物统计学\\chap07\\paint.data")Read 30 items> A<-factor(rep(1:3,c(10,10,10)))> paint.aov<-aov(x~A)> summary(paint.aov)
Df Sum Sq Mean Sq F value Pr(>F)
A 2 198772 99386 3.482 0.0452 *
Residuals 27 770671 28543
---
Signif. codes:
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
结论:P值(0.0452<0.05),拒绝原假设,即3种涂料直至磨损明显可见的平均时间存在显著差异。
(2)如果存在,请做多重T检验,分析哪种涂料之间存在显著差异?
提出假设:
H0:μi=μj i,j=1,2,3,i≠j
H1:μi≠μj i,j=1,2,3,i≠j
源代码及运行结果:(复制到此处,不要截图)
> x<-scan("C:\\Users\\黄培滇\\Desktop\\R语言生物统计学\\chap07\\paint.data")> A<-factor(rep(1:3,c(10,10,10)))> tapply(x,A,mean)
1 2 3
229.6 309.9 427.8
> pairwise.t.test(x,A)
Pairwise comparisons using t tests with pooled SD
data: x and A
1 2
2 0.297 -
3 0.042 0.261
P value adjustment method: holm
结论:由结果得出,A涂料与B涂料有显著性差异和C涂料没有显著性差异,B涂料与C涂料有显著性差异。
(习题7.2)用于清洁金属部件有3种有机溶剂:芬芳剂、氯烷和酯类。下表(数据存放在solvent.data文件中)给出了这3种溶剂吸附比的测试结果,能否根据这组数据分析出这3种溶剂的吸附比是否存在显著差异?如果存在,请做多重T检验,分析哪种有机溶剂之间存在显著差异。
溶剂 | 摩尔分数 | ||||||||
芬芳剂 | 1.06 | 0.79 | 0.82 | 0.89 | 1.05 | 0.95 | 0.65 | 1.15 | 1.12 |
氯烷 | 1.58 | 1.45 | 0.57 | 1.16 | 1.12 | 0.91 | 0.83 | 0.43 | |
酯类 | 0.29 | 0.06 | 0.44 | 0.61 | 0.55 | 0.43 | 0.51 | 0.10 | 0.34 |
0.53 | 0.06 | 0.09 | 0.17 | 0.60 | 0.17 |
三种溶剂吸附比数据(单位:摩尔分数)
解:
(1)这3种溶剂的吸附比是否存在显著差异?
提出假设:
H0:3种溶剂的吸附比不存在显著差异
H1:3种溶剂的吸附比存在显著差异
源代码及运行结果:(复制到此处,不要截图)
> solvent<-data.frame(x<-scan("C:\\Users\\黄培滇\\Desktop\\R语言生物统计学\\chap07\\solvent.data"),+ A<-factor(rep(1:3,c(9,8,15))))
Read 32 items
> solvent.aov<-aov(x~A,data = solvent)> summary(solvent.aov)
Df Sum Sq Mean Sq F value Pr(>F)
A 2 3.305 1.6527 24.51 5.86e-07 ***
Residuals 29 1.955 0.0674
---
Signif. codes:
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
结论:P值远小于0.01,因此拒绝原假设,即3种溶剂的吸附比存在显著差异。
(2)如果存在,请做多重T检验,分析哪种有机溶剂之间存在显著差异?
提出假设:
H0:μi=μj i,j=1,2,3,i≠j
H1:μi=μj i,j=1,2,3,i≠j
源代码及运行结果:(复制到此处,不要截图)
> attach(solvent)
The following objects are masked from solvent (pos = 3):
A....factor.rep.1.3..c.9..8..15...,
x....scan..C...Users..黄培滇..Desktop..R语言生物统计学..chap07..solvent.data..
> tapply(x,A,mean)
1 2 3
0.9422222 1.0062500 0.3300000
> pairwise.t.test(x,A)
Pairwise comparisons using t tests with pooled SD
data: x and A
1 2
2 0.62 -
3 9.8e-06 5.5e-06
P value adjustment method: holm
结论:由结果得出,芬芳剂与氯烷没有显著性差异,而与酯类有显著性差异;氯烷与酯类没有显著性差异。
(习题7.3)对习题7.2的数据做正态性检验和方差齐性检验,试分析:使用方差不同模型(如oneway.test()函数)和方差相同模型(如aov()函数)哪个更合理?
解:
(1)正态性检验
提出假设:
H0:a试剂服从正态性,a=1,2,3
H1:a试剂不服从正态性,a=1,2,3
源代码及运行结果:(复制到此处,不要截图)
>#直接引用上题构建好的数据表
> with(solvent,tapply(x,A,shapiro.test))
$`1`
Shapiro-Wilk normality test
data: X[[i]]
W = 0.9508, p-value = 0.6989
$`2`
Shapiro-Wilk normality test
data: X[[i]]
W = 0.96815, p-value = 0.8831
$`3`
Shapiro-Wilk normality test
data: X[[i]]
W = 0.89092, p-value = 0.06923
结论:从计算结果得出,3组数据服从正态性
(2)方差齐性检验
提出假设:
H0:数据服从方差齐性
H1:数据不服从方差齐性
源代码及运行结果:(复制到此处,不要截图)
> #直接引用构建好的solvent数据表> bartlett.test(x~A,data = solvent)
Bartlett test of homogeneity of variances
data: x by A
Bartlett's K-squared = 6.7779, df = 2, p-value =
0.03374
结论:P值(0.0337<0.05),拒绝原假设,即数据不服从方差齐性。
(3)使用方差不同模型(如oneway.test()函数)和方差相同模型(如aov()函数)哪个更合理?
基于本题的情况即满足正态性,但不满足方差齐性,oneway,test()函数更合适。
(习题7.4)使用方差不同模型(oneway.test()函数)和秩检验方法(kruskal.test()函数)对习题7.1中的数据进行分析是否得到与习题7.1相同的结果?如果得到的结论不同,哪个结论更合理?试对数据做正态性检验(如shapiro.test()函数)和方差齐性检验(如bartlett.test()函数)来说明这一问题。
解:
(1)使用方差不同模型(oneway.test()函数)分析:这3种涂料直至磨损明显可见的平均时间是否存在显著差异?
提出假设:
H0:3种涂料直至磨损明显可见的平均时间不存在显著差异。
H1:3种涂料直至磨损明显可见的平均时间存在显著差异。
源代码及运行结果:(复制到此处,不要截图)
> paint<-data.frame(x<-scan("C:\\Users\\黄培滇\\Desktop\\R语言生物统计学\\chap07\\paint.data"),+ A<-factor(rep(1:3,c(10,10,10))))
Read 30 items
> oneway.test(x~A,data = paint)
One-way analysis of means (not assuming equal
variances)
data: x and A
F = 2.9699, num df = 2.000, denom df = 17.775,
p-value = 0.07713
结论:P值(0.0771>0.05),接受原假设,即3种涂料直至磨损明显可见的平均时间不存在显著差异。
(2)使用秩检验方法(kruskal.test()分析:这3种涂料直至磨损明显可见的平均时间是否存在显著差异?
提出假设:
H0:3种涂料直至磨损明显可见的平均时间不存在显著差异。
H1:3种涂料直至磨损明显可见的平均时间存在显著差异。
源代码及运行结果:(复制到此处,不要截图)
> kruskal.test(x~A,data = paint)
Kruskal-Wallis rank sum test
data: x by A
Kruskal-Wallis chi-squared = 5.4684, df = 2, p-value
= 0.06495
结论:P值(0.06495>0.05),接受原假设,即3种涂料直至磨损明显可见的平均时间不存在显著差异。
(3)如果得到的结论不同,哪个结论更合理?试对数据做正态性检验(如shapiro.test()函数)和方差齐性检验(如bartlett.test()函数)来说明这一问题。
> with(paint,tapply(x,A,shapiro.test))
$`1`
Shapiro-Wilk normality test
data: X[[i]]
W = 0.87975, p-value = 0.1296
$`2`
Shapiro-Wilk normality test
data: X[[i]]
W = 0.95268, p-value = 0.7003
$`3`
Shapiro-Wilk normality test
data: X[[i]]
W = 0.97137, p-value = 0.9033
> bartlett.test(x~A,data = paint)
Bartlett test of homogeneity of variances
data: x by A
Bartlett's K-squared = 0.79406, df = 2, p-value =
0.6723
由计算结果可知,习题7.1数据服从正态性要求与方差齐性要求。因此采用方差分析更为合适
(习题7.6)考查不同职业人群对心理疾病原因的认识,现找到A、B、C3种职业的人员各10名,这30个人用笔试的方式回答心理疾病原因的知识问卷,测试分数如下表所示(数据存放在staff.data文件中)。(1)使用Kruskal-Walis秩和检验,分析这3种职业人员平均测试分数是否有显著差异;(2)使用正态性检验和方差齐性检验的方法来分析Kruskal-Wallis秩和检验的合理性。
职业 | 测试分数 | |||||||||
A | 62 | 60 | 60 | 25 | 24 | 23 | 20 | 13 | 12 | 6 |
B | 62 | 62 | 24 | 24 | 22 | 20 | 19 | 10 | 8 | 8 |
C | 37 | 31 | 15 | 15 | 14 | 14 | 14 | 5 | 3 | 2 |
3种职业人员心理疾病的测试分析
解:
(1)使用Kruskal-Walis秩和检验,分析这3种职业人员平均测试分数是否有显著差异?
提出假设:
H0:3种职业人员平均测试分数没有显著差异
H1:3种职业人员平均测试分数有显著差异
源代码及运行结果:(复制到此处,不要截图)
> staff<-data.frame(x<-scan("C:\\Users\\黄培滇\\Desktop\\R语言生物统计学\\chap07\\staff.data"),+ A<-factor(rep(1:3,c(10,10,10))))
Read 30 items
> kruskal.test(x~A,data = staff)
Kruskal-Wallis rank sum test
data: x by A
Kruskal-Wallis chi-squared = 3.2535, df = 2, p-value
= 0.1966
结论:P值(0.1966>0.05)接受原假设,即3种职业人员平均测试分数没有显著差异。
(2)使用正态性检验和方差齐性检验的方法来分析Kruskal-Wallis秩和检验的合理性。
> with(staff,tapply(x,A,shapiro.test))
$`1`
Shapiro-Wilk normality test
data: X[[i]]
W = 0.81494, p-value = 0.02201
$`2`
Shapiro-Wilk normality test
data: X[[i]]
W = 0.76284, p-value = 0.005115
$`3`
Shapiro-Wilk normality test
data: X[[i]]
W = 0.86148, p-value = 0.07944
> bartlett.test(x~A,data = staff)
Bartlett test of homogeneity of variances
data: x by A
Bartlett's K-squared = 3.6228, df = 2, p-value =
0.1634
由计算结果,可以得出,题目中第1、2组数据不满足正态性要求,而数据满足方差齐性要求,因此Kruskal-Wallis秩和检验符合该题目。
(习题7.7)生物学家认为,河流中的富营养水注入海湾后,会导致浮游生物赖以生存的藻类快速生长,细菌则以浮游生物的排泄物和死藻类为主,消耗了水中的氧。为验证是否有这种情况发生,现测试某河流入海口开始的4个海洋区域中的平均溶解氧含量(见下表,.数据存放在sea.data文件中)。(1)对数据做正态性检验和方差齐性检验;(2)4个海洋区域溶解氧含量是否有显著差异?(3)如果有差异,哪些区域之间有差异?(注:请根据(1)的结果合理选择检验的方法)
距入海口距离 | 溶解氧含量 | |||||||||
1km | 1 | 5 | 2 | 1 | 2 | 2 | 4 | 3 | 0 | 2 |
5km | 4 | 8 | 2 | 3 | 8 | 5 | 6 | 4 | 3 | 3 |
10km | 20 | 26 | 24 | 11 | 28 | 20 | 19 | 19 | 21 | 24 |
20km | 37 | 30 | 26 | 24 | 41 | 25 | 36 | 31 | 31 | 33 |
离入海口处4个距离的平均溶解氧含量(单位:mg/L)
解:
(1)对数据做正态性检验和方差齐性检验
①正态性检验。提出假设:
H0:a km数据服从正态性,a = 1,5,10,20
H1:a km数据不服从正态性,a = 1,5,10,20
源代码及运行结果:(复制到此处,不要截图)
> sea<-data.frame(x<-scan("C:\\Users\\黄培滇\\Desktop\\R语言生物统计学\\chap07\\sea.data"),+ A<-factor(rep(1:4,c(10,10,10,10))))
Read 40 items
> with(sea,tapply(x,A,shapiro.test))
$`1`
Shapiro-Wilk normality test
data: X[[i]]
W = 0.93644, p-value = 0.5141
$`2`
Shapiro-Wilk normality test
data: X[[i]]
W = 0.88391, p-value = 0.1446
$`3`
Shapiro-Wilk normality test
data: X[[i]]
W = 0.92543, p-value = 0.4045
$`4`
Shapiro-Wilk normality test
data: X[[i]]
W = 0.95791, p-value = 0.7618
结论:由计算结果可以得出,数据都服从正态性。
②方差齐性检验。提出假设:
H0:数据服从方差齐性
H1:数据不服从方差齐性
源代码及运行结果:(复制到此处,不要截图)
> bartlett.test(x~A,data = sea)
Bartlett test of homogeneity of variances
data: x by A
Bartlett's K-squared = 17.17, df = 3, p-value =
0.000652
结论:P值小于0.05,拒绝原假设,即数据不服从方差齐性
(2)4个海洋区域溶解氧含量是否有显著差异?(用单因素方差分析还是Kruskal-Wallis检验?)提出假设:
由于数据服从正态性,但不满足方差齐性,因此采用单因素方差分析中的oneway.test()函数
H0:4个海洋区域溶解氧含量无显著差异
H1:4个海洋区域溶解氧含量有显著差异
源代码及运行结果:(复制到此处,不要截图)
> oneway.test(x~A,data = sea)
One-way analysis of means (not assuming equal
variances)
data: x and A
F = 118.54, num df = 3.000, denom df = 18.315,
p-value = 3.503e-12
结论:P值远小于0.01,拒绝原假设,即4个海洋区域溶解氧含量有显著差异。
(3)如果有差异,哪些区域之间有差异?
> tapply(x,A,mean)
1 2 3 4
2.2 4.6 21.2 31.4
> pairwise.t.test(x,A)
Pairwise comparisons using t tests with pooled SD
data: x and A
1 2 3
2 0.17 - -
3 1.8e-12 5.2e-11 -
4 < 2e-16 < 2e-16 1.8e-06
P value adjustment method: holm
由计算结果,得出1区域和2区域之间没有显著性差异与其他区域有显著性差异,而其余区域彼此之间都纯在显著性差异。
思考:
方差分析使用的前提条件有哪三个?
方差齐性
正态性
独立性
设因素A有r个水平,所有样本数据的总数为n,则组间平方和SA的自由度是多少?组内平方和SE的自由度是多少?
组间平方和自由度为r-1,组内平方和自由度为r-n。
R语言中,要给出完整的方差分析表,需要用到哪两个函数?
aov() 与 summary()
方差分析的统计量F=( A )。
A. SA/SE B. MSA/MSE C. MSE/MSA D. SE/SA
所有样本数据与所有样本数据的均数之差的平方和称为___总平方和________。
当数据只满足正态性,但不满足方差齐性时,可用_____oneway.test()____________函数做方差分析。
单因素方差分析时,如果拒绝原假设,想进一步了解到底哪些总体之间的均值有显著性差异,可以做多重T检验,R软件中,用于此检验的函数是_____paiewise.t.test()________。
Kruskal-Wallis秩和检验是用于______数据既不满足正态性要求,又不满足方差齐性要求________情况下的非参数检验。
Kruskal-Wallis秩和检验时,如果拒绝原假设,想进一步了解到底哪些总体之间的有显著性差异,由于此时没有正态性和方差齐性的条件,因此需要做多重Wilcoxon检验,R软件中,用于此检验的函数是____pairwise.wilcox.test()_________。
这篇关于R实验 方差分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!