单因素方差分析(one-way analysis of variance)【R实现,用例题帮你更好理解】

1, data00403 thorax 是四种昆虫的胸长,采用合适的统计方法,检验不同种类的 胸长有无差异?如果有差异,哪种之间有差异?(说明选用依据)

#看样本量,n1=n2=n3=n4=28

#看方差齐性。各组之间符合方差齐性

#看正态分布。不符合正态分布

#看异常值。不存在异常值

#综合以上结果选择ANOVO检验,过程详细步骤详细如下:

data1 <- read.delim("D:/Datum/生物统计/data/data4/data0403.txt")

data1

     A   B   C   D
1  6.1 6.0 5.7 6.0
2  6.2 5.1 6.1 5.3
3  6.2 6.2 5.3 6.3
4  5.1 6.0 5.8 5.9
5  4.4 4.9 4.7 4.8
6  5.7 5.1 5.8 5.5
7  6.3 6.6 6.4 6.3
8  4.5 4.5 4.0 3.7
9  6.3 6.2 5.9 6.2
10 5.4 5.3 5.0 5.3
11 5.9 5.8 6.3 5.7
12 5.9 5.9 5.5 5.5
13 5.8 5.9 5.4 5.5
14 5.6 6.4 6.4 6.1
15 6.3 6.5 6.1 6.3
16 5.9 6.1 6.1 6.0
17 5.8 6.0 5.9 5.7
18 6.5 6.3 6.5 7.0
19 5.9 5.2 5.7 5.7
20 5.2 5.3 5.4 5.3
21 5.4 5.5 5.2 6.3
22 4.3 4.7 4.5 4.4
23 6.0 5.8 5.7 5.9
24 5.5 6.1 5.5 6.1
25 4.0 4.2 4.3 4.4
26 5.8 5.6 5.6 6.1
27 4.3 4.0 4.4 4.6
28 6.1 6.0 5.6 6.5

g1=stack(data1) #转换多列数据为两列

plot(g1$ind,g1$values) #数据查看

shapiro.test(g1$values)  #正态性检验

#结果:p-value = 2.637e-05,小于0.05,不符合正态分布

fligner.test(g1$values~g1$ind)  #方差齐性检验

#结果:p-value = 0.9351,大于0.05,符合方差齐性

summary(aov(g1$values~g1$ind))

#Df Sum Sq Mean Sq F value Pr(>F)

#g1$ind        3   0.24  0.0814   0.167  0.919

#Residuals   108  52.77  0.4887

经过ANOVA方差分析,发现p=0.919,大于0.05,所以不同种类的胸长无差异

2, data0404 weight 是投喂四种饲料成长的家猪体重,采用合适的统计方法,检验不同的饲料对猪的体重是否有影响?如果有,具体是如何影响的?(说明选用依据)

#看样本量,n1=n2=n3=n4=5

#看方差齐性。符合方差齐性

#看正态分布。符合正态分布

#看异常值。存在异常值

#综合以上结果选择kruskal检验,过程详细步骤详细如下:

library(PMCMRplus)  # install.packages("PMCMRplus")

data2 <- read.delim("D:/Datum/生物统计/data/data4/data0404.txt")

data2

  Diet1 Diet2 Diet3 Diet4
1  60.8  68.7 102.6  87.9
2  57.0  67.7 102.1  84.2
3  65.0  74.0 100.2  83.1
4  58.6  66.3  98.3  85.7
5  61.7  69.8  96.5  90.3

g2=stack(data2) #转换多列数据为两列

plot(g2$values~g2$ind) #数据查看

#可以看出存在异常值

shapiro.test(g2$values)  #正态性检验

#结果:p-value = 0.07015,大于0.05,符合正态分布

fligner.test(g2$values~g2$ind)  #方差齐性检验

#结果:p-value = 0.9755,大于0.05,符合方差齐性

kruskal.test(g2$values~g2$ind) # Kruskal-Wallis test

#经过kruskal方差分析,发现p=0.0004707,小于0.05,所以不同的饲料对猪的体重有影响

plot(kwAllPairsNemenyiTest(g2$values~g2$ind)) #事后检验NemenyiTest:图形展示

summary(kwAllPairsNemenyiTest(g2$values~g2$ind))  #事后检验

#结合上述图片以及summary结果可以看出:

#食用第三种猪饲料的猪体重>(不显著)食用第四种猪饲料的猪体重>(不显著)食用第二种猪饲料的猪体重>(不显著)食用第一种猪饲料的猪体重

#食用第三种猪饲料的猪体重>(显著)食用第二种猪饲料的猪体重

#食用第三种猪饲料的猪体重>(显著)食用第一种猪饲料的猪体重

#食用第四种猪饲料的猪体重>(显著)食用第一种猪饲料的猪体重

3, data0405 wsc 是某灵长类物种栖息地内地衣、植物嫩叶、植物成叶的可溶性 糖的比例,采用合适的统计方法,检验各组比例有无差异?如果有差异,具体 是如何差异的?(说明选用依据)

#看样本量,n1=14,n2=12,n3=13

#看方差齐性。不符合方差齐性

#看正态分布。步符合正态分布

#看异常值。存在异常值

#综合以上结果选择kruskal检验,过程详细步骤详细如下:

data3 <- read.delim("D:/Datum/生物统计/data/data4/data0405.txt")

datat3

   Lichen Young Mature
1    4.33  9.29   4.22
2    9.99  5.35   4.50
3   14.41  6.35   5.20
4   16.65  7.72   6.34
5   13.11  9.92   5.57
6   15.51 12.25   5.53
7   15.20 11.30   6.59
8   11.30  5.62   5.55
9   11.31 10.01   6.00
10   9.52  6.01   6.02
11  13.50  4.20   4.50
12  14.45  9.99   5.29
13  15.00    NA   5.20
14  16.00    NA     NA

g3=stack(data3) #转换多列数据为两列

g4<-subset(g3,values!="NA") #删除NA数据

plot(g4$values~g4$ind) #数据查看

#可以看出存在异常值

shapiro.test(g4$values)  #正态性检验

#结果:p-value = 0.0009496,小于0.05,不符合正态分布

fligner.test(g4$values~g4$ind)  #方差齐性检验

#结果:p-value = 0.00133,小于0.05,不符合方差齐性

kruskal.test(g4$values~g4$ind) # Kruskal-Wallis test

#经过kruskal方差分析,发现p=2.937e-05,小于0.05,所以某灵长类物种栖息地内地衣、植物嫩叶、植物成叶的可溶性糖的比例有差异

plot(kwAllPairsNemenyiTest(g4$values~g4$ind)) #事后检验NemenyiTest:图形展示

summary(kwAllPairsNemenyiTest(g4$values~g4$ind))  #事后检验

#结合上述图片以及summary结果可以看出:

#内地衣可溶性糖的比例>(显著,p<0.05)植物嫩叶可溶性糖的比例

#内地衣可溶性糖的比例>(极显著,p<0.0.001)植物成叶可溶性糖的比例

#植物嫩叶可溶性糖的比例和植物成叶可溶性糖的比例无显著差别

猜你喜欢

转载自blog.csdn.net/m0_61164319/article/details/134404598
今日推荐