Kolmogorov-Lilliefors teszt

A Kolmogorov-Lilliefors egy hipotézis teszt, ami arra próbál válaszolni: az adatok normál eloszlásból származnak-e?


Ez a teszt lényegében a Kolmogorov–Smirnov teszt normál eloszlásokra alkalmazott változata. A lényegi különbség a kettő között: hogy míg a Kolmogorov–Smirnov-ban az adatokat egy konkrét paraméterű eloszlással hasonlítjuk össze, addig itt, általánosságban kérdezzük, hogy az adatok egy bármilyen paraméterű normál eloszlásból származnak-e? Vagyis ha például azt szeretném megtudni, hogy az adatok a 0 középértékű, és 1 varianciájú Normál eloszlásból származnak-e, akkor Kolmogorov–Smirnov-t használunk.

A teszt alapja ezek után nem meglepő módon ugyanaz, mint a Kolmogorov–Smirnov-é. Vagyis fogjuk a megfigyeléseinket, normalizáljuk őket a megfigyelés átlagával és varianciájával. Ezután előállítjuk az empirikus CDF-et. Ez ugye egy lépcsős függvény lesz. Majd ezt a függvényt összevetjük a standard Normál eloszlás eloszlásfüggvényével. Megnézzük, hol a legnagyobb a különbség közöttük. Ez lesz a kritikus értékünk. Grafikusan:

Ezt már csak össze kell vetnünk a Lilliefors által közölt táblázattal. Ha a kapott értékünk kisebb mint a táblázatban szereplő kritikus érték, akkor nem utasítjuk el a feltételezést, hogy Gaussian eloszlásból származik a minta.

Nézünk egy megvalósítást Pythonban

import numpy as np

def kolmogorovLilliefors(x):
    # megfigyelés normalizálása
    xnorm = np.divide(np.subtract(x, np.mean(x)), np.sqrt(np.var(x)))

    # empirikus CDF ugrass elott es utan
    sxup = np.array([float(xi) / float(len(x)) for xi in range(1, len(x) + 1)])
    sxdown = np.array([float(xi) / float(len(x)) for xi in range(0, len(x))])

    # a Standard normál eloszlás értéke a mintákban
    from scipy.stats import norm
    fx = norm.cdf(xnorm)

    # KL szamitas
    klup = np.abs(np.subtract(fx, sxup))
    kldown = np.abs(np.subtract(fx, sxdown))
    if klup[np.argmax(klup)] > kldown[np.argmax(kldown)]:
        return(klup[np.argmax(klup)])
    else:
        return(kldown[np.argmax(kldown)])

Nézzünk egy számítási példát. Ha a mintavételünk a [ 0,1; 0,01; 0,2; 0,28; 0,8 ], akkor a Kolmogorov-Lilliefors értéke: 0.29711368236903424. A linkelt táblázat alapján a kritikus érték 85%-os valószínűséghez: 0.299 , és 80% valószínűséghez padig: 0.285. Vagyis az első alapján nem utasítjuk el, a feltételezést, hogy a minta Gaussian populációból származik, míg a második alapján igen.

Hírdetés

Kolmogorov-Lilliefors teszt” bejegyzéshez 2 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 )

Twitter kép

Hozzászólhat a Twitter 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