¿Cómo utilizar la función de prueba Levene en R?

14

Soy un novato en estadística y R y tengo problemas para usar la función Levene (me gustaría verificar la igualdad de varianza de dos muestras). La documentación dice que debería ejecutar:

levene.test (y, grupo)

¿Pero no tengo idea de lo que debo poner como y y grupo? Tengo dos muestras diferentes de las cuales me gustaría verificar la igualdad de varianza. ¿Debo poner uno de los valores de la muestra como y y el segundo como parámetro de grupo?

¿Alguna pista?

Jakub
fuente

Respuestas:

17

Digamos que, en R, su primera muestra se almacena en un vector llamado sample1 y su segunda muestra se almacena en un vector llamado sample2.

Primero debe combinar sus dos muestras en un solo vector y crear otro vector que defina los dos grupos:

y <- c(sample1, sample2)

y

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

Ahora puedes llamar

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

EDITAR

Al intentar esto en R, recibí la siguiente advertencia:

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

De acuerdo con esto, deberías echar un vistazo en su leveneTestlugar ...

ocram
fuente
¡Gracias! ¿Pero sería tan amable y explicaría por qué debería ser así? Me encantaría entenderlo para que la próxima vez no tenga que hacer preguntas y pueda ayudar a los demás.
Jakub
@Jakub: Bueno, va de esta manera porque se implementó usando esa estructura. La ayuda establece que el primer argumento debe ser la variable de respuesta, mientras que el segundo argumento debe ser la variable de grupo.
ocram
En muchos casos, R parece preferir este tipo de formato de datos, a menudo denominado "largo". El paquete de remodelación proporciona funciones llamadas fusión y conversión que se pueden usar para reformar sus datos, pero son más complejas de lo que necesita para un caso simple de dos variables.
russellpierce
Solo para confirmar, esto no probaría los espectros de frecuencia de la muestra 1 y la muestra 2, ¿correcto? Entonces, por ejemplo, digamos que la muestra 1 es: 1,0,2,1,0 y la muestra 2 es: 1,1,3,0,0. No agruparía los 1s y 0s de la muestra 1 para crear la distribución de la muestra 1, ¿correcto? ¿Espero que mi pregunta de seguimiento tenga sentido?
Atticus29
14

La respuesta de Ocram tiene todas las piezas importantes. Sin embargo, no necesita cargar todos los Rcmdr si no lo desea. La biblioteca relevante es "auto". Pero como indica el ocram, levene.test está en desuso. Tenga en cuenta que la desaprobación no es un cambio de funcionalidad o código (en este momento, 18/09/2011). Simplemente es un cambio en el nombre de la función. Entonces levene.test y leveneTest funcionarán igual. Para el registro, pensé que proporcionaría un ejemplo usando leveneTest y código de remodelación reutilizable para este caso simple:

#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
fuente
4

La forma más fácil (en mi opinión) de preparar los datos es usando el paquete 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
fuente