Тест Фридмана против теста Уилкоксона

11

Я пытаюсь оценить производительность алгоритма классификации машинного обучения под наблюдением. Наблюдения делятся на номинальные классы (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
AdrianoKF
источник
Я не уверен, что ваш вызов wilcox.testвыполняет тест со знаком ранга, сравнивающий точность при двух условиях, потому что вы никогда не сообщаете ему переменную сопряжения. По крайней мере, это небезопасный способ выполнения теста, поскольку он основан на упорядочении строк во входных данных.
Анико

Ответы:

11

Тест Фридмана не является продолжением теста Вилкоксона, поэтому, когда у вас есть только 2 связанных образца, он не совпадает с тестом рангового знака Вилкоксона . Последний учитывает величину различий внутри случая (а затем ранжирует его по случаям), тогда как Фридман оценивает только случай (и никогда между случаями): он менее чувствителен.

Фридман на самом деле почти продолжение теста знака . С двумя выборками их значения p очень близки, при этом Фридман немного более консервативен (эти два теста трактуют связи по-разному). Эта небольшая разница быстро исчезает при увеличении размера выборки. Таким образом, для двух связанных образцов эти два теста являются действительно равноправными альтернативами.

Тест, который эквивалентен Уилкоксону - в том же смысле, что и Фридман для подписи - не очень хорошо известен как тест Quade , упомянутый, например, здесь: http://www.itl.nist.gov/div898/software/dataplot/refman1/ auxillar / friedman.htm .

ttnphns
источник