Prueba de Friedman vs prueba de Wilcoxon

11

Estoy tratando de evaluar el rendimiento de un algoritmo de clasificación de aprendizaje automático supervisado. Las observaciones se dividen en clases nominales (2 por el momento, sin embargo, me gustaría generalizar esto a problemas de clases múltiples), extraídas de una población de 99 sujetos.

Una de las preguntas que me gustaría poder responder es, si el algoritmo exhibe una diferencia significativa en la precisión de clasificación entre las clases de entrada. Para el caso de clasificación binaria, estoy comparando la precisión media entre las clases entre los sujetos usando una prueba de Wilcoxon pareada (ya que la distribución subyacente no es normal). Para generalizar este procedimiento a problemas de varias clases, tenía la intención de utilizar una prueba de Friedman .

Sin embargo, los valores de p obtenidos por esos dos procedimientos en el caso de una IV binaria varían enormemente, con el rendimiento de la prueba de Wilcoxon, p < .001mientras que p = .25para la prueba de Friedman. Esto me lleva a creer que tengo un malentendido fundamental de la estructura de la prueba de Friedman.

¿ No es apropiado usar una prueba de Friedman en este caso para comparar el resultado de las medidas repetidas de precisión en todos los sujetos?

Mi código R para obtener esos resultados ( subjectes el identificador del sujeto, accla precisión DV y expectedla clase de observación 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
fuente
No estoy seguro de que su llamado a wilcox.testhacer una prueba de rango con signo comparando la precisión en las dos condiciones, porque nunca le dice la variable de emparejamiento. Como mínimo, esta es una forma insegura de ejecutar la prueba, ya que depende del orden de las filas en los datos de entrada.
Aniko

Respuestas:

11

La prueba de Friedman no es la extensión de la prueba de Wilcoxon, por lo que cuando tiene solo 2 muestras relacionadas, no es lo mismo que la prueba de rango con signo de Wilcoxon . Este último explica la magnitud de la diferencia dentro de un caso (y luego lo clasifica entre los casos), mientras que Friedman solo se clasifica dentro de un caso (y nunca entre los casos): es menos sensible.

Friedman es en realidad casi la extensión de la prueba de signos . Con 2 muestras, sus valores p son muy cercanos, con Friedman siendo un poco más conservador (estas dos pruebas tratan los lazos de maneras algo diferentes). Esta pequeña diferencia se desvanece rápidamente a medida que crece el tamaño de la muestra. Entonces, para dos muestras relacionadas, estas dos pruebas son realmente alternativas entre pares.

La prueba que es equivalente a Wilcoxon, en el mismo sentido que Friedman para firmar, no es una prueba de Quade muy conocida , mencionada por ejemplo aquí: http://www.itl.nist.gov/div898/software/dataplot/refman1/ auxillar / friedman.htm .

ttnphns
fuente