Valorile p

Testarea ipotezelor în Python

James Chapman

Curriculum Manager, DataCamp

Procesele penale

  • Două stări posibile:
    1. Inculpatul a comis fapta
    2. Inculpatul nu a comis fapta
  • Două verdicte posibile:
    1. Vinovat
    2. Nevinovat
  • Inițial, inculpatul este prezumat nevinovat
  • Acuzarea trebuie să prezinte dovezi „dincolo de orice îndoială rezonabilă" pentru un verdict de vinovăție
Testarea ipotezelor în Python

Vârsta la prima experiență de programare

  • age_first_code_cut clasifică momentul în care utilizatorul Stack Overflow a început să programeze
    • "adult" înseamnă că a început la 14 ani sau mai târziu
    • "child" înseamnă că a început înainte de 14 ani
  • Cercetări anterioare: 35% din dezvoltatorii de software au început programarea ca și copii
  • Există dovezi că o proporție mai mare de oameni de știință ai datelor au început programarea ca și copii?
Testarea ipotezelor în Python

Definiții

O ipoteză este o afirmație despre un parametru de populație necunoscut

Un test de ipoteză este un test între două ipoteze concurente

  • Ipoteza nulă ($H_{0}$) reprezintă ideea existentă

  • Ipoteza alternativă ($H_{A}$) este noua idee „challenger" a cercetătorului

Pentru problema noastră:

  • $H_{0}$: Proporția oamenilor de știință ai datelor care au început programarea ca și copii este de 35%
  • $H_{A}$: Proporția oamenilor de știință ai datelor care au început programarea ca și copii este mai mare de 35%
1 „Naught" este engleza britanică pentru „zero". Din motive istorice, „H-naught" este convenția internațională pentru pronunțarea ipotezei nule.
Testarea ipotezelor în Python

Procese penale vs. teste de ipoteză

  • Fie $H_{A}$, fie $H_{0}$ este adevărată (nu ambele)
  • Inițial, $H_{0}$ este presupusă adevărată
  • Testul se încheie cu „respingem $H_{0}$" sau „nu respingem $H_{0}$"
  • Dacă dovezile din eșantion sunt „semnificative" că $H_{A}$ este adevărată, respingem $H_{0}$, altfel alegem $H_{0}$

Nivelul de semnificație reprezintă „dincolo de orice îndoială rezonabilă" în testarea ipotezelor

Testarea ipotezelor în Python

Teste unilaterale și bilaterale

Grafic de densitate al distribuției normale standard cu cozile stânga și dreapta evidențiate în roșu.

Testele de ipoteză verifică dacă statisticile eșantionului se află în cozile distribuției nule

Test Cozi
alternativa diferită de nulă bilaterală
alternativa mai mare decât nula dreapta
alternativa mai mică decât nula stânga

 

$H_{A}$: Proporția oamenilor de știință ai datelor care au început programarea ca și copii este mai mare de 35%

Acesta este un test unilateral dreapta

Testarea ipotezelor în Python

Valorile p

Valori p: probabilitatea de a obține un rezultat, presupunând că ipoteza nulă este adevărată

  • Valoare p mare → suport mare pentru $H_{0}$
    • Statistica probabil nu se află în coada distribuției nule
  • Valoare p mică → dovadă puternică împotriva $H_{0}$
    • Statistica probabil se află în coada distribuției nule
  • „p" din valoarea p → probabilitate
  • „mic" înseamnă „aproape de zero"
Testarea ipotezelor în Python

Calculul scorului z

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

Calculul valorii p

  • norm.cdf() este CDF-ul normal din scipy.stats.
  • Test unilateral stânga → utilizați norm.cdf().
  • Test unilateral dreapta → utilizați 1 - norm.cdf().

 

from scipy.stats import norm
1 - norm.cdf(z_score, loc=0, scale=1)
3.1471479512323874e-05
Testarea ipotezelor în Python

Să exersăm!

Testarea ipotezelor în Python

Preparing Video For Download...