Wartości p

Testowanie hipotez w Pythonie

James Chapman

Curriculum Manager, DataCamp

Procesy karne

  • Dwa możliwe stany faktyczne:
    1. Oskarżony popełnił przestępstwo
    2. Oskarżony nie popełnił przestępstwa
  • Dwa możliwe wyroki:
    1. Winny
    2. Niewinny
  • Na początku zakłada się, że oskarżony jest niewinny
  • Oskarżyciel musi przedstawić dowody „ponad wszelką wątpliwość", aby uzyskać wyrok skazujący
Testowanie hipotez w Pythonie

Wiek pierwszego doświadczenia z programowaniem

  • age_first_code_cut klasyfikuje, kiedy użytkownik Stack Overflow zaczął programować
    • "adult" oznacza rozpoczęcie w wieku 14 lat lub później
    • "child" oznacza rozpoczęcie przed 14. rokiem życia
  • Wcześniejsze badania: 35% programistów zaczęło programować jako dzieci
  • Czy istnieją dowody na wyższy odsetek data scientistów, którzy zaczęli programować jako dzieci?
Testowanie hipotez w Pythonie

Definicje

Hipoteza to twierdzenie o nieznanym parametrze populacji

Test hipotez to test dwóch konkurujących hipotez

  • Hipoteza zerowa ($H_{0}$) to istniejące przekonanie

  • Hipoteza alternatywna ($H_{A}$) to nowa „konkurencyjna" idea badacza

Dla naszego problemu:

  • $H_{0}$: Odsetek data scientistów, którzy zaczęli programować jako dzieci, wynosi 35%
  • $H_{A}$: Odsetek data scientistów, którzy zaczęli programować jako dzieci, jest większy niż 35%
1 "Naught" to brytyjski angielski odpowiednik słowa "zero". Z powodów historycznych "H-naught" jest międzynarodową konwencją wymowy hipotezy zerowej.
Testowanie hipotez w Pythonie

Procesy karne a testowanie hipotez

  • Prawdziwa jest albo $H_{A}$, albo $H_{0}$ (nie obie jednocześnie)
  • Na początku zakłada się, że $H_{0}$ jest prawdziwa
  • Test kończy się wynikiem „odrzucamy $H_{0}$" lub „nie odrzucamy $H_{0}$"
  • Jeśli dowody z próby są „istotne" na korzyść $H_{A}$, odrzucamy $H_{0}$; w przeciwnym razie przyjmujemy $H_{0}$

Poziom istotności odpowiada „ponad wszelką wątpliwość" w testowaniu hipotez

Testowanie hipotez w Pythonie

Testy jedno- i dwustronne

Wykres gęstości rozkładu normalnego standardowego z zaznaczonymi na czerwono ogonami lewym i prawym.

Testy hipotez sprawdzają, czy statystyki próby leżą w ogonach rozkładu zerowego

Test Ogony
hipoteza alternatywna różna od zerowej dwustronny
hipoteza alternatywna większa od zerowej prawostronny
hipoteza alternatywna mniejsza od zerowej lewostronny

 

$H_{A}$: Odsetek data scientistów, którzy zaczęli programować jako dzieci, jest większy niż 35%

To jest test prawostronny

Testowanie hipotez w Pythonie

Wartości p

Wartość p: prawdopodobieństwo uzyskania danego wyniku przy założeniu, że hipoteza zerowa jest prawdziwa

  • Duża wartość p — duże wsparcie dla $H_{0}$
    • Statystyka prawdopodobnie nie leży w ogonie rozkładu zerowego
  • Mała wartość p — silne dowody przeciwko $H_{0}$
    • Statystyka prawdopodobnie leży w ogonie rozkładu zerowego
  • „p" w wartości p → prawdopodobieństwo
  • „mała" oznacza „bliska zeru"
Testowanie hipotez w Pythonie

Obliczanie z-score

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
Testowanie hipotez w Pythonie

Obliczanie wartości p

  • norm.cdf() to dystrybuanta rozkładu normalnego z scipy.stats.
  • Test lewostronny → użyj norm.cdf().
  • Test prawostronny → użyj 1 - norm.cdf().

 

from scipy.stats import norm
1 - norm.cdf(z_score, loc=0, scale=1)
3.1471479512323874e-05
Testowanie hipotez w Pythonie

Czas na ćwiczenia!

Testowanie hipotez w Pythonie

Preparing Video For Download...