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