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.