p-hodnoty

Testování hypotéz v Pythonu

James Chapman

Curriculum Manager, DataCamp

Trestní řízení

  • Dva možné skutečné stavy:
    1. Obžalovaný spáchal trestný čin
    2. Obžalovaný trestný čin nespáchal
  • Dva možné verdikty:
    1. Vinen
    2. Nevinen
  • Na začátku se předpokládá, že obžalovaný je nevinný
  • Obžaloba musí předložit důkazy „nade vši pochybnost“ pro verdikt vinen
Testování hypotéz v Pythonu

Věk první zkušenosti s programováním

  • age_first_code_cut klasifikuje, kdy uživatel Stack Overflow začal programovat
    • "adult" znamená, že začal ve 14 letech nebo později
    • "child" znamená, že začal před 14. rokem
  • Předchozí výzkum: 35 % vývojářů začalo programovat v dětství
  • Existují důkazy, že větší podíl datových vědců začal programovat v dětství?
Testování hypotéz v Pythonu

Definice

Hypotéza je tvrzení o neznámém parametru populace

Testování hypotéz je test dvou konkurenčních hypotéz

  • Nulová hypotéza ($H_{0}$) je stávající tvrzení

  • Alternativní hypotéza ($H_{A}$) je nová „protichůdná“ myšlenka výzkumníka

Pro náš problém:

  • $H_{0}$: Podíl datových vědců, kteří začali programovat v dětství, je 35 %
  • $H_{A}$: Podíl datových vědců, kteří začali programovat v dětství, je vyšší než 35 %
1 „Naught“ je britský anglický výraz pro „nulu“. Z historických důvodů je „H-naught“ mezinárodní konvencí pro výslovnost nulové hypotézy.
Testování hypotéz v Pythonu

Trestní řízení vs. testování hypotéz

  • Platí buď $H_{A}$, nebo $H_{0}$ (ne obě)
  • Na začátku se předpokládá, že platí $H_{0}$
  • Test končí buď „zamítnutím $H_{0}$“, nebo „nezamítnutím $H_{0}$“
  • Pokud jsou důkazy ze vzorku „významné“ pro platnost $H_{A}$, zamítneme $H_{0}$, jinak zvolíme $H_{0}$

Hladina významnosti je „nade vši pochybnost“ pro testování hypotéz

Testování hypotéz v Pythonu

Jednostranné a oboustranné testy

Graf hustoty pdf standardního normálního rozdělení s levým a pravým chvostem zvýrazněnými červeně.

Testy hypotéz ověřují, zda výběrové statistiky leží v chvostech nulového rozdělení

Test Chvosty
alternativa odlišná od nulové oboustranný
alternativa větší než nulová pravostranný
alternativa menší než nulová levostranný

 

$H_{A}$: Podíl datových vědců, kteří začali programovat v dětství, je vyšší než 35 %

Jedná se o pravostranný test

Testování hypotéz v Pythonu

p-hodnoty

p-hodnoty: pravděpodobnost dosažení výsledku za předpokladu platnosti nulové hypotézy

  • Vysoká p-hodnota, silná podpora pro $H_{0}$
    • Statistika pravděpodobně není v chvostu nulového rozdělení
  • Nízká p-hodnota, silný důkaz proti $H_{0}$
    • Statistika pravděpodobně je v chvostu nulového rozdělení
  • „p“ v p-hodnotě → pravděpodobnost
  • „nízká“ znamená „blízko nule“
Testování hypotéz v Pythonu

Výpočet z-skóre

prop_child_samp = (stack_overflow['age_first_code_cut'] == "child").mean()
0.39141972578505085
prop_child_hyp = 0.35
std_error = np.std(first_code_boot_distn, ddof=1)
0.010351057228878566
z_score = (prop_child_samp - prop_child_hyp) / std_error
4.001497129152506
Testování hypotéz v Pythonu

Výpočet p-hodnoty

  • norm.cdf() je normální CDF z scipy.stats.
  • Levostranný test → použijte norm.cdf().
  • Pravostranný test → použijte 1 - norm.cdf().

 

from scipy.stats import norm
1 - norm.cdf(z_score, loc=0, scale=1)
3.1471479512323874e-05
Testování hypotéz v Pythonu

Pojďme si to vyzkoušet!

Testování hypotéz v Pythonu

Preparing Video For Download...