Khí-négyzet próba

A Khí-négyzet próba lényegében, egy “Goodness of fit” teszt diszkrét esetekre. Vagyis az alapvető kérdés amire választ keres: Az adatunk egy bizonyos ismert diszkrét eloszlásból származik-e? Csak a rend kedvért nézzünk néhány ilyen állítást: A Z egyetemen a cigány hallgatók aránya megegyezik az országos lakosság arányával. Az egyetemi végzettség megléte nem befolyásolja a vállalt gyermekek számát.


Tehát van egy diszkrét mintavételünk és van egy null hipotézisünk ami szerint a minta egy bizonyos diszkrét eloszlásból származik. Nézzük egy példát: egy Idióta azt állítja, hogy nem szükséges az alacsonyabb iskolai végzettségű szülők gyermekeinek extra támogatást adni, annak érdekében, hogy továbbtanuljanak. Véleménye szerint minden gyermeknek ugyanakkora esélye van gimnáziumba, majd felsőoktatásba jelentkezni. Be akarjuk neki bizonyítani, hogy ez nem igaz, amihez reductio ad absurdumot fogunk alkalmazni. Vagyis feltesszük, hogy igaz és megnézzük ez az állítás megfelel-e az adatainknak. Ennek megfelelően a null hipotézisünk az lesz, hogy gimnáziumban tanuló gyermekek száma és a szülők populációs aránya megegyezik. Magyarul ha a populációban 10% százalék azon szülők aránya akik egyetemet végeztek, akkor a gimnazista gyermekek között is 10%-kell ennek lennie. Az fenti kísérlethez pedig elvégeztünk egy mintavételt is, és a következő adatokat gyűjtöttük be1:

Az apa
végzettsége
EgyetemFőiskolaÉrettségiSzakmunkás8 általánosKevesebb mint 8 általános
Kategória kód
( j )
123456
Szülők száma a mintában4143891071191938540
Gimnazista gyermek
82
643920112

Összesen 4218 olyan szülőt kérdeztünk véletlenszerűen meg akinek a gyermeke van éppen befejezte az általános iskolát, hogy a gyermek gimnáziumba folytatja-e. A szülők az alábbi csoportokba lettek sorolva legmagasabb végzettség szerint: egyetemet végzett, főiskolát, érettségizett, szakmunkást, általános iskolát és azok akiknek még a 8 általános osztály se sikerült.2 Lényegében ez a mintaterünk:

(1)  E = \{\text{Egyetem, Foiskola, }\dots\text{, Kevesebb mint 8 altalanos }\}

Vezessük még be a j-indeket, az E elemeire. Ez a j a kategóriáink számának megfelelően, 1-6-ig fog terjedni. Vegyük észre, hogy a számok kiosztása nem kell, semmi féle logikát követnie. Nálunk például az E_{j=1} az egyetemet végzett szülőket fogja jelölni, de ez teljesen szabadon megváltoztatható. A kategóriák számát pedig jelöljük K-val. Ami ebben a példába 6:

(2)  K = 6

Hogy kezdenénk neki ennek a feladatnak? Ösztönösen fognánk a két eloszlást: a szülőket végzettség szerint, és a gyermekeket a szüleik végzettsége szerint. Normalizálnánk őket, és megnéznénk az egyes kategóriákban menyire hasonlít egymásra ez a két tömegfüggvény. Tegyük ezt. Vigyük be az adatokat Pythonba, és gyorsan számoljuk is ki mekkora részét képezik a populációnak. Nevezzük p_j-nak a gyermekek arányát a populációban, és p_0-nek a

import numpy as np
# milyen kategoriák vannak
j = np.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0])
# a kategoriák száma
k = float(len(j))

# az egyes kategoriákból mennyit figyeltünk meg a szülőknél
n0 = np.array([414,389,1071,1919,385,40])
# az egyes kategóriák aránya szülőkön belül
p0 = np.divide(n0, np.sum(n0))

# az egyes  kategóriák aránya gyermekeken belül
nj = np.array([82,64,39,20,11,2])
# az össze gyerek száma
n = np.sum(nj)
pj = np.divide(nj, n)

Ami azt adja, hogy:

Az apa
végzettsége
Egyetem Főiskola Érettségi Szakmunkás 8 általános Kevesebb mint 8 általános
Apa aránya
( p_0 )
0.09815078 0.0922238 0.25391181 0.45495495 0.09127549 0.00948317
Gyermek aránya
( p_j )
0.37614679 0.29357798 0.17889908 0.09174312 0.05045872 0.00917431

Szóval a rend kedvért a null hipotézisünk, hogy p_j és p_0-nak ugyanaz az eloszlása:

(3)  H_0:  p_j = p_0 \\ H_1: p_j \ne p_0

Ok. Hogyan tovább? Ez egy hipotézis teszt, szóval vegyük a hipotézis tesztelés általános alapötletét: nézzük meg a két minta menyire különbözik egymástól, és ezt jellemezük egyetlen számmal. Nevezzük ezt a számot T_n-nek. Ha ez a szám nagyobb mint egy kritikus érték, jelöljük ezt C-vel, akkor elutasítjuk a null hipotézist. Vagyis:

(4)  \psi_{\alpha}= \mathbf{1}( T_n > C )

A két eloszlás távolságának mérése nem nagyon lehet probléma. Lényegében bármilyen távolság mérést használhatnánk. A Khí-négyzet próbában ez a következő lesz:

(5)  \sum_{j=1}^K \left(p_j - p_0\right)^2

Mi is ez lényegében? Egyszerűen végiglépkedünk az egyese kategórián és kiszámoljuk mekkora a különbsége a gyermekek és a felnőttek aránya között az adott kategórián belül. Ez egyszerű. Minél kisebb az így kapott szám annál jobban hasonlít a két tömegfüggvény egymásra. Vagyis ha ez a szám elég kicsi akkor nem utasítjuk el a null hipotézist.

De van itt egy probléma: Mi legyen a kritikus érték? Mi az a pont amikor a távolság a két eloszlás között akkora, hogy elutasítjuk a null hipotézist? Ha lehet ez a kritikus érték számítási lehetőleg legyen aszimptotikus is.

Ennek megfejtésében segít ha észrevesszük, hogy a fentebb ösztönösen számított a p_j lényegében a Maximum Likelihood becslés a diszkrét eloszlású populációra. Szintén segít ha elképzeljük az esetet aszimptotikusan. Vagyis mi történik ha a mintavételünk száma, az n, a végtelenbe tart? Ha H_0 igaz, akkor ahogy nő a mintavételünk száma a kettő eloszlás közötti különég folyamatosan csökken, lévén a kettő ugyanaz. Vagyis:

(6)  \sqrt{n} \sum_{j=1}^K \left(p_j - p_0\right) \text{ }\overrightarrow{n\to\infty}  \text{ }  0

Viszont ettől nem vagyunk annyira boldogok. Miért? Mert ahhoz, hogy felállítsunk egy aszimptotikus rendszert, egy normál eloszlást szeretnénk látni a jobb oldalon, de a 0 nem az. Pontosabban lehet az, de akkor azt Degenerate Gaussian-nak nevezük és így definiáljuk:

(7)  N(0,\varepsilon^2) \text{ }\overrightarrow{\varepsilon\to 0}  \text{ }  0

Vagyis egy olyan Normál ahol a variancia nem állandó hanem csökken.
Ezen a felismerésen elindulva Karl Pearson eljutotta ahhoz, hogy ha csökkentjük a dimenziók számát akkor normál eloszlást fogunk kapni. Ez a tény lényegében összefügg azzal, hogy a kategóriák nem függetlenek egymástól. Az első K-1 kategória, teljesen determinálja az utolsó kategória értékét. Az utolsó kategoria lényegében minden ami megmaradt az előzőek után. Viszont mivel nem csak egy kategóriánk van ,az kategóriák összességének eloszlása egy K-1 szabadsági fokú \chi^2 eloszlást fog követni normalizálás után. Így alakult ki a Khí-négyzet próba, ami definíciója:

(8)  \chi^2_{K-1}  \approx  n \sum_{j=1}^K \frac{\left(p_j - p_0\right)^2}{p_0}

Tehát a:

(9)  T_n =  n \sum_{j=1}^K \frac{\left(p_j - p_0\right)^2}{p_0}

Akkor számítsuk is ki:

# tn
tn = np.multiply(np.sum(np.divide(np.power(np.subtract(pj, p0), 2), p0)), np.sum(nj))

# kritical érték
from scipy.stats import chi2
alpha = 0.05
c = chi2.isf(q=alpha, df=k-1)

# p
p = 1-chi2.cdf(tn, k-1)

# Hipotézis eredménye
if tn > c :
    print("Elutasítjuk a null hipotézist. Vagyis a két minta nem ugyanabból az eloszlásból van. \n\tTeszt statisztika: "+str(tn)+
          "\n\tKritikus érték:"+str(c)+
          "\n\tP érték: " + str(p))
else:
    print("Elfogadjuk a null hipotézist.")

Akkor nézzük is meg az eredményt a fenti adatokra:

Elutasítjuk a null hipotézist. Vagyis a két minta nem ugyanabból az eloszlásból van. 
        Teszt statisztika: 339.511335821193
        Kritikus érték:11.070497693516355
        P érték: 0.0

Szóval rossz hírünk van az Idiótának. A T_n nem csak éppen-éppen, hanem lényegesen nagyobb mint a kritikus érték. A szülők iskolai végzettsége jelentősen befolyásolja a gyermekek jövőbeli iskolai végzettségét. Hogy ez minek az oka, az más kérdés, de egyértelmű, hogy valaki olyan helyre születik akkor szüksége van extra segítségre, hogy kibontakoztathassa a benne rejlő tehetséget.


Lábjegyzet

  1. Az adatok Andor Mihály: “Az iskolákon át vezető út” kutatásából származnak.
  2. Angolul szokták még “modalities”-nek is nevezni.
Hírdetés

Khí-négyzet próba” bejegyzéshez egy hozzászólás

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés /  Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés /  Módosítás )

Kapcsolódás: %s