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 < .001
mientras que p = .25
para 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 ( subject
es el identificador del sujeto, acc
la precisión DV y expected
la 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
fuente
wilcox.test
hacer 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.Respuestas:
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 .
fuente