R笔记:方差齐性检验
正如我们在<<正态分布与方差齐性的检验方法与SPSS操作>>一文中的介绍,方差齐性检验有F检验、Bartlett χ2检验、Levene检验、残差图。F检验和Bartlett χ2检验要求数据资料具有正态性,而且F检验只能检验两个总体方差是否齐同,Levence检验所分析资料可不具正态性,结果更为稳健也可以检验多个总体的方差齐性。示例依旧采用<<完全随机资料设计的方差分析>>的数据,演示方差齐性检验的Levene检验和Bartlett χ2以及F检验。
SPSS数据载入清单:
library(foreign) #载入foreign程序包
varh<-read.spss(file="D:/Temp/ANOVA.sav",to.data.frame = TRUE) #新建对象varh,赋值为SPSS文件ANOVA的数据。命令中去掉“file=”结果是一样的
或leveneTest(y, group, center=median, ...),Computes Levene's test for homogeneity of variance across groups.
library(car) #调用程序包car
library(carData) #载入程序包carData
leveneTest(LDL_C~Group,data=varh) #levene方差齐性检验,模型表达形式,默认以中位值进行检测
leveneTest(varh$LDL_C,varh$Group,center=mean) #leven方差齐性检验,变量表达形式,以均值进行检测
【2】Bartlett χ2检验。
bartlett.test {stats}:bartlett.test(x,g,...)或者bartlett.test(formula,data, subset,na.action,...),Performs Bartlett's test of the null that the variances in each of the groups (samples) are the same.
ols_test_bartlett {olsrr}:ols_test_bartlett(data, ..., group_var = NULL)
,Test if k samples are from populations with equal variances.
bartlett.test {stats}的命令用法跟leveneTest {car}基本一样,有模型表达格式和变量表达格式,命令清单如下:
bartlett.test(varh$LDL_C,varh$Group)
bartlett.test(LDL_C~Group,data=varh)
ols_test_bartlett(varh,LDL_C,group_var=Group)
olsrr程序包中除了bartlett.test 可以进行方差齐性的检验,程序包中的ols_test_f 、ols_test_breusch_pagan、ols_test_score函数也可以进行方差齐性的检验。
var.test {stats}:var.test(x, y, ratio = 1,alternative = c("two.sided", "less", "greater"), conf.level = 0.95, ...)或者var.test(formula, data, subset, na.action, ...),Performs an F test to compare the variances of two samples from normal populations.
var.test(varh[1:30,2],varh[31:60,2]) #使用var.test函数进行方差齐性的F检验。F检验只能检测两个总体间的方差齐性,本例假设结果只有placebo组(数据1:30行)和NG2.4g组(数据31:60行)两组
var.test的另外一种格式是:
varh2<-varh[1:60,] #新建对象varh2,赋值为数据框varh的前60行。此命令仅生成含有2个组的演示数据,因为F检验只能检测两个总体间的方差齐性
var.test(LDL_C~Group,data=varh2) #使用var.test函数进行方差齐性的F检验
END