题
我一直在使用 var.test
和 bartlett.test
检查基本的ANOVA假设,以及同性恋(同质,方差平等)。对于单向方差分析,过程非常简单:
bartlett.test(x ~ g) # where x is numeric, and g is a factor
var.test(x ~ g)
但是,对于2x2桌,即双向方差分析,我想做这样的事情:
bartlett.test(x ~ c(g1, g2)) # or with list; see latter:
var.test(x ~ list(g1, g2))
当然,可以使用图形过程检查方差分析的假设,但是 “算术选项”?这根本可以管理吗?您如何在双向方差分析中测试同质体验?
解决方案
假设检验是用于评估模型假设有效性的错误工具。如果样本量很小,即使差异差异很大,您也无法检测任何方差差异。如果您的样本量很大,您将有能力检测到与均等差异的最琐碎的偏差,因此您几乎总是会拒绝零。仿真研究表明,模型假设的初步测试导致I型误差不可靠。
查看所有单元格上的残差是一个很好的指标,或者如果您的数据正常,则可以将AIC或BIC使用/没有相等方差的AIC或BIC作为选择步骤。
如果您认为存在不平等的差异,请以类似的方式放弃假设:
library(car)
model.lm <- lm(formula=x ~ g1 + g2 + g1*g2,data=dat,na.action=na.omit)
Anova(model.lm,type='II',white.adjust='hc3')
您不会使用强大的方法(hetroscedastic一致的协方差矩阵)释放太多功率,因此,如果有疑问,请进行健全。
其他提示
您可以使用 木板 - 千里测试 方差的同质性。假设您的模型就像
model<-aov(gain~diet*supplement)
fligner.test(gain~diet*supplement)
Fligner-Killeen test of homogeneity of variances
data: gain by diet by supplement
Fligner-Killeen:med chi-squared = 2.0236, df = 2, p-value = 0.3636
你可以用过 bartlett.test (但这更多是对非正常性的检验,而不是方差平等)
bartlett.test(gain~diet*supplement)
Bartlett test of homogeneity of variances
data: gain by diet by supplement
Bartlett's K-squared = 2.2513, df = 2, p-value = 0.3244
而且,您可以执行 Levene test
对于单向和双向方差分析中的平等差异。可以在包装中找到莱文测试的实现 车 (链接固定), S20X 和 法律
levene.test(gain~diet*supplement) # car package version
Levene's Test for Homogeneity of Variance
Df F value Pr(>F)
group 11 1.1034 0.3866
36
为了 bartlett.test
bartlett.test(split(x,list(g1,g2)))
var.test
不适用,因为它仅在有两组时起作用。
不隶属于 StackOverflow