Testhypothese in R
-
t
-Test in R - Wilcoxon-Test bei R
-
Gepaarter
t
- und Wilcoxon-Test in R -
Andere Tests im
stats
-Paket in R
R bietet viele Funktionen zur Durchführung von Hypothesentests.
Dieser Artikel stellt zwei Funktionen vor, die uns bei der Durchführung der t
- und Wilcoxon-Tests helfen. Wir werden auch sehen, wie Sie viele andere in R integrierte Tests entdecken können.
t
-Test in R
Die Funktion t.test()
wird für den t
-Test des Schülers verwendet. Dieselbe Funktion kann für Tests mit einer Stichprobe und zwei Stichproben sowie für zweiseitige und einseitige Tests verwendet werden.
Die Hauptargumente sind:
x
: Ein Zahlenvektor.mu
: Der unbekannte Wert des Mittelwerts oder die unbekannte Differenz der Mittelwerte.alternativ
: Bei einseitigen Tests sollten wir für die Alternativhypothese entwedergrösser
oderkleiner
angeben.conf.level
: Das Konfidenzniveau des Intervalls. Standardmäßig wird ein Wert von 0,95 verwendet.
Für Tests mit zwei Stichproben verwenden wir auch Folgendes:
Formel
: Es hat die FormZahlen_Vektor ~ Zwei-Faktoren-Vektor
.Daten
: Dieser Datenrahmen sollte die inFormel
erwähnten Variablen enthalten.var.equal
: BeiTRUE
wird die Varianz für die gepoolte Stichprobe berechnet. BeiFALSE
(Standard) wird die Welch-Näherung verwendet.
Die Ausgabe umfasst Folgendes:
- Ein Konfidenzintervall auf dem angegebenen Konfidenzniveau um den Stichprobenmittelwert herum.
- Ein
p-Wert
, der die Wahrscheinlichkeit angibt, dass der wahre Mittelwert der angegebene Wertmu
ist, wenn der Stichprobenmittelwert gegeben ist.
Zweiseitiger t
-Test bei einer Stichprobe in R
Wir führen nun zweiseitige t
-Tests bei einer Stichprobe an Stichprobendaten durch und sehen uns die Ausgabe an.
Beispielcode:
# Data
# Population Mean = 8; Population SD = 3.
set.seed(3232)
one = rnorm(232,8,3)
# One-sample two-tailed t tests.
# mu is the correct value.
t.test(one, mu = 8)
# mu is some desired value.
# Let us check if mu is 10
t.test(one, mu = 10)
# Change the confidence level.
t.test(one, mu = 10, conf.level = 0.99)
Ausgang:
> # One-sample two-tailed t tests.
> # mu is the correct value.
> t.test(one, mu = 8)
One Sample t-test
data: one
t = 0.59131, df = 231, p-value = 0.5549
alternative hypothesis: true mean is not equal to 8
95 percent confidence interval:
7.741578 8.480045
sample estimates:
mean of x
8.110811
> # mu is some desired value.
> # Let us check if mu is 10
> t.test(one, mu = 10)
One Sample t-test
data: one
t = -10.081, df = 231, p-value < 2.2e-16
alternative hypothesis: true mean is not equal to 10
95 percent confidence interval:
7.741578 8.480045
sample estimates:
mean of x
8.110811
Als wir die Hypothese testeten, dass mu
gleich 8 ist, erhielten wir im ersten Fall einen sehr grossen p-Wert
. Wir können die Nullhypothese nicht ablehnen.
Das Konfidenzintervall für den Stichprobenmittelwert enthält den Wert mu
.
Beim zweiten Test deutet der kleine p-Wert
darauf hin, dass die Wahrscheinlichkeit, dass mu
gleich 10 ist, extrem gering ist. Der dritte Fall veranschaulicht die Syntax zum Ändern des Konfidenzniveaus.
One-Tailed t
-Test bei einer Stichprobe in R
Für einen einseitigen Test wird das Argument alternativ
verwendet. Dies ist die Alternativhypothese.
Beispielcode:
# One-sample, one-tailed t test.
t.test(one, mu = 10, alternative = "less", conf.level = 0.99)
# Change mu
t.test(one, mu = 8.3, alternative = "less", conf.level = 0.99)
Ausgang:
> # One-sample, one-tailed t test.
> t.test(one, mu = 10, alternative = "less", conf.level = 0.99)
One Sample t-test
data: one
t = -10.081, df = 231, p-value < 2.2e-16
alternative hypothesis: true mean is less than 10
99 percent confidence interval:
-Inf 8.549816
sample estimates:
mean of x
8.110811
> # Change mu
> t.test(one, mu = 8.3, alternative = "less", conf.level = 0.99)
One Sample t-test
data: one
t = -1.0095, df = 231, p-value = 0.1569
alternative hypothesis: true mean is less than 8.3
99 percent confidence interval:
-Inf 8.549816
sample estimates:
mean of x
8.110811
Zuerst haben wir die Hypothese getestet, dass mu
10 oder mehr ist und einen niedrigen p-Wert
erhalten.
Wir haben die Hypothese getestet, dass mu
im zweiten Fall 8,3 oder mehr beträgt. Jetzt war der p-Wert
höher.
t
-Test bei zwei Stichproben in R
Für den t
-Test mit zwei Stichproben müssen die Daten in Form eines Datenrahmens oder einer Matrix vorliegen.
- Es muss beide Proben in einem einzigen numerischen Vektor enthalten.
- Die Probe/Gruppe muss mit einem Zwei-Faktoren-Vektor angegeben werden.
- Daher enthält jede Zeile des Datenrahmens oder der Matrix die Beobachtung und die Gruppe, zu der sie gehört.
- Je nachdem, welcher Faktor der erste und der zweite ist, müssen wir die Differenz des ersten Mittelwerts minus dem zweiten Mittelwert für das Argument
mu
berechnen. Dies ist sehr wichtig.
Wir werden zunächst die Hypothese testen, dass zwei Stichproben denselben Mittelwert haben. Der zweite Test prüft, ob sich die Mittelwerte um mu
unterscheiden.
Beispielcode:
# Create vectors and data frame.
set.seed(6565)
two_a = rnorm(75, 8, 3.5)
set.seed(9898)
two_b = rnorm(65, 8.5, 3)
two = c(two_a, two_b)
ftr = c(rep("A",75), rep("B",65))
dtf = data.frame(DV = two, FV = ftr)
# Two-sample t test for no difference in means.
t.test(formula=DV~FV, data=dtf)
# Two-sample t test for a difference of mu between the means.
t.test(formula=DV~FV, data=dtf, mu=-1.5)
# Two-sample t test with pooled variance at 90 percent confidence interval.
t.test(formula=DV~FV, data=dtf, var.equal=TRUE, conf.level=0.9)
Ausgang:
> # Two-sample t test for no difference in means.
> t.test(formula=DV~FV, data=dtf)
Welch Two Sample t-test
data: DV by FV
t = -2.2723, df = 137.16, p-value = 0.02462
alternative hypothesis: true difference in means between group A and group B is not equal to 0
95 percent confidence interval:
-2.3975526 -0.1663727
sample estimates:
mean in group A mean in group B
7.815221 9.097184
> # Two-sample t test for a difference of mu between the means.
> t.test(formula=DV~FV, data=dtf, mu=-1.5)
Welch Two Sample t-test
data: DV by FV
t = 0.38648, df = 137.16, p-value = 0.6997
alternative hypothesis: true difference in means between group A and group B is not equal to -1.5
95 percent confidence interval:
-2.3975526 -0.1663727
sample estimates:
mean in group A mean in group B
7.815221 9.097184
Zuerst haben wir den standardmäßigen t
-Test bei zwei Stichproben, den Welch-Test, durchgeführt und die Nullhypothese getestet, dass die Differenz der Mittelwerte 0 ist. Der p-Wert
beträgt etwa 0,02.
Zweitens haben wir getestet, ob die Differenz der Mittelwerte -1,5 beträgt.
Der dritte Fall veranschaulicht die Syntax für den t
-Test unter der Annahme, dass die beiden Stichproben die gleiche Varianz haben.
Wilcoxon-Test bei R
Die Syntax für den Wilcoxon-Test ist ähnlich.
Zweiseitiger Wilcoxon-Test bei einer Stichprobe in R
Das Argument mu
ist der Median gemäss der Nullhypothese, die wir testen.
Beispielcode:
# Wilcoxon test.
# One-sample two-tailed test.
wilcox.test(one, mu=8)
# Try a different mu.
wilcox.test(one, mu=9, )
Ausgang:
> wilcox.test(one, mu=8)
Wilcoxon signed rank test with continuity correction
data: one
V = 13992, p-value = 0.6408
alternative hypothesis: true location is not equal to 8
> # Try a different mu.
> wilcox.test(one, mu=9, )
Wilcoxon signed rank test with continuity correction
data: one
V = 8953, p-value = 8.341e-06
alternative hypothesis: true location is not equal to 9
Im ersten Fall unterstützt die Stichprobe die Nullhypothese, dass der Median 8 ist.
Im zweiten Fall erhalten wir einen sehr kleinen p-Wert
.
Zwei-Stichproben-Wilcoxon-Test in R
Dies wird auch als Mann-Whitney-Test bezeichnet.
Beispielcode:
# Test whether two locations differ by mu.
wilcox.test(formula=DV~FV, data=dtf, mu=-1.5)
wilcox.test(formula=DV~FV, data=dtf)
Ausgang:
> # Test whether two two locations differ by mu.
> wilcox.test(formula=DV~FV, data=dtf, mu=-1.5)
Wilcoxon rank sum test with continuity correction
data: DV by FV
W = 2530, p-value = 0.7007
alternative hypothesis: true location shift is not equal to -1.5
> wilcox.test(formula=DV~FV, data=dtf)
Wilcoxon rank sum test with continuity correction
data: DV by FV
W = 1888, p-value = 0.0218
alternative hypothesis: true location shift is not equal to 0
Im ersten Fall haben wir die Hypothese getestet, dass sich die Lage der beiden Proben um -1,5 unterscheidet. Der grosse p-Wert
stützt die Nullhypothese.
Wir haben die Hypothese getestet, dass die beiden Proben im zweiten Fall denselben Ort haben.
Gepaarter t
- und Wilcoxon-Test in R
Wenn Daten gepaart werden, gibt es zwei Beobachtungen pro Einheit; Wir sollten die gepaarte Version dieser Tests verwenden, um die Hypothese zu testen, dass es keinen Unterschied oder einen bestimmten Unterschied zwischen den gepaarten Beobachtungen der Stichprobe gibt.
- Für diese Tests verwenden wir das Argument
paired = TRUE
. - Die Daten müssen in zwei separaten numerischen Vektoren gleicher Länge zu den Argumenten
x
undy
angegeben werden.
Beispielcode:
# Data
set.seed(4455)
m = rnorm(92, 15, 3)
set.seed(7788)
n = rnorm(92, 14, 2.5)
# Paired t test. Testing for NO DIFFERENCE.
t.test(x=m, y=n, paired = TRUE)
# Paired Wilcoxon test.
wilcox.test(x=m, y=n, paired = TRUE, mu=1)
Ausgang:
> # Paired t test. Testing for NO DIFFERENCE.
> t.test(x=m, y=n, paired = TRUE)
Paired t-test
data: m and n
t = 2.5187, df = 91, p-value = 0.01353
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
0.1962145 1.6605854
sample estimates:
mean of the differences
0.9283999
> # Paired Wilcoxon test.
> wilcox.test(x=m, y=n, paired = TRUE, mu=1)
Wilcoxon signed rank test with continuity correction
data: m and n
V = 1930, p-value = 0.4169
alternative hypothesis: true location shift is not equal to 1
Im Beispiel des gepaarten t
-Tests kann die Nullhypothese, dass die Differenz 0 ist, durch diese Stichprobe nicht gestützt werden.
Im gepaarten Wilcoxon-Test haben wir die Hypothese getestet, dass die Differenz 1 ist. Wir finden den p-Wert
hoch.
Andere Tests im stats
-Paket in R
Die Standardinstallation von R enthält das Paket stats
. Dieses Paket bietet viele weitere Funktionen zum Testen von Hypothesen über Stichprobenstatistiken.
Führen Sie den folgenden Code aus, um eine Liste aller Funktionen im Paket zu erhalten.
Beispielcode:
library(help = "stats")
R bietet Dokumentation und Beispiele für jede Testfunktion, auf die über die integrierte Hilfe zugegriffen werden kann.