Usiłuję ocenić wydajność nadzorowanego algorytmu klasyfikacji uczenia maszynowego. Obserwacje dzielą się na klasy nominalne (na razie 2, jednak chciałbym uogólnić to na problemy wielu klas), zaczerpnięte z populacji 99 osób.
Jednym z pytań, na które chciałbym odpowiedzieć, jest to, czy algorytm wykazuje znaczącą różnicę w dokładności klasyfikacji między klasami wejściowymi. W przypadku klasyfikacji binarnej porównuję średnią dokładność między klasami u badanych przy użyciu sparowanego testu Wilcoxona (ponieważ rozkład podstawowy jest nienormalny). Aby uogólnić tę procedurę na problemy wielu klas , zamierzałem zastosować test Friedmana .
Jednak wartości p uzyskane w tych dwóch procedurach w przypadku binarnego IV różnią się bardzo, przy czym test Wilcoxona daje wyniki, p < .001
podczas gdy p = .25
dla testu Friedmana. To prowadzi mnie do przekonania, że mam zasadnicze niezrozumienie struktury testu Friedmana.
Czy w tym przypadku nie jest właściwe stosowanie testu Friedmana do porównywania wyników powtarzanych pomiarów dokładności u wszystkich badanych?
Mój kod R, aby uzyskać te wyniki ( subject
to identyfikator podmiotu, acc
dokładność DV i expected
klasa obserwacji IV):
> head(subject.accuracy, n=10)
subject expected acc
1 10 none 0.97826087
2 10 high 0.55319149
3 101 none 1.00000000
4 101 high 0.68085106
5 103 none 0.97826087
6 103 high 1.00000000
7 104 none 1.00000000
8 104 high 0.08510638
9 105 none 0.95121951
10 105 high 1.00000000
> ddply(subject.accuracy, .(expected), summarise, mean.acc = mean(acc), se.acc = sd(acc)/sqrt(length(acc)))
expected mean.acc se.acc
1 none 0.9750619 0.00317064
2 high 0.7571259 0.03491149
> wilcox.test(acc ~ expected, subject.accuracy, paired=T)
Wilcoxon signed rank test with continuity correction
data: acc by expected
V = 3125.5, p-value = 0.0003101
alternative hypothesis: true location shift is not equal to 0
> friedman.test(acc ~ expected | subject, subject.accuracy)
Friedman rank sum test
data: acc and expected and subject
Friedman chi-squared = 1.3011, df = 1, p-value = 0.254
źródło
wilcox.test
wykonania podpisuje test rangowy porównujący dokładność w dwóch warunkach, ponieważ nigdy nie podajesz zmiennej zmiennej parowania. Jest to przynajmniej niebezpieczny sposób uruchomienia testu, ponieważ polega on na kolejności wierszy w danych wejściowych.Odpowiedzi:
Test Friedmana nie jest rozszerzeniem testu Wilcoxona, więc jeśli masz tylko 2 powiązane próbki, nie jest to to samo, co test rang podpisany przez Wilcoxona . Ta ostatnia uwzględnia wielkość różnicy w skrzynce (a następnie szereguje ją według skrzynek), podczas gdy Friedman szereguje tylko skrzynkę (nigdy nie skrzynek): jest mniej wrażliwa.
Friedman jest faktycznie prawie przedłużenie rejestracji testu. W przypadku 2 próbek ich wartości p są bardzo zbliżone, przy czym Friedman jest nieco bardziej konserwatywny (te dwa testy traktują więzi w nieco inny sposób). Ta niewielka różnica szybko zanika wraz ze wzrostem wielkości próbki. Tak więc dla dwóch powiązanych próbek te dwa testy są naprawdę alternatywnymi metodami.
Test, który jest równoważny Wilcoxonowi - w tym samym sensie, co Friedmana do podpisania - nie jest zbyt dobrze znanym testem Quade , wspomnianym na przykład tutaj: http://www.itl.nist.gov/div898/software/dataplot/refman1/ auxillar / friedman.htm .
źródło