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 < .001
enquanto p = .25
que 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, acc
a precisão DV e expected
a 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
fonte
wilcox.test
faç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.Respostas:
O teste de Friedman não é a extensão do teste de Wilcoxon; portanto, quando você tem apenas duas amostras relacionadas, não é o mesmo que o teste de classificação assinado por Wilcoxon . Este último explica a magnitude da diferença dentro de um caso (e depois a classifica entre casos), enquanto Friedman classifica apenas dentro de um caso (e nunca entre casos): é menos sensível.
Friedman é na verdade quase a extensão do teste de sinal . Com 2 amostras, seus valores de p são muito próximos, com Friedman sendo apenas um pouco mais conservador (esses dois testes tratam os laços de maneiras um pouco diferentes). Essa pequena diferença desaparece rapidamente conforme o tamanho da amostra aumenta. Portanto, para duas amostras relacionadas, esses dois testes são realmente alternativas iguais.
O teste equivalente a Wilcoxon - no mesmo sentido que Friedman assina - não é um teste Quade muito conhecido , mencionado por exemplo aqui: http://www.itl.nist.gov/div898/software/dataplot/refman1/ auxillar / friedman.htm .
fonte