Come usare la funzione test Levene in R?


14

Sono un principiante della statistica e R e ho dei problemi con l'uso della funzione Levene (vorrei verificare l'uguaglianza di varianza di due campioni). La documentazione dice che dovrei eseguire:

levene.test (y, gruppo)

Ma non ho idea di cosa dovrei mettere come y e gruppo? Ho due diversi campioni che vorrei verificare l'uguaglianza della varianza. Dovrei mettere uno dei valori del campione come y e il secondo come parametro di gruppo?

Qualche suggerimento?

Risposte:


17

Diciamo che, in R, il tuo primo campione è memorizzato in un vettore denominato sample1e il tuo secondo campione è memorizzato in un vettore denominato sample2.

Devi prima combinare i tuoi due campioni in un singolo vettore e creare un altro vettore che definisca i due gruppi:

y <- c(sample1, sample2)

e

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

Adesso puoi chiamare

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

MODIFICARE

Quando ho provato questo in R, ho ricevuto il seguente avviso:

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

Secondo questo, dovresti dare un'occhiata leveneTestinvece ...


Grazie! Ma saresti così gentile e spiegheresti perché dovrebbe andare così? Mi piacerebbe capirlo in modo che la prossima volta non debba fare domande e aiutare gli altri.
Jakub,

@Jakub: Bene, va così perché è stato implementato usando quella struttura. La guida afferma che il primo argomento deve essere la variabile di risposta, mentre il secondo argomento deve essere la variabile di gruppo.
Ocram,

In molti casi R sembra preferire questo tipo di formato di dati, spesso indicato come "lungo". Il pacchetto reshape fornisce funzioni chiamate melt e cast che possono essere utilizzate per rimodellare i dati, ma sono più complesse di quelle necessarie per un semplice caso a due variabili.
Russellpierce,

Solo per confermare, questo non testerebbe gli spettri di frequenza del campione 1 e del campione 2, giusto? Quindi, ad esempio, supponiamo che il campione 1 sia: 1,0,2,1,0 e il campione 2 sia: 1,1,3,0,0. Non raccoglierebbe gli 1 e gli 0 del campione 1 per creare la distribuzione del campione 1, giusto? Spero che la mia domanda di follow-up abbia un senso?
Atticus29,

14

La risposta di Ocram ha tutti i pezzi importanti. Tuttavia, non è necessario caricare tutto Rcmdr se non si desidera. La libreria pertinente è "auto". Ma come indica ocram, levene.test è deprecato. Si noti che la deprecazione non è un cambiamento di funzionalità o codice (a questo punto, 18/09/2011). È semplicemente un cambiamento nel nome della funzione. Quindi levene.test e leveneTest funzioneranno allo stesso modo. Per la cronaca, ho pensato di fornire un esempio usando leveneTest e riutilizzabile il codice di rimodellamento per questo semplice caso:

#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

Il modo più semplice (secondo me) di preparare i dati è usare il pacchetto 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)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.