Ich versuche, die Leistung eines überwachten Klassifizierungsalgorithmus für maschinelles Lernen zu bewerten. Die Beobachtungen fallen in nominelle Klassen (2 vorerst, ich möchte dies jedoch auf Probleme mit mehreren Klassen verallgemeinern), die aus einer Population von 99 Probanden stammen.
Eine der Fragen, die ich beantworten möchte, ist, ob der Algorithmus einen signifikanten Unterschied in der Klassifizierungsgenauigkeit zwischen den Eingabeklassen aufweist. Für den Fall der binären Klassifizierung vergleiche ich die mittlere Genauigkeit zwischen den Klassen zwischen Probanden unter Verwendung eines gepaarten Wilcoxon- Tests (da die zugrunde liegende Verteilung nicht normal ist). Um dieses Verfahren auf Probleme mit mehreren Klassen zu verallgemeinern, wollte ich einen Friedman- Test verwenden.
Die p-Werte, die durch diese beiden Verfahren im Fall einer binären IV erhalten werden, variieren jedoch stark, wobei der Wilcoxon-Test ergibt, p < .001
während p = .25
für den Friedman-Test. Dies lässt mich glauben, dass ich ein grundlegendes Missverständnis der Struktur des Friedman-Tests habe.
Ist es in diesem Fall nicht angebracht, einen Friedman-Test zu verwenden, um das Ergebnis der wiederholten Messungen der Genauigkeit über alle Probanden hinweg zu vergleichen?
Mein R-Code, um diese Ergebnisse zu erhalten ( subject
ist die Subjektkennung, acc
die Genauigkeit DV und expected
die Beobachtungsklasse 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
wilcox.test
einen signierten Rangtest durchführt, bei dem die Genauigkeit unter den beiden Bedingungen verglichen wird, da Sie ihm niemals die Paarungsvariable mitteilen. Zumindest ist dies eine unsichere Methode zum Ausführen des Tests, da dies von der Reihenfolge der Zeilen in den Eingabedaten abhängt.