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

机器算法验证 r 方差 levenes-测试
2022-01-22 19:29:23

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

levene.test(y,组)

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

有什么提示吗?

4个回答

假设在 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......

奥克拉姆的答案包含所有重要部分。但是,如果您不想加载所有 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)

准备数据的最简单方法(在我看来)是使用 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)

我这样使用它:

library(ggplot2)
library(agricolae)
library(multcomp)
library(car)
library(asbio)
library(lmPerm)
library(NSM3)
library(nlme)
library(mice)
library(agridat)

yan.winterwheat

leveneTest(yield ~ gen, data=yan.winterwheat) 
#check the equality of variance of two samples

对不起这么多图书馆:) 你可以用这套 Greez JC 做很多事情