首页 > 其他分享 >R实验 方差分析

R实验 方差分析

时间:2024-05-27 09:03:38浏览次数:18  
标签:差异 value 方差分析 实验 检验 test data 方差齐性

实验目的:

掌握单因素方差分析的思想和方法;

掌握多重均值检验方法;

掌握多个总体的方差齐性检验;

掌握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区域之间没有显著性差异与其他区域有显著性差异,而其余区域彼此之间都纯在显著性差异。

思考:

方差分析使用的前提条件有哪三个?

方差齐性

正态性

独立性

设因素Ar个水平,所有样本数据的总数为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()_________。

标签:差异,value,方差分析,实验,检验,test,data,方差齐性
From: https://blog.csdn.net/Jiangxia13/article/details/139215667

相关文章

  • 实验5
    实验1_1#include<stdio.h>#defineN5voidinput(intx[],intn);voidoutput(intx[],intn);voidfind_min_max(intx[],intn,int*pmin,int*pmax);intmain(){inta[N];intmin,max;printf("录入%d个数据:\n",N);input......
  • 实验5
    task1-1voidinput(intx[],intn);voidoutput(intx[],intn);voidfind_min_max(intx[],intn,int*pmin,int*pmax);intmain(){inta[N];intmin,max;printf("录入%d个数据:\n",N);input(a,N);printf("数据是:\n&......
  • 实验5
    #include<stdio.h>#defineN5voidinput(intx[],intn);voidoutput(intx[],intn);voidfind_min_max(intx[],intn,int*pmin,int*pmax);intmain(){inta[N];intmin,max;printf("录入%d个数据:\n",N);input(a,N);......
  • 实验5
    #include<stdio.h>#defineN5voidinput(intx[],intn);voidoutput(intx[],intn);voidfind_min_max(intx[],intn,int*pmin,int*pmax);intmain(){inta[N];intmin,max;printf("录入%d个数据:\n",N);input(a,N);pr......
  • 实验五
    1.1#include<stdio.h>#defineN5voidinput(intx[],intn);voidoutput(intx[],intn);voidfind_min_max(intx[],intn,int*pmin,int*pmax);intmain(){inta[N];intmin,max;printf("录入%d个数据:\n",N);input(a,......
  • 山东大学软件学院数据库实验1-9(全部)
    目录前言实验代码实验一1-11-2 1-3 1-4 1-5 1-6 实验二2-1 2-22-3 2-42-5 2-62-72-82-92-10实验三 3-13-23-33-43-53-63-73-83-93-10实验四 4-14-24-34-44-54-64-74-84-94-10实验五 5-15-25-35-45-55-65-75-8......
  • 实验五
    `#include<stdio.h>include<stdlib.h>defineN5voidinput(intx[],intn);voidoutput(intx[],intn);voidfind_min_max(intx[],intn,int*pmin,int*pmax);intmain(){inta[N];intmin,max;printf("录入%d个数据:\n",N);input(a......
  • 实验五
    TASK1.1#include<stdio.h>#defineN5voidinput(intx[],intn);voidoutput(intx[],intn);voidfind_min_max(intx[],intn,int*pmin,int*pmax);intmain(){inta[N];intmin,max;printf("录入%d个数据:\n",N);inpu......
  • 简单版基本电路与电子学实验备考(有待补充)
    基本电路与电子学实验备考戴维南定理Step1测等效电阻12元件箱12V电压源(实验台最右侧)与电压表相接测实际输出保证电压源1210mA的电流源(粗调转钮量程20)测电流电压时注意量程短路电流(开关打向左侧)开路电压(右侧两位小数)据此算出等效电阻R0记录数据UocIscR0Step2构建......
  • 实验5
    task1-1:点击查看代码#include<stdio.h>#defineN5voidinput(intx[],intn);voidoutput(intx[],intn);voidfind_min_max(intx[],intn,int*pmin,int*pmax);intmain(){inta[N];intmin,max;printf("录入%d个数据:\n",N);......