t-Tests durchführen

Hypothesentests in Python

James Chapman

Curriculum Manager, DataCamp

Zwei-Stichproben-Probleme

  • Stichproben-Statistiken nach Gruppen einer Variable vergleichen
  • converted_comp ist numerisch
  • age_first_code_cut ist kategorial mit Stufen ("child" und "adult")
  • Werden Nutzer, die als Kind mit dem Programmieren anfingen, höher vergütet als jene, die als Erwachsene starteten?
Hypothesentests in Python

Hypothesen

$H_{0}$: Die mittlere Vergütung (USD) ist für Erst-Coder als Kind und als Erwachsene gleich.

$H_{0}$: $\mu_{child} = \mu_{adult}$

$H_{0}$: $\mu_{child} - \mu_{adult} = 0$

$H_{A}$: Die mittlere Vergütung (USD) ist für Erst-Coder als Kind höher als für Erst-Coder als Erwachsene.

$H_{A}$: $\mu_{child} > \mu_{adult}$

$H_{A}$: $\mu_{child} - \mu_{adult} > 0$

Hypothesentests in Python

Gruppenweise Kennzahlen berechnen

stack_overflow.groupby('age_first_code_cut')['converted_comp'].mean()
age_first_code_cut
adult    111313.311047
child    132419.570621
Name: converted_comp, dtype: float64
Hypothesentests in Python

Teststatistiken

  • Stichprobenmittel schätzt den Populationsmittelwert
  • $\bar{x}$ – ein Stichprobenmittel
  • $\bar{x}_{child}$ – mittlere Vergütung für zuerst als Kind
  • $\bar{x}_{adult}$ – mittlere Vergütung für zuerst als Erwachsene:r
  • $\bar{x}_{child} - \bar{x}_{adult}$ – eine Teststatistik
  • z-Wert – eine (standardisierte) Teststatistik
Hypothesentests in Python

Teststatistik standardisieren

$z = \dfrac{\text{Stichprobenstatistik} - \text{Populationsparameter}}{\text{Standardfehler}}$

$t = \dfrac{\text{Differenz der Stichprobenstatistiken} - \text{Differenz der Populationsparameter}}{\text{Standardfehler}}$

$t = \dfrac{(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}}) - (\mu_{\text{child}} - \mu_{\text{adult}})}{SE(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}})}$

Hypothesentests in Python

Standardfehler

$SE(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}}) \approx \sqrt{\dfrac{s_{\text{child}}^2}{n_{\text{child}}} + \dfrac{s_{\text{adult}}^2}{n_{\text{adult}}}}$

$s$ ist die Standardabweichung der Variable

$n$ ist der Stichprobenumfang (Anzahl Beobachtungen/Zeilen in der Stichprobe)

Hypothesentests in Python

Unter der Nullhypothese

$t = \dfrac{(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}}) - (\mu_{\text{child}} - \mu_{\text{adult}})}{SE(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}})}$

$H_{0}$: $\mu_{\text{child}} - \mu_{\text{adult}} = 0$    $\rightarrow$     $t = \dfrac{(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}}) }{SE(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}})}$

$t = \dfrac{(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}})}{\sqrt{\dfrac{s_{\text{child}}^2}{n_{\text{child}}} + \dfrac{s_{\text{adult}}^2}{n_{\text{adult}}}}}$

Hypothesentests in Python

Rechnungen unter der Nullhypothese

xbar = stack_overflow.groupby('age_first_code_cut')['converted_comp'].mean()
adult    111313.311047
child    132419.570621
Name: converted_comp, dtype: float64 age_first_code_cut
s = stack_overflow.groupby('age_first_code_cut')['converted_comp'].std()
adult    271546.521729
child    255585.240115
Name: converted_comp, dtype: float64 age_first_code_cut
n = stack_overflow.groupby('age_first_code_cut')['converted_comp'].count()
adult    1376
child     885
Name: converted_comp, dtype: int64
Hypothesentests in Python

Teststatistik berechnen

$t = \dfrac{(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}})}{\sqrt{\dfrac{s_{\text{child}}^2}{n_{\text{child}}} + \dfrac{s_{\text{adult}}^2}{n_{\text{adult}}}}}$

import numpy as np
numerator = xbar_child - xbar_adult
denominator = np.sqrt(s_child ** 2 / n_child + s_adult ** 2 / n_adult)
t_stat = numerator / denominator
1.8699313316221844
Hypothesentests in Python

Lass uns üben!

Hypothesentests in Python

Preparing Video For Download...