Testhypothese in R

Jesse John 21 Juni 2023
  1. t-Test in R
  2. Wilcoxon-Test bei R
  3. Gepaarter t- und Wilcoxon-Test in R
  4. Andere Tests im stats-Paket in R
Testhypothese 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:

  1. x: Ein Zahlenvektor.
  2. mu: Der unbekannte Wert des Mittelwerts oder die unbekannte Differenz der Mittelwerte.
  3. alternativ: Bei einseitigen Tests sollten wir für die Alternativhypothese entweder grösser oder kleiner angeben.
  4. 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:

  1. Formel: Es hat die Form Zahlen_Vektor ~ Zwei-Faktoren-Vektor.
  2. Daten: Dieser Datenrahmen sollte die in Formel erwähnten Variablen enthalten.
  3. var.equal: Bei TRUE wird die Varianz für die gepoolte Stichprobe berechnet. Bei FALSE (Standard) wird die Welch-Näherung verwendet.

Die Ausgabe umfasst Folgendes:

  1. Ein Konfidenzintervall auf dem angegebenen Konfidenzniveau um den Stichprobenmittelwert herum.
  2. Ein p-Wert, der die Wahrscheinlichkeit angibt, dass der wahre Mittelwert der angegebene Wert mu 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.

  1. Es muss beide Proben in einem einzigen numerischen Vektor enthalten.
  2. Die Probe/Gruppe muss mit einem Zwei-Faktoren-Vektor angegeben werden.
  3. Daher enthält jede Zeile des Datenrahmens oder der Matrix die Beobachtung und die Gruppe, zu der sie gehört.
  4. 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.

  1. Für diese Tests verwenden wir das Argument paired = TRUE.
  2. Die Daten müssen in zwei separaten numerischen Vektoren gleicher Länge zu den Argumenten x und y 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.

Autor: Jesse John
Jesse John avatar Jesse John avatar

Jesse is passionate about data analysis and visualization. He uses the R statistical programming language for all aspects of his work.

Verwandter Artikel - R Test