Dobroć dopasowania dla bardzo dużych próbek

12

Codziennie zbieram bardzo duże próbki (> 1 000 000) danych kategorycznych i chcę, aby dane wyglądały „znacząco” różnie między poszczególnymi dniami w celu wykrycia błędów w gromadzeniu danych.

Myślałem, że użycie testu dobrego dopasowania (w szczególności testu G) byłoby dobrym dopasowaniem (gra słów). Oczekiwany rozkład wynika z rozkładu z poprzedniego dnia.

Ale ponieważ moje rozmiary próbek są tak duże, test ma bardzo dużą moc i daje wiele fałszywych wyników dodatnich. To znaczy, nawet bardzo niewielka dzienna fluktuacja da prawie zerową wartość p.

Ostatecznie pomnożyłem moją statystykę testową przez pewną stałą (0,001), co ma niezłą interpretację próbkowania danych z tą szybkością. Ten artykuł wydaje się zgadzać z tym podejściem. Mówią, że:

Chi kwadrat jest najbardziej niezawodny z próbkami od około 100 do 2500 osób

Szukam bardziej autorytatywnych komentarzy na ten temat. A może jakieś alternatywne rozwiązania dla fałszywych trafień podczas przeprowadzania testów statystycznych na dużych zestawach danych.

tskuzzy
źródło
3
To dobre pytanie. Nie ma jednak obiektywnie uzasadnionej podstawy dla twojego podejścia ad hoc . Nie oznacza to, że będzie działać słabo - ale zdecydowanie sugeruje, że istnieją lepsze procedury. Aby je znaleźć, pomocne byłoby edytowanie tego pytania, aby wyjaśnić, jakie rodzaje błędów próbujesz zidentyfikować, w tym, jak duże mogą być, ile z nich może wystąpić i jakie są konsekwencje (a) braku zidentyfikować niektóre błędy i (b) oznaczyć poprawne dane jako błędy.
whuber
2
Z matematycznego punktu widzenia test zgodności z bardzo dużym jest całkowicie w porządku - wystarczy, że odpowiednia hipoteza zerowa nie jest zbyt interesująca: dlaczego miałbyś zadawać pytanie „tak / nie”, kiedy możesz uzyskać odpowiedź „ile”? W twoim przypadku codziennie możesz oszacować zmianę proporcji dla każdej kategorii, dodać przedział ufności dla każdej z nich i sprawdzić, czy nie uderzą one w predefiniowany region tolerancji około 0.n
Michael M
Używanie terminów „znaczący” i „fałszywie dodatni” wydaje się być sprzeczne ze statystycznym znaczeniem tych terminów, szczególnie jeśli dobrze wykonujesz test *. Sugeruję unikanie tych terminów, chyba że używasz ich ściśle w sensie technicznym. Podstawowym problemem jest używanie testów hipotez w sytuacjach, w których nie ma to większego sensu; zwykłym, nietechnicznym, angielskim, jakie jest twoje aktualne pytanie?* (w szczególności używanie poprzedniego dnia jako „populacji” jest niewłaściwe, jeśli nie pozwala się na jego zmienność - ogólnie jest tak samo zmienna jak dzisiaj)
Glen_b

Odpowiedzi:

4

Test zwraca poprawny wynik. Rozkłady nie są takie same z dnia na dzień. Nie ma to dla ciebie oczywiście sensu. Problem, z którym się zmagasz, jest od dawna znany. Patrz: Karl Pearson i RA Fisher o badaniach statystycznych: Wymiana z natury w 1935 r

Zamiast tego możesz spojrzeć wstecz na poprzednie dane (swoje lub skądinąd) i uzyskać rozkład codziennych zmian dla każdej kategorii. Następnie sprawdzasz, czy przy tej dystrybucji prawdopodobne jest wystąpienie bieżącej zmiany. Trudno jest udzielić dokładniejszej odpowiedzi bez wiedzy o danych i rodzajach błędów, ale takie podejście wydaje się bardziej dostosowane do Twojego problemu.

Kolba
źródło
4

Dalej, zabijmy świętą krowę w wysokości 5%.

(Prawidłowo) wskazałeś, że problemem jest żywiołowa moc testu. Możesz ponownie skalibrować go w celu uzyskania bardziej odpowiedniej mocy, na przykład bardziej tradycyjnej wartości 80%:

  1. Wybierz rozmiar efektu, który chcesz wykryć (np. Przesunięcie o 0,2%)
  2. Zdecyduj się na moc, która jest dla Ciebie wystarczająco dobra, aby nie została przytłoczona (np. 1-β=80%)
  3. Wróć do istniejącej teorii testu Pearsona, aby określić poziom, który sprawi, że Twój test będzie praktyczny.

Załóżmy, że masz 5 kategorii z jednakowymi prawdopodobieństwami, , a twoją alternatywą jest p + δ / p1=p2)=p3)=p4=p5=0.2. Tak więc dlan=106,δ=(-2,+2,0,0,p+δ/n=(0,198,0,202,0.2,0.2,0.2)n=106δ=(-2),+2),0,0,0)k= Przy tej dużej wartości λ jest to wystarczająco blisko N ( μ = λ + k = 44 , σ + 2 λ ) = 168 ) . Płytka 80% wynosi 44 + 13 Φ - 1 ( 0,8 ) = 44 + 13 0,84 = 54,91

λ=jotδjot2)/pjot=4/0.2+4/0.2=40
λ . Dlatego twoim pożądanym poziomem testu jest odwrotny ogon cdf χ 2 4N.(μ=λ+k=44,σ2)=2)(k+2)λ)=168)44+13Φ-1(0,8)=44+130,84=54,91χ42) z 54,91: Więc to byłby poziom, na którym powinieneś rozważyć sprawdzenie swoich danych że miałby moc 80% do wykrycia różnic 0,2%.
P.rob[χ42)>54,91]=3.310-11

(Sprawdź moją matematykę, to jest absurdalny poziom testu, ale tego właśnie chciałeś z Big Data, prawda? Z drugiej strony, jeśli rutynowo widzisz Pearson w zakresie kilkuset, może to być całkowicie znacząca wartość krytyczna do rozrywki.)χ2)

Pamiętaj jednak, że przybliżenia, zarówno zerowe, jak i alternatywne, mogą źle działać na ogonach, zobacz tę dyskusję .

StasK
źródło
2

W tych przypadkach mój profesor zasugerował, aby obliczyć V Craméra, który jest miarą asocjacji opartej na statystyce chi-kwadrat. To powinno dać ci siłę i pomóc ci zdecydować, czy test jest nadwrażliwy. Ale nie jestem pewien, czy można użyć V z rodzajem statystyki, którą zwracają testy G2.

Powinien to być wzór na V:

ϕdo=χ2)n(k-1)

gdzie nkk

wal
źródło
0

Jednym z podejść byłoby uczynienie testów dopasowania dobrymi bardziej znaczącymi, wykonując je na mniejszych blokach danych.

α=0,05α

α

CJ Stoneking
źródło
Czy mógłbyś wyjaśnić, w jaki sposób to podejście byłoby „bardziej znaczące?”
whuber
Jest to znaczenie statystyczne vs. znaczenie w świecie rzeczywistym. Dzięki zastosowaniu 10 ^ 3 zamiast 10 ^ 6 próbek, siła pojedynczego testu jest celowo zmniejszona, więc odrzucenie hipotezy zerowej będzie miało tendencję do odpowiadania dużemu brakowi dopasowania. To sprawia, że ​​wynik pojedynczego testu jest bardziej znaczący, ponieważ OP nie dba o „niewielkie codzienne fluktuacje”. W przypadku 10 ^ 6 próbek test może zawsze odrzucić H0 z powodu niewielkich różnic, więc nie jest jasne, czy wynik testu reprezentuje znaczącą informację.
CJ Stoneking
1
Dziękuję: twój komentarz porusza interesujące i ważne kwestie, które zaczynają odnosić się do tego, co uważam za prawdziwe pytanie podstawowe; mianowicie, w jaki sposób należy mierzyć różnice między danymi w celu wykrycia błędów i jak duża byłaby różnica? Chociaż twoja odpowiedź może być odpowiednia w niektórych okolicznościach, wydaje się mało prawdopodobne, aby skutecznie wykryła wiele rodzajów błędów, które mogą wystąpić w danych, i pozostawia otwarte (naturalne) pytanie, jakie bloki wielkości należy użyć.
whuber
@ whuber, czy problem może zostać przedefiniowany w taki sposób, aby wartość zerowa i jej odchylenie były niezmienne pod względem wielkości danych, ale szuka pewnej jakościowej reprezentacji?
Vass