Я пытаюсь оценить производительность алгоритма классификации машинного обучения под наблюдением. Наблюдения делятся на номинальные классы (2 на данный момент, однако я хотел бы обобщить это для многоклассовых проблем), составленные из 99 субъектов.
Один из вопросов, на которые я бы хотел ответить, - если алгоритм демонстрирует существенную разницу в точности классификации между входными классами. Для случая бинарной классификации я сравниваю среднюю точность между классами по предметам, используя парный критерий Уилкоксона (поскольку базовое распределение не является нормальным). Чтобы обобщить эту процедуру для многоклассовых задач, я намеревался использовать тест Фридмана .
Тем не менее, значения p, полученные этими двумя процедурами в случае бинарного в / в, сильно различаются, при этом критерий Уилкоксона дает результаты, p < .001
тогда как p = .25
для критерия Фридмана. Это заставляет меня поверить, что у меня есть фундаментальное неправильное понимание структуры теста Фридмана.
Разве не уместно использовать тест Фридмана в этом случае для сравнения результатов повторных измерений точности по всем предметам?
Мой код 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
выполняет тест со знаком ранга, сравнивающий точность при двух условиях, потому что вы никогда не сообщаете ему переменную сопряжения. По крайней мере, это небезопасный способ выполнения теста, поскольку он основан на упорядочении строк во входных данных.Ответы:
Тест Фридмана не является продолжением теста Вилкоксона, поэтому, когда у вас есть только 2 связанных образца, он не совпадает с тестом рангового знака Вилкоксона . Последний учитывает величину различий внутри случая (а затем ранжирует его по случаям), тогда как Фридман оценивает только случай (и никогда между случаями): он менее чувствителен.
Фридман на самом деле почти продолжение теста знака . С двумя выборками их значения p очень близки, при этом Фридман немного более консервативен (эти два теста трактуют связи по-разному). Эта небольшая разница быстро исчезает при увеличении размера выборки. Таким образом, для двух связанных образцов эти два теста являются действительно равноправными альтернативами.
Тест, который эквивалентен Уилкоксону - в том же смысле, что и Фридман для подписи - не очень хорошо известен как тест Quade , упомянутый, например, здесь: http://www.itl.nist.gov/div898/software/dataplot/refman1/ auxillar / friedman.htm .
источник