R:lawstat :: levene.test在Fligner Killeen工作时失败,以及car :: leveneTest

时间:2013-08-12 14:25:53

标签: r

我想使用 lawstat 包中的levene.test函数来测试同方差性,因为我喜欢bootstrap选项以及它返回列表而不是{{{}的无法管理输出这一事实1}}。在car::leveneTest的帮助下,很明显默认情况下应从我的数据集中省略NA。下面我提供原始数据。

lawstat::levene.test

当我执行testset.logcount<-c(6.86923171973098, 6.83122969386706, 7.30102999566398,7.54282542695918,6.40823996531185, 6.52891670027766, 6.61278385671974, 6.71933128698373, 6.96567197122011, 6.34242268082221, 6.60205999132796, 6.69897000433602, 6.6232492903979, 6.54157924394658, 6.43136376415899, 6.91381385238372,6.44715803134222, 6.30102999566398, 6.10037054511756, 6.7481880270062,NA, 4.89762709129044,5.26951294421792, 5.12385164096709, 5.11394335230684, 4.43136376415899, 5.73957234445009, 5.83250891270624, 5.3451776165427, 5.77887447200274, 5.38524868240322, 5.75127910398334, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA) testset.treat<-structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("CTL","TRM"), class = "factor") 时,我收到以下错误消息:lawstat::levene.test(y=testset.logcount,group=testset.treat)中的错误(contrasts<-,值= contr.funs [1 + isOF [nn]]):   对比度仅适用于具有2级或更多级别的因素

据我说,testset.treat显然有两个级别。

使用*tmp*leveneTest(y=testset.logcount,group=testset.treat)同时运行时没有任何错误。

我无法找出为什么我在 lawstat :: levene.test 中遇到这个特殊错误,我希望有人可以帮助我。

我在x86_64-w64-mingw32 / x64平台(Windows 7,64位)上运行R 3.0.0。

3 个答案:

答案 0 :(得分:2)

对于记录,此行为是由函数尝试删除NA值中的错误创建的。它试图使用代码执行此操作:

y <- y[!is.na(y)]
group <- group[!is.na(y)]

,如果 y中的NA值可能非常糟糕。在这种特殊情况下,它消灭了第二个因素水平。

一旦报告,这应该是一个简单的解决方法。

答案 1 :(得分:0)

在使用levene.test()之后,我认为问题是缺少值。

test <- cbind(testset.logcount, testset.treat)
test <- test[complete.cases(test),] #removing Nas
levene.test(test[,1], test[,2])


        modified robust Brown-Forsythe Levene-type test based on the absolute
        deviations from the median

data:  test[, 1]
Test Statistic = 0.9072, p-value = 0.3487

这确实符合汽车的levene测试(df = 29),因此它必须自动删除缺失的行

> leveneTest(y=testset.logcount,group=testset.treat)
Levene's Test for Homogeneity of Variance (center = median)
      Df F value Pr(>F)
group  1  0.9072 0.3487
      29     

答案 2 :(得分:0)

我也经历过类似的过程。 目的不是让第二个因素消失,其中'y'是数字向量,'g'是数据的因子。

yg = na.omit(data.frame(y,g))
y = yg[,1]
g = yg[,2]