Przeczytałem istniejące posty na temat tego modułu (i dokumentacji Scipy), ale nadal nie jest dla mnie jasne, jak używać modułu kstest Scipy, aby zrobić dobro test dopasowania, gdy masz zestaw danych i funkcję wywoływalną.Używanie modułu statystyk Scipy do testowania zgodności z dobrymi konfiguracjami
Plik PDF Chcę przetestować moje dane przed nie jest jednym ze standardowych scipy.stats dystrybucji, więc nie można po prostu nazwać używając coś jak:
kstest(mydata,'norm')
gdzie mydata jest tablica Numpy . Zamiast tego chcę zrobić coś takiego:
kstest(mydata,myfunc)
gdzie "myfunc" jest funkcją wywołania. To nie działa - co nie jest zaskakujące, ponieważ nie ma sposobu, aby kstest wiedział, jaka jest odcięta dla tablicy mydata, aby wygenerować odpowiednie teoretyczne częstotliwości za pomocą "myfunc". Załóżmy, że częstotliwości w "mydata" odpowiadają wartościom zmiennej losowej to tablica "odcięta". Wtedy pomyślałem, że mógłbym użyć stats.ks_2samp:
ks_2samp(mydata,myfunc(abscissa))
ale nie wiem czy to jest statystycznie poprawne. (Sidenote: czy kstest i ks_2samp spodziewają się, że tablice częstotliwości zostaną znormalizowane do jednego, czy też chcą mieć bezwzględne częstotliwości?)
W każdym przypadku, ponieważ jednoprzykładowy test KS ma być używany dla dobra-of- testowanie dopasowania, muszę założyć, że jest jakiś sposób, aby zrobić to bezpośrednio z kstest. Jak Ty to robisz?
Dziękuję, działa teraz świetnie! Coś mnie jednak dezorientuje.Kiedy podążam za twoim przykładem, otrzymuję D = 0,08, p = 1,6e-14. W moim oryginalnym pytaniu wspomniałem o moim rozwiązaniu "hack" do używania ks_2samp: Użyłem modułu histogramu do obliczenia obserwowanych częstotliwości danych, obliczyłem częstotliwości teoretyczne dla tych samych rozmiarów bin i użyłem ks_2samp na tych dwóch tablicach. Dało mi to D = 0,74, p = 0,017. Wydaje mi się nieco dziwne, że dałoby to tak drastycznie inny rezultat. Czy uważasz, że te dwie obliczenia powinny być bliższe? –
Trzymaj się, mógłbym się pomylić: czy ks_2samp przyjmuje empiryczne cdf dwóch zestawów danych, czy też oba zestawy danych? –
'ks_2samp' pobiera same zestawy danych. Jeśli robisz wszystko poprawnie, wydaje mi się rozsądne, że metoda 'ks_2samp' przyniosłaby wyższe' p-wartości' niż 'kstest', nie była pewna, czy różnica, którą widzisz, jest zbyt duża czy nie ... – Jaime