Friedman-Test gegen Wilcoxon-Test

11

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 < .001während p = .25fü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 ( subjectist die Subjektkennung, accdie Genauigkeit DV und expecteddie 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
AdrianoKF
quelle
Ich bin nicht sicher, ob Ihr Aufruf wilcox.testeinen 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.
Aniko

Antworten:

11

Der Friedman- Test ist keine Erweiterung des Wilcoxon-Tests. Wenn Sie also nur zwei verwandte Stichproben haben, ist er nicht mit dem von Wilcoxon signierten Rangtest identisch . Letzteres erklärt die Größe des Unterschieds innerhalb eines Falls (und ordnet ihn dann über Fälle hinweg), während Friedman nur innerhalb eines Falls (und niemals über Fälle hinweg) rangiert : Es ist weniger empfindlich.

Friedman ist eigentlich fast die Erweiterung des Zeichentests . Bei 2 Proben liegen ihre p-Werte sehr nahe beieinander, wobei Friedman nur geringfügig konservativer ist (diese beiden Tests behandeln Bindungen auf etwas unterschiedliche Weise). Dieser kleine Unterschied verschwindet schnell, wenn die Stichprobengröße zunimmt. Für zwei verwandte Stichproben sind diese beiden Tests also wirklich Peer-Alternativen.

Der Test, der Wilcoxon entspricht - im gleichen Sinne wie Friedman zu unterschreiben -, ist kein sehr bekannter Quadetest , der beispielsweise hier erwähnt wird: http://www.itl.nist.gov/div898/software/dataplot/refman1/ auxillar / friedman.htm .

ttnphns
quelle