r语言中平方怎么表示_R语言中的方差分析方法汇总

时间:2024-10-10 17:11:41

方差分析,是统计中的基础分析方法,也是我们在分析数据时经常使用的方法。下面我总结一下R语言如何对常用的方差分析进行操作。

1. 方差分析的假定

上面这个思维导图,也可以看出,方差分析有三大假定:正态,独立和齐次,如果不满足,可以使用广义线性模型或者混合线性模型,或者广义线性混合模型去分析。

「本次我们的主题有:」

2. 数据来源

这里,我们使用的数据来源于R包agridat,它是讲农业相关的论文,书籍中相关的数据收集在了一起,更加符合我们的背景。

包的下载地址:/web/packages/agridat/

「包的介绍」

「agridat: Agricultural Datasets」 Datasets from books, papers, and websites related to agriculture. Example graphics and analyses are included. Data come from small-plot trials, multi-environment trials, uniformity trials, yield monitors, and more.

「包的安装方式:」

("agridat")

3. 单因素方差分析

比如一个处理有A,B,C三个水平,观测值y,想看一下这个处理是否达到显著性水平,这就可以用到方差分析了。

「数据描述:」

Corn yield and nitrogen fertilizer treatment with field characteristics for the Las Rosas farm, Rio Cuarto, Cordoba, Argentina.

data()dat 

「数据结构:」

> str(dat)'': 3443 obs. of  9 variables: $ year : int  1999 1999 1999 1999 1999 1999 1999 1999 1999 1999 ... $ lat  : num  -33.1 -33.1 -33.1 -33.1 -33.1 ... $ long : num  -63.8 -63.8 -63.8 -63.8 -63.8 ... $ yield: num  72.1 73.8 77.2 76.3 75.5 ... $ nitro: num  132 132 132 132 132 ... $ topo : Factor w/ 4 levels "E","HT","LO",..: 4 4 4 4 4 4 4 4 4 4 ... $ bv   : num  163 170 168 177 171 ... $ rep  : Factor w/ 3 levels "R1","R2","R3": 1 1 1 1 1 1 1 1 1 1 ... $ nf   : Factor w/ 6 levels "N0","N1","N2",..: 6 6 6 6 6 6 6 6 6 6 ...

这里数据有很多列,但是我们要演示单因素方差分析,这里的因素为nf,自变量(Y变量)是yield,想要看一下nf的不同水平是否达到显著性差异。

「建模:」 Y变量:yield 因子:nf

「R中的建模代码:」

 m1 = aov(yield ~ nf, data=dat)
  • m1为模型保存的名称
  • aov为R中的方差分析代码
  • yield为数据中的Y变量,这里是yield
  • ~,波浪号前面为Y变量,后面为X变量
  • nf为分析的因子变量
  • dat为数据

「结果:」

> m1 = aov(yield ~ nf, data=dat)> summary(m1)              Df  Sum Sq Mean Sq F value   Pr(>F)    nf             5   23987    4797    12.4 6.08e-12 ***Residuals   3437 1330110     387                     ---Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

结果可以看出,nf之间达到极显著水平,可以进行多重比较。

「方差分析的显著性和多重比较有何关系???」

方差分析,一般会得到显著性(即P值小于0.05,说明显著,小于0.01,说明极显著,大于0.05,说明不显著),显著的意思是因素之间至少有一对水平达到显著性差异,具体是那一对呢?有几对呢?这就需要用到多重比较。所以,多重比较是在方差分析达到显著性之后进行的,只有显著了(P值小于0.05)才有能进行多重比较。多重比较的方法有很多,比如LSD,Tukey,Bonferroni,Holm等等,我们后面系统的介绍。

4. 单因素随机区组

这里区组的设置,可以控制一些环境误差。

「数据描述:」

Switchback trial in dairy with three treatments

data()dat 

「数据结构:」

> str(dat)'': 36 obs. of  5 variables: $ cow   : Factor w/ 12 levels "C1","C10","C11",..: 1 5 6 7 8 9 10 11 12 2 ... $ trt   : Factor w/ 3 levels "T1","T2","T3": 1 2 3 1 2 3 1 2 3 1 ... $ period: Factor w/ 3 levels "P1","P2","P3": 1 1 1 1 1 1 1 1 1 1 ... $ yield : num  34.6 22.8 32.9 48.9 21.8 25.4 30.4 35.2 30.8 38.7 ... $ block : Factor w/ 3 levels "B1","B2