方差分析

方差分析是20世纪20年代发展起来的一种统计方法, 它由英国统计学家费希尔在进行实验设计时为了解释实验数据首先引入的。从形式上看, 方差分析是为了比较多个总体的均值是否相等, 但本质上是研究变量之间的关系,也就是一个或多个分类自变量对数值型因变量的关系。 下面来研究一下单因素方差分析

数据来源
  • 使用R内置的数据集InsectSprays
研究问题
  • 研究不同种类药剂之间是否存在显著性差异
分析步骤
  1. 调出数据集, 只要在R上直接输入InsectSprays即可, 数据结构如下
count spray
10 A
... ...
  1. 为了后面动手算数据方便, 将数据集导出到csv文件
write.csv(x=InsectSprays, file="InsectSprays.csv")
  1. 根据源数据我们可以做一个箱线图观察数据,从图上可以感觉到不同种类药剂之间的效果存在显著性差异。
df = InsectSprays
boxplot(formula=df$count~df$spray, col='red')
8.png
  1. 下面我们定量这个差异,观察数据发现因素spray有A, B, C, D, E, F 六个水平。每一个水平下有12个观测值, 为了计算方便, 我们分好类, 将几个水平放到几列, 效果如下:


    1.png
  2. 然后提出假设, (H0: µ1= µ2=µ3=µ4=µ5=µ6, H1:µi(i=1, 2, 3, 4, 5, 6)不全相等 )。
  3. 构造统计量F = MSA/MSE 也就是组间均方/组内均方
  4. 我们需要计算F, 如果 F > 某个值, 我们认为存在显著差异。 也就是不接受原假设 。组间误差是抽样误差/随机误差+系统误差
  5. 计算


    2.png
  6. 为了验证我们自己算的对还是错,我们可以用excel里面的数据分析功能验证。 还可以偷懒不去查表我们算的F值大小了。


    4.png
5.png

再点确定就ok了,然后对比excel输出结果可以发现F和计算的一致。


6.png

我们看P值或临界值(excel输出的F crit) 就可以了,如果P值很小,或者F> F crit 也就可以拒绝原假设, 那么P多小算小呢? 一般是0.05, 主要看需求自己定。这里不用想了,P太小了。因此拒接原假设。

  1. 计算R方 R方=组间误差平方和/总误差平方和 = 2668.8/3684 = 0.72
    这表明药剂种类(自变量)对杀死虫子的个数(因变量)的影响效应占总效应的72%, R = 0.85 , 表明自变量和因变量高度相关(|r|>=0.8)。
  2. 如果想知道药剂种类之间俩俩之间的差异到底有多少可以使用多次比较的方法。最后我算出来这样的结果,如下图


    7.png

    结果中不拒绝原假设的意思是两种药剂的效果差不多。不能说有显著性差异。

在R里面怎么做呢?

直接上代码

df = InsectSprays
fit = aov(formula=count ~ spray, data=df)
summary(fit)

最后的结果和我们自己算的也是一样的

你可能感兴趣的:(方差分析)