Расхождения в надежной анкове, рассчитанной в R с пакетом WRS2, и вручную - PullRequest
0 голосов
/ 29 апреля 2020

Я провел исследование, в котором участники в 2 группах (контрольная и экспериментальная) выполнили три шкалы (NJ, A и D) в два момента времени (T1 и T2). Я запускаю ANCOVA с ответами T2 в качестве моих зависимых переменных, ответами T1 в качестве моих ковариат и Группой в качестве моих независимых переменных (т.е. условие NJ2 ~ NJ1 +, условие A2 ~ A1 + и условие D2 ~ D1 +). Поскольку мои уклоны неоднородны, я использовал функцию ancova из пакета WRS2, чтобы выполнить надежную ANCOVA для каждого.

Поняв, что функция ancova не обеспечивает степени свободы или величины эффекта, я решил попробовать запускать сравнения Yuen вручную, выбирая подмножества моих данных, которые близки к моим интересующим точкам сравнения, вычисляя усеченные средние этих подмножеств и сравнивая эти усеченные средние, используя также функцию yuen из пакета WRS2. На странице 28 виньетки пакета (https://cran.r-project.org/web/packages/WRS2/vignettes/WRS2.pdf) авторы приводят следующую формулу для определения точек данных, которые находятся близко к точке интереса: | Xi - x | ≤ f × ​​MADN, где Xi - значения X, x - точка интереса, f - параметр сглаживания (который может быть отброшен в моем случае, поскольку я установил его на 1), а MADN - медианное абсолютное отклонение X делится на квантиль 0,75 стандартного нормального распределения. Однако использование этой формулы дало разные результаты для каждой из трех моих переменных результата.

1) Для моей переменной NJ я смог воспроизвести результаты функции ancova, округлив MADN от 3,71 до 4, что представляется разумным.

2) Для переменной A Я смог повторить результаты функции ancova, но мне пришлось округлить MADN с 5.93 до 4.

3) Для переменной D округление MADN с 5.93 до 4 дало мне то же самое n значение в качестве ancova для одной из моих групп, но мне пришлось округлить MADN до 3, чтобы получить то же значение n для моей другой группы. Комбинация двух подходов для получения правильных значений n для обеих групп привела к другому значению средней разности, отличному от функции ancova.

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

Мой файл данных доступен здесь , а примеры моего кода доступны ниже:

Для NJ ANCOVA, использующего уровень обрезки .2, сглаживающие значения 1, и сравнение в точках NJ1 = 11, 13, 15, 17 и 19

NJANCOVA <- ancova(data = Data, NJ2 ~ NJ1 + Condition, tr = .2, fr1 = 1, fr2 = 1, pts = c(11, 13, 15, 17, 19))
NJANCOVA

А вот мой код для вычисления тестов вручную:

#Grand median:

NJMedian <- median(Data$NJ1)

# Calculate median absolute deviation:

Data$NJDevs <- abs(Data$NJ1 - NJMedian)
NJMAD <- median(Data$NJDevs)

# Divide by .75 quantile:

NJMADN <- NJMAD/qnorm(.75)

# Determine differences from the point of comparison:

NJDiffs11 <- abs(Data$NJ1 - 11)

# Compare to MADN:

NJ11 <- subset(Data, NJDiffs11 <= round(NJMADN, 0))

# Calculate Yuen's test:

yuen(data = NJ11, NJ2 ~ Condition, tr = .2)

При NJ1 = 11 Например, оба куска кода дают мне n1 = 12, n2 = 16, среднее различие = -2,95, статистические данные теста c = 1,8276 и p = 0,0864.

Для переменной D я использовал D1 = 2, 4 и 6 в качестве точек сравнения.

Например, при D1 = 2 функция ancova дает мне n1 = 21, n2 = 13, среднее различие = 0,7692, статистические данные теста c = 0,6739 и р = 0,5081.

Мои расчеты «вручную», однако, дают мне n1 = 26, n2 = 13, среднюю разницу = 1,5, статистику теста c = 1,3966 и р = 0,11769.

...