Efectuarea testelor t

Testarea ipotezelor în Python

James Chapman

Curriculum Manager, DataCamp

Probleme cu două eșantioane

  • Compararea statisticilor eșantionului între grupurile unei variabile
  • converted_comp este o variabilă numerică
  • age_first_code_cut este o variabilă categorială cu niveluri ("child" și "adult")
  • Utilizatorii care au programat prima dată în copilărie sunt mai bine remunerați decât cei care au început ca adulți?
Testarea ipotezelor în Python

Ipoteze

$H_{0}$: Compensația medie (în USD) este aceeași pentru cei care au programat prima dată în copilărie și pentru cei care au programat prima dată ca adulți.

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

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

$H_{A}$: Compensația medie (în USD) este mai mare pentru cei care au programat prima dată în copilărie față de cei care au programat prima dată ca adulți.

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

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

Testarea ipotezelor în Python

Calcularea statisticilor rezumative pe grupuri

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
Testarea ipotezelor în Python

Statistici de test

  • Media eșantionului estimează media populației
  • $\bar{x}$ - o medie a eșantionului
  • $\bar{x}_{child}$ - compensația medie în eșantion pentru programare în copilărie
  • $\bar{x}_{adult}$ - compensația medie în eșantion pentru programare ca adult
  • $\bar{x}_{child} - \bar{x}_{adult}$ - o statistică de test
  • z-score - o statistică de test (standardizată)
Testarea ipotezelor în Python

Standardizarea statisticii de test

$z = \dfrac{\text{statistica eșantionului} - \text{parametrul populației}}{\text{eroarea standard}}$

$t = \dfrac{\text{diferența dintre statisticile eșantionului} - \text{diferența dintre parametrii populației}}{\text{eroarea standard}}$

$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}})}$

Testarea ipotezelor în Python

Eroarea standard

$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$ este abaterea standard a variabilei

$n$ este dimensiunea eșantionului (numărul de observații/rânduri)

Testarea ipotezelor în Python

Presupunând că ipoteza nulă este adevărată

$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}}}}}$

Testarea ipotezelor în Python

Calcule presupunând că ipoteza nulă este adevărată

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
Testarea ipotezelor în Python

Calcularea statisticii de test

$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
Testarea ipotezelor în Python

Să exersăm!

Testarea ipotezelor în Python

Preparing Video For Download...