Como usar a função de teste Levene no R?

14

Sou novato em estatística e R e tenho problemas com o uso da função Levene (gostaria de verificar a igualdade de variância de duas amostras). A documentação diz que eu devo executar:

levene.test (y, grupo)

Mas não tenho ideia do que devo colocar como y e grupo? Eu tenho duas amostras diferentes e gostaria de verificar a igualdade de variância. Devo colocar um dos valores da amostra como ye o segundo como parâmetro de grupo?

Alguma dica?

Jakub
fonte

Respostas:

17

Digamos que, em R, sua primeira amostra seja armazenada em um vetor denominado sample1e sua segunda amostra seja armazenada em um vetor denominado sample2.

Você primeiro precisa combinar suas duas amostras em um único vetor e criar outro vetor definindo os dois grupos:

y <- c(sample1, sample2)

e

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

Agora você pode ligar

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

EDITAR

Ao tentar isso em R, recebi o seguinte aviso:

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

De acordo com isso, você deve dar uma olhada leveneTest...

ocram
fonte
Obrigado! Mas você seria tão gentil e explicaria por que deveria ser assim? Eu adoraria entender isso para que da próxima vez não precise fazer perguntas e possa ajudar os outros.
Jakub
@ Jakub: Bem, é assim que foi implementado usando essa estrutura. A ajuda afirma que o primeiro argumento deve ser a variável de resposta, enquanto o segundo argumento deve ser a variável de grupo.
Ocram
Em muitos casos, R parece preferir esse tipo de formato de dados, geralmente chamado de "longo". O pacote remodelar fornece funções chamadas de fusão e conversão que podem ser usadas para remodelar seus dados, mas são mais complexas do que o necessário para um caso simples de duas variáveis.
russellpierce
Só para confirmar, isso não testaria os espectros de frequência da amostra 1 e 2, correto? Assim, por exemplo, digamos que a amostra 1 seja: 1,0,2,1,0 e a amostra 2 seja: 1,1,3,0,0. Não classificaria os 1s e 0s da amostra 1 para criar a distribuição da amostra 1, correto? Espero que minha pergunta de acompanhamento faça sentido?
Atticus29
14

A resposta de Ocram tem todas as peças importantes. No entanto, você não precisa carregar todo o Rcmdr se não quiser. A biblioteca relevante é "carro". Mas, como o ocram indica, o levene.test está obsoleto. Observe que a descontinuação não é uma alteração de funcionalidade ou código (neste momento, 18/09/2011). Simplesmente é uma mudança no nome da função. Portanto, levene.test e leveneTest funcionarão da mesma maneira. Para o registro, pensei em fornecer um exemplo usando leveneTest e código de remodelagem reutilizável para este caso simples:

#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)
russellpierce
fonte
4

A maneira mais fácil (na minha opinião) de preparar os dados é usando o pacote 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)
Jot eN
fonte