Wie Levene Testfunktion in R verwenden?

14

Ich bin ein Neuling in Statistik und R und habe Probleme mit der Verwendung der Levene-Funktion (ich möchte die Varianzgleichheit von zwei Stichproben prüfen). In der Dokumentation steht, dass ich Folgendes ausführen soll:

levene.test (y, Gruppe)

Aber ich habe keine Ahnung, was ich als y und Gruppe setzen soll? Ich habe zwei verschiedene Stichproben, von denen ich die Varianzgleichheit prüfen möchte. Sollte ich einen der Werte des Samples als y und den zweiten als Gruppenparameter eingeben?

Irgendwelche Hinweise?

Jakub
quelle

Antworten:

17

Angenommen, in R wird Ihre erste Stichprobe in einem Vektor mit dem Namen sample1und Ihre zweite Stichprobe in einem Vektor mit dem Namen gespeichert sample2.

Sie müssen zuerst Ihre beiden Stichproben in einem einzigen Vektor kombinieren und einen weiteren Vektor erstellen, der die beiden Gruppen definiert:

y <- c(sample1, sample2)

und

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

Jetzt können Sie anrufen

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

BEARBEITEN

Als ich dies in R versuchte, bekam ich die folgende Warnung:

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

Demnach solltest du leveneTeststattdessen einen Blick auf ... werfen.

Ocram
quelle
Vielen Dank! Aber wären Sie so nett und erklären Sie, warum dies so sein sollte? Ich würde es gerne verstehen, damit ich das nächste Mal keine Fragen stellen muss und den anderen helfen kann.
Jakub
@ Jakub: Nun, es geht so, weil es mit dieser Struktur implementiert wurde. In der Hilfe wird angegeben, dass das erste Argument die Antwortvariable sein muss, während das zweite Argument die Gruppenvariable sein muss.
18.
In vielen Fällen scheint R diese Art von Datenformat zu bevorzugen, das oft als "lang" bezeichnet wird. Das Umformungspaket bietet Funktionen, die als Schmelzen und Gießen bezeichnet werden und zum Umformen Ihrer Daten verwendet werden können. Diese sind jedoch komplexer als das, was Sie für einen einfachen Fall mit zwei Variablen benötigen.
Russellpierce
Nur zur Bestätigung, dies würde die Frequenzspektren von Probe 1 und Probe 2 nicht testen, richtig? Beispiel: Probe 1 ist: 1,0,2,1,0 und Probe 2 ist: 1,1,3,0,0. Es würde nicht die Einsen und Nullen von Beispiel 1 sein, um die Verteilung von Beispiel 1 zu erstellen, richtig? Ich hoffe, dass meine Anschlussfrage Sinn macht?
Atticus29
14

Ocrams Antwort enthält alle wichtigen Teile. Sie müssen jedoch nicht das gesamte Rcmdr laden, wenn Sie dies nicht möchten. Die relevante Bibliothek ist "Auto". Aber wie Ocram angibt, ist levene.test veraltet. Beachten Sie, dass es sich bei der Veralterung nicht um eine Änderung der Funktionalität oder des Codes handelt (zum jetzigen Zeitpunkt, 18.09.2011). Es ist einfach eine Änderung des Funktionsnamens. Levene.test und leveneTest funktionieren also genauso. Für die Aufzeichnung dachte ich, ich würde ein Beispiel mit leveneTest und wiederverwendbarem Umformungscode für diesen einfachen Fall bereitstellen:

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

Der einfachste Weg (meiner Meinung nach), die Daten aufzubereiten, ist die Verwendung des reshape2-Pakets:

#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
quelle