R语言——方差分析3

参考资料:R试验设计与数据分析——基于R语言应用

# 生成案例数据
x<-c(25.6,22.2,28.0,29.8,
     24.4,30.0,29.0,27.5,
     25.0,27.7,23.0,32.2,
     28.8,28.0,31.5,25.9,
     20.6,21.2,22.0,21.2)
method<-factor(rep(1:5,each=4))
aov.data<-data.frame(x,method)

3、方差分析的假设条件

        对数据进行方法分析,需要满足三个前提条件:

①正态性:各个水平的观察数据必须服从正态分布

②方差齐性:r个正态总体的方差相等

③随机性:所有数据都相互独立

(1)整体性检验

        正态性假设可以使用w检验或Q-Q图来检验。

        在R中,w检验方法可以通过shapiro.test()函数来完成。

shapiro.test(x[method==1])
shapiro.test(x[method==2])
shapiro.test(x[method==3])
shapiro.test(x[method==4])
shapiro.test(x[method==5])

        Shapiro-Wilk正态检验结果表明,5种方法除杂量数据均是正态分布。

        Q-Q图进行正态性性检验是用数据分布的分位数与所指定分布的分位数之间的关系区间,鉴别样本数据是否近似于正态分布,即看Q-Q图上的点是否近似地在一条直线附近

        R语言可采用car报中的qqPlot()函数进行绘制。

lmodel<-lm(x~method,data=aov.data)
library(car)
qqPlot(lmodel,simulate=TRUE,main="Q-Q plot")

        qqPlot()函数需要lm()函数拟合,在本例中绘制的Q-Q图,数据均落在了95%的置信区间内,说明数据满足正态性假设,与shapiro.test()函数进行w正态性检验结果是一致的。

(2)方差齐性检验

        方差齐性检验就是检验数据再不同水平下方差是否相等。R提供了bartlett.test()函数来做Bartlett检验

bartlett.test(x~method,data=aov.data)

        Bartlett检验表明5中方法除杂量数据的方差没有显著不同,p=0.1309。

        当然,我们还可以用Fligner-Killeen检验(fligner.test()函数)和Brown-Forsyth检验(HH报中的hov()函数)进行检验

# 数据的Fligner-Killeen方差齐性检验
fligner.test(x~method,data=aov.data)
# 数据的Brown-Forsyth方差齐性检验
install.packages("HH")
library(HH)
hov(x~method,data=aov.data)
# 不加载HH包,直接调用hov函数
HH::hov(x~method,data=aov.data)

        需要注意的是,方差齐性检验对离群点非常敏感,可以利用car报中的outlierTest()函数来检测离群点。

# 离群点检验
library(car)
outlierTest(aov(x~method,data=aov.data))

        从结果看,没有证据表明数据中含有离群点。因此,根据正态性检验、方差齐性检验和离群点检验,该数据可以进行方差分析,且结果可信。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值