Ich versuche, einen Hypothesentest für die Varianz zweier Populationen zu erstellen. Meine Teststatistik lautet $ F = $$ {\ sigma_b ^ 2} $ / $ {\ sigma_A ^ 2} $. Ich möchte dies als Funktion in R implementieren, also habe ich berechnet: a=function(B,A){ var(B)/var(A) }
Nun möchte ich den p-Wert unter Verwendung dieser Teststatistik in R berechnen. Wie kann ich das tun?
Kommentare
- Wenn Sie wirklich zwei Populationen haben, macht das Testen keinen Sinn. Sie sind entweder gleich oder nicht. OTOH, dies ist kein guter Weg, um die Varianz von zwei Proben zu testen. Verwenden Sie stattdessen den Levene / Brown-Forsythe-Test (siehe: Warum Levene-Test der Gleichheit der Varianzen anstelle des F-Verhältnisses ). Verwenden Sie stattdessen ? LeveneTest im Paket
car
.
Antwort
Da Sie die F-Statistik berechnen, kann die Funktion pf
verwendet werden.
Nehmen wir als Beispiel die folgenden Daten als Beispiel.
set.seed(123) x <- rnorm(50, mean = 0, sd = 2) y <- rnorm(30, mean = 1, sd = 1) f <- var(x)/var(y) # make sure to double for two-sided pf(f, df1=49, df2=29, lower.tail=F)*2 [1] 0.0001897506
Wie Gung bemerkte, habe ich nicht bemerkt, dass Sie versuchen, Hartleys zu machen Fmax-Test. In diesem Fall müssen Sie nicht einmal die F-Statistik oder sogar die Varianzen berechnen, sondern können einfach var.test
verwenden.
var.test(x, y)$p.value [1] 0.0001897506
Wie von gung festgestellt, gibt es im Paket car
den Test von Levene (leveneTest
).