R实验 方差分析

2024-05-27 09:28
文章标签 实验 方差分析

本文主要是介绍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区域之间没有显著性差异与其他区域有显著性差异,而其余区域彼此之间都纯在显著性差异。

思考:

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

方差齐性

正态性

独立性

设因素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()_________。

这篇关于R实验 方差分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1007083

相关文章

STM32(十一):ADC数模转换器实验

AD单通道: 1.RCC开启GPIO和ADC时钟。配置ADCCLK分频器。 2.配置GPIO,把GPIO配置成模拟输入的模式。 3.配置多路开关,把左面通道接入到右面规则组列表里。 4.配置ADC转换器, 包括AD转换器和AD数据寄存器。单次转换,连续转换;扫描、非扫描;有几个通道,触发源是什么,数据对齐是左对齐还是右对齐。 5.ADC_CMD 开启ADC。 void RCC_AD

HNU-2023电路与电子学-实验3

写在前面: 一、实验目的 1.了解简易模型机的内部结构和工作原理。 2.分析模型机的功能,设计 8 重 3-1 多路复用器。 3.分析模型机的功能,设计 8 重 2-1 多路复用器。 4.分析模型机的工作原理,设计模型机控制信号产生逻辑。 二、实验内容 1.用 VERILOG 语言设计模型机的 8 重 3-1 多路复用器; 2.用 VERILOG 语言设计模型机的 8 重 2-1 多

R语言统计分析——重复测量方差分析

参考资料:R语言实战【第2版】         所谓重复测量方差分析,即受试者被测量不止一次。本例使用数据集市co2数据集:因变量是二氧化碳吸收量(uptake),自变量是植物类型(Type)和七种水平的二氧化碳浓度(conc)。Type是组间因子,conc是组内因子。Type已经被存储为一个因子变量,还需要将conc转换为因子变量。分析过程如下: # 将conc变量转化为因子变量CO2$c

61.以太网数据回环实验(4)以太网数据收发器发送模块

(1)状态转移图: (2)IP数据包格式: (3)UDP数据包格式: (4)以太网发送模块代码: module udp_tx(input wire gmii_txc ,input wire reset_n ,input wire tx_start_en , //以太网开始发送信

LTspice模拟CCM和DCM模式的BUCK电路实验及参数计算

关于BUCK电路的原理可以参考硬件工程师炼成之路写的《 手撕Buck!Buck公式推导过程》.实验内容是将12V~5V的Buck电路仿真,要求纹波电压小于15mv. CCM和DCM的区别: CCM:在一个开关周期内,电感电流从不会到0. DCM:在开关周期内,电感电流总会到0. CCM模式Buck电路仿真: 在用LTspice模拟CCM电路时,MOS管驱动信号频率为100Khz,负载为10R(可自

HCIA--实验十:路由的递归特性

递归路由的理解 一、实验内容 1.需求/要求: 使用4台路由器,在AR1和AR4上分别配置一个LOOPBACK接口,根据路由的递归特性,写一系列的静态路由实现让1.1.1.1和4.4.4.4的双向通信。 二、实验过程 1.拓扑图: 2.步骤: (下列命令行可以直接复制在ensp) 1.如拓扑图所示,配置各路由器的基本信息: 各接口的ip地址及子网掩码,给AR1和AR4分别配置

OpenGL/GLUT实践:流体模拟——数值解法求解Navier-Stokes方程模拟二维流体(电子科技大学信软图形与动画Ⅱ实验)

源码见GitHub:A-UESTCer-s-Code 文章目录 1 实现效果2 实现过程2.1 流体模拟实现2.1.1 网格结构2.1.2 数据结构2.1.3 程序结构1) 更新速度场2) 更新密度值 2.1.4 实现效果 2.2 颜色设置2.2.1 颜色绘制2.2.2 颜色交互2.2.3 实现效果 2.3 障碍设置2.3.1 障碍定义2.3.2 障碍边界条件判定2.3.3 障碍实现2.3.

pta-2024年秋面向对象程序设计实验一-java

文章申明:作者也为初学者,解答仅供参考,不一定是最优解; 一:7-1 sdut-sel-2 汽车超速罚款(选择结构) 答案: import java.util.Scanner;         public class Main { public static void main(String[] arg){         Scanner sc=new Scanner(System

如何校准实验中振镜频率的漂移

在实验过程中,使用共振扫描振镜(如Cambridge Technology的8kHz振镜)时,频率漂移是一个常见问题,尤其是在温度变化或长期运行的情况下。为了确保实验的准确性和稳定性,我们需要采取有效的校准措施。本文将介绍如何监测、调节和校准振镜频率,以减少漂移对实验结果的影响。 1. 温度管理和稳定性控制 振镜的频率变化与温度密切相关,温度的升高会导致机械结构的变化,进而影响振镜的共

实验C语言“union”的最基础语法

目标 最近在看Rust的“菜鸟教程”,看到 Rust 枚举类 时我发现它所定义的“枚举类”虽然也能像C语言枚举类那样使用,但是多了些功能:对于某个枚举的成员,还可以附带独特的数据,这让我想起了C语言中的union。 而我事实上对union没有使用经验,我自己写程序的时候不用它,看其他的项目的程序时印象里也没见过它。所以我对union的设计意图理解不深(可能只是为了节省内存?)。本篇的目标是对其