我一直在使用 var.testbartlett.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 不适用,因为它仅在有两组时起作用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top