Estou tentando avaliar o desempenho de um algoritmo de classificação de aprendizado de máquina supervisionado. As observações se enquadram em classes nominais (2 por enquanto, no entanto, eu gostaria de generalizar isso para problemas de várias classes), extraídos de uma população de 99 indivíduos.
Uma das perguntas que eu gostaria de responder é se o algoritmo exibir uma diferença significativa na precisão da classificação entre as classes de entrada. Para o caso de classificação binária, estou comparando a precisão média entre as classes entre os sujeitos, usando um teste de Wilcoxon emparelhado (uma vez que a distribuição subjacente não é normal). Para generalizar esse procedimento para problemas com várias classes, pretendi usar um teste de Friedman .
No entanto, os valores de p obtidos por esses dois procedimentos no caso de um IV binário variam muito, com o teste de Wilcoxon rendendo, p < .001enquanto p = .25que no teste de Friedman. Isso me leva a acreditar que tenho um mal-entendido fundamental da estrutura do teste de Friedman.
Não é apropriado usar um teste de Friedman neste caso para comparar o resultado das medidas repetidas da precisão em todos os sujeitos?
Meu código R para obter esses resultados ( subjecté o identificador do sujeito, acca precisão DV e expecteda classe de observação 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.testfaça um teste de classificação assinado comparando a precisão nas duas condições, porque você nunca diz a variável de emparelhamento. No mínimo, essa é uma maneira insegura de executar o teste, porque depende da ordem das linhas nos dados de entrada.