R语言进行单因素方差分析

说明

方差分析(analysis of variance,ANOVA),能够找到类别独立变量和连续非独立变量之间的关系,主要用于检测不同的数据集的均值是否相同。如果样本中仅包含了一个变量作为独立变量,我们可以进行单因素方差分析。否则就要实施双因素方差分析。

操作,此处作单因素方差分析

#前齿轮数与油耗的关系
library(stats)
data("mtcars")
boxplot(mtcars$mpg~factor(mtcars$gear),xlab='gear',ylab='mpg')

R语言进行单因素方差分析_第1张图片

#进行单因素方差分析,检测mpg值是否与gear有关
oneway.test(mtcars$mpg~factor(mtcars$gear))

    One-way analysis of means (not assuming equal variances)

data:  mtcars$mpg and factor(mtcars$gear)
F = 11.285, num df = 2.0000, denom df = 9.5083, p-value = 0.00308`
#用aov进行方差分析
mtcars.aov = aov(mtcars$mpg~factor(mtcars$gear))
summary(mtcars.aov)
                    Df Sum Sq Mean Sq F value   Pr(>F)    
factor(mtcars$gear)  2  483.2  241.62    10.9 0.000295 ***
Residuals           29  642.8   22.17                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
aov也可以以表的形式输入摘要信息
model.tables(mtcars.aov,"means")
Tables of means
Grand mean

20.09062 

 factor(mtcars$gear) 
        3     4     5
    16.11 24.53 21.38
rep 15.00 12.00  5.00
#由aov模型,我们可以使用TurkeyHSD进行事后比较检验
mtcars_posthoc = TukeyHSD(mtcars.aov)
mtcars_posthoc
Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = mtcars$mpg ~ factor(mtcars$gear))

$`factor(mtcars$gear)`
         diff        lwr       upr     p adj
4-3  8.426667  3.9234704 12.929863 0.0002088
5-3  5.273333 -0.7309284 11.277595 0.0937176
5-4 -3.153333 -9.3423846  3.035718 0.4295874
plot(mtcars_posthoc)
#均值差异可视化处理

R语言进行单因素方差分析_第2张图片

总结

oneway.test的函数优势在于应用welch修正以处理变量的不均匀性,不过函数返回结果没有aov丰富,也不提供事后检验。两次的p值都很小,拒绝gear不同mpg值相同的原假设。
我们不清楚那两个样本的存在比较大的差异,我们用事后检验,得出4-3差别最大。

你可能感兴趣的:(R语言基础)