如何在R中使用Levene测试功能?


14

我是统计学和R的新手,使用Levene函数时遇到了麻烦(我想检查两个样本的方差是否相等)。文档说我应该运行:

levene.test(y,组)

但是我不知道我应该作为y和group放置什么?我有两个不同的样本,我想检查方差是否相等。我是否应该将样本值之一作为y,将第二个值作为组参数?

有什么提示吗?

Answers:


17

假设在R中,您的第一个样本存储在名为的向量中,sample1而您的第二个样本存储在名为的向量中sample2

首先,您必须将两个样本合并为一个向量,并创建另一个向量来定义两个组:

y <- c(sample1, sample2)

group <- as.factor(c(rep(1, length(sample1)), rep(2, length(sample2))))

现在,您可以打电话

library(car)
levene.test(y, group)

编辑

在R中尝试此操作时,收到以下警告:

'levene.test' has now been removed. Use 'leveneTest' instead...

据此,您应该看看leveneTest...


谢谢!但是,您会这么仁慈,并解释为什么应该这样吗?我很想了解它,这样下次我就不必再提出问题了,可以帮助其他人。
雅各布(Jakub)

@Jakub:好吧,因为它是使用该结构实现的。帮助指出,第一个参数必须是响应变量,而第二个参数必须是组变量。
ocram 2011年

在许多情况下,R似乎更喜欢这种类型的数据格式,通常称为“长”格式。reshape软件包提供了称为melt和cast的功能,可用于重塑数据,但是它们比简单的两个变量的情况要复杂得多。
russellpierce

只是为了确认,这不会测试样本1和样本2的频谱,对吗?因此,例如,假设样本1为:1,0,2,1,0,样本2为:1,1,3,0,0。不会对样本1的1和0进行分箱以创建样本1的分布,对吗?我希望我的后续问题有意义吗?
Atticus

14

欧克拉姆的答案包含所有重要方面。但是,如果您不想加载所有的Rcmdr。相关的图书馆是“汽车”。但正如ocram所指出的那样,levene.test已被弃用。请注意,弃用并不是功能或代码的更改(此时,2011年9月18日)。这只是函数名称的更改。因此,levene.test和leveneTest将工作相同。为了记录,我想针对这个简单案例提供一个使用leveneTest和可重用的重塑代码的示例:

#Creating example code
sample1 <- rnorm(20)
sample2 <- rnorm(20)

#General code to reshape two vectors into a long data.frame
twoVarWideToLong <- function(sample1,sample2) {
    res <- data.frame(
        GroupID=as.factor(c(rep(1, length(sample1)), rep(2, length(sample2)))),
        DV=c(sample1, sample2)
    )   
}   

#Reshaping the example data
long.data <- twoVarWideToLong(sample1,sample2)

#There are many different calls here that will work... but here is an example
leveneTest(DV~GroupID,long.data)

4

(我认为)准备数据的最简单方法是使用reshape2包:

#Load packages
library(reshape2)
library(car)

#Creating example data
sample1 <- rnorm(20)
sample2 <- rnorm(20)

#Combine data
sample <- as.data.frame(cbind(sample1, sample2))

#Melt data
dataset <- melt(sample)

#Compute test
leveneTest(value ~ variable, dataset)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.