我正在尝试评估监督型机器学习分类算法的性能。观察结果属于名义类别(目前为2类,不过我想将其概括为多类问题),这些样本来自99名受试者。
我想回答的问题之一是,如果算法在输入类别之间的分类准确度方面存在显着差异。对于二元分类的情况,我正在使用配对的Wilcoxon检验来比较受试者之间各类之间的平均准确性(因为基础分布是非正态的)。为了将此程序推广到多类问题,我特别使用了Friedman检验。
但是,在二进制IV的情况下,通过这两种方法获得的p值变化很大,Wilcoxon检验屈服,p < .001
而p = .25
Friedman检验。这使我相信我对弗里德曼测试的结构有基本的误解。
在这种情况下,使用弗里德曼检验来比较所有受试者重复测量准确性的结果是否合适?
我获得这些结果的R代码(subject
是对象标识符,acc
精度DV和expected
观察等级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.test
带符号等级测试,以比较两种情况下的准确性,因为您从未告诉过配对变量。至少这是运行测试的不安全方法,因为它依赖于输入数据中行的顺序。