Tutorial: Hypotesetesting
Contents
Tutorial: Hypotesetesting#
I denne tutorialen skal vi gjøre statistiske simuleringer for å illustrere at Z-testen er egnet til å vurdere nullhypoteser for terningeksperimenter. Siden en terning er et system som gir forskjellige utfall med en viss sannsynlighet kan resultatet generaliseres til andre systemer der hvert forsøk har en gitt sannsynlighet for et utfall.
En terning har en sannsynlighet \(p_6 = 1/6\) for å kaste en sekser. Den har samme sannsynlighet for ethver annet utfall også (1, 2, 3, 4, 5), men vi skal nå fokusere på tilfellet seks øyne.
La oss tenke oss at vi kaster terningen \(n=1000\) ganger og teller antallet \(N_6\) seksere vi får på de 1000 kastene.
a) Vi definerer oss estimatoren \(\hat p_6 = N_6/n\). Hva er forventningsverdien til \(\hat p_6\)?
b) Bruk np.random.randint(1, 7, n)
for å simulere 1000 terningkast. Gjenta dette noen ganger og skriv opp verdien på \(\hat p_6\) for forsøkene.
c) Lag en funksjon andel_seksere
som tar inn antallet kast og returnerer andelen seksere. Sjekk at funksjonen ser ut til å fungere.
d) Kall på funksjonen andel_seksere
10 000 ganger i en løkke. Lagre resultatet i en liste. Lag et histogram over resultatene. Gjenkjenner du formen på histogrammet?
For å lage histogram bruker vi
plt.hist
. For å justere hvor finkornet histogrammet er bruker vi keyword-argumentetbins
.
e) Gjør Z-testen på hvert av førsøkene dine (de 10 000) og plott Z-verdiene i et nytt histogram.
Husk at z-testen er definert som \(Z = {\frac{\hat\theta-\theta_0}{\sigma_{\hat\theta}}}\) og at i tilfellet med andelstesting med binomiske utfall er \(\hat\theta = \hat p\), \(\theta_0 = p_0\) og \(\sigma_{\hat\theta} = \sqrt{p_0(1-p_0)/n}\) slik at \(Z = \frac{\hat{p}-p_0}{\sqrt{p_0(1-p_0)/n}}\).
f) Plott standard normalfordelingen sammen med histogrammet over utfallene av Z-testene.
Du kan finne verdier fra standard normalfordelingen med
scipy.stats.norm.pdf()
g) Hvordan kan vi tolke Z-testen? Hva gjør den og hvorfor fungerer den?
Dersom du har gjort et forsøk og beregnet Z-verdien er følgende utsagn sant: Sannsynligheten for å observere et slikt eller et mer lavere resultat gitt at nullhypotesen er sann er \(\Phi(z)\). Sannsynligheten for å observere et slikt eller et høyere resultat gitt at nullhypotesen er sann er \(1-\Phi(z)\). \(\Phi\) er den kumulative standard normalfordelingen.
PS#
Z-testen fungerer bare når datene er svært veloppdragne. Den forutsetter at \(\hat p\) er omtrent normalfordelt. Det er stort sett tilfellet dersom vi summerer mange utfall, typisk minst 40. Dersom vi har mindre utvalg må vi gjerne bruke en T-test eller en annen mer avansert test. Det er ikke alltid åpenbart, selv for forskere som virkelig trenger å vite det, hva som er den riktige testen å gjøre på dataene.