Тест Kruskal-Wallis с деталями о попарных сравнениях

Стандартная статистика:: модуль kruskal.test позволяет вычислять тест kruskal-wallis на набор данных:

>>> data(diamonds)
>>> kruskal.test(price~carat, data=diamonds)

Kruskal-Wallis rank sum test

data:  price by carat by color 
Kruskal-Wallis chi-squared = 50570.15, df = 272, p-value < 2.2e-16

Это корректно, это дает мне вероятность, что у всех групп в данных есть среднее то же.

Однако я хотел бы иметь детали для каждого парного сравнения, как то, если ромбы цветов D и E имеют ту же среднюю цену, как некоторое другое программное обеспечение делает (SPSS), когда Вы просите тест Kruskal.

Я нашел kruskalmc от пакета pgirmess, который позволяет мне делать то, что я хочу сделать:

> kruskalmc(diamonds$price, diamonds$color)
Multiple comparison test after Kruskal-Wallis 
p.value: 0.05 
Comparisons
      obs.dif critical.dif difference
D-E  571.7459     747.4962      FALSE
D-F 2237.4309     751.5684       TRUE
D-G 2643.1778     726.9854       TRUE
D-H 4539.4392     774.4809       TRUE
D-I 6002.6286     862.0150       TRUE
D-J 8077.2871    1061.7451       TRUE
E-F 2809.1767     680.4144       TRUE
E-G 3214.9237     653.1587       TRUE
E-H 5111.1851     705.6410       TRUE
E-I 6574.3744     800.7362       TRUE
E-J 8649.0330    1012.6260       TRUE
F-G  405.7470     657.8152      FALSE
F-H 2302.0083     709.9533       TRUE
F-I 3765.1977     804.5390       TRUE
F-J 5839.8562    1015.6357       TRUE
G-H 1896.2614     683.8760       TRUE
G-I 3359.4507     781.6237       TRUE
G-J 5434.1093     997.5813       TRUE
H-I 1463.1894     825.9834       TRUE
H-J 3537.8479    1032.7058       TRUE
I-J 2074.6585    1099.8776       TRUE

Однако этот пакет только допускает одну категорическую переменную (например, Я не могу изучить цены, кластеризируемые цветом и каратом, как я могу сделать с kruskal.test), и я ничего не знаю о pgirmess пакете, сохраняется ли это или нет, или если это тестируется.

Можно ли рекомендовать мне пакет для выполнения теста Kruskal-Wallis, который возвращает детали для каждого сравнения? Как Вы решили бы проблему?

11
задан scw 5 June 2011 в 00:18
поделиться

3 ответа

Еще один подход, помимо kruskal :: Agricolae, упомянутый Мареком, - это тест Nemenyi-Damico-Wolfe-Dunn, реализованный на странице справки для oneway_test в пакете монет, который использует multcomp. Используя настройку Хадли и уменьшив значение B = для функции приближаться (), чтобы она завершилась за конечное время:

#updated translation of help page implementation of NDWD
NDWD <- 
    independence_test(dv ~ iv, data = sum_codings1, distribution = approximate(B = 10000), 
                          ytrafo = function(data) trafo(data, numeric_trafo = rank_trafo), 
                          xtrafo = mcp_trafo(iv = "Tukey"))


    ### global p-value
    print(pvalue(NDWD))

    ### sites (I = II) != (III = IV) at alpha = 0.01 (page 244)
    print(pvalue(NDWD, method = "single-step"))

Более стабильные результаты для большего набора данных могут потребовать увеличения значения B и увеличения терпения пользователя.

Январь: 2012 г .: Недавно в R-help было опубликовано сообщение о неожиданных результатах использования этого метода, поэтому я переслал это письмо специалисту по сопровождению. Марк Диффорд сказал, что подтвердил наличие проблем и предложил альтернативные тесты с пакетом nparcomp: https://stat.ethz.ch/pipermail/r-help/2012-January/300100.html

Также были на той же неделе пара других предложений по rhelp для post-hoc контрастов с тестами KW: kruskalmc, предложенный Марио Гарридо Эскудеро и rms :: polr , за которым следует rms :: Contrasts , предложенный Фрэнком Харреллом https://stat.ethz.ch/pipermail/r-help/2012-January/300329.html

ноя 2015 г. : Согласитесь с toto_tico, что код страницы справки пакета монет был изменен за прошедшие годы. На странице справки ? Independent_test теперь предлагается многовариантный тест KW, а на странице справки ? Oneway_test предыдущая реализация заменена приведенным выше кодом с использованием функции independent_test .

16
ответ дан 3 December 2019 в 05:57
поделиться

Я бы подумал, что вы сможете сделать следующее:

data(diamonds, package = "ggplot2")

library(coin)
library(multcomp)

kt <- kruskal_test(price ~ clarity, data = diamonds)
glht(kt, mcp(clarity = "Tukey"))

Но похоже, что multcomp не поддерживает монеты объекты (пока?).

1
ответ дан 3 December 2019 в 05:57
поделиться

К сожалению, я не знаю такой функции. Если его еще нет, было бы интересной задачей создать функцию, которая возвращает матрицу со всеми попарными сравнениями обработок. Контраст считается значимым, если выполняется следующее неравенство

alt text
(источник: statsdirect.com )

где T - статистика критерия Краскела-Уоллиса для k выборок, S ^ 2 - знаменатель статистика T, N - общее число (все ni), Ri - сумма рангов (из всех объединенных выборок) для i-й выборки, а t - квантиль из t-распределения Стьюдента по Nk степеням свободы.

Я знаю, что не особо помог :)
Я тоже жду ответа получше

1
ответ дан 3 December 2019 в 05:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: