0

我进行了一项研究,其中两组(对照组和实验组)的参与者在两个时间点(T1 和 T2)完成了三个量表(NJ、A 和 D)。我正在运行 ANCOVA,其中 T2 响应作为我的因变量,T1 响应作为我的协变量,组作为我的自变量(即 NJ2 ~ NJ1 + 条件、A2 ~ A1 + 条件和 D2 ~ D1 + 条件)。由于我的斜率是异构的,我使用 WRS2 包中的 ancova 函数对每个斜率执行稳健的 ANCOVA。

在意识到 ancova 函数不提供自由度或效果大小后,我决定尝试手动运行 Yuen 比较,方法是选择靠近我感兴趣的比较点的数据子集,计算这些子集的修剪均值,并使用 WRS2 包中的 yuen 函数比较那些修剪后的方法。在包小插图的第 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 变量,我能够通过将 MADN 从 3.71 舍入到 4 来复制 ancova 函数的结果,这似乎是合理的。

2) 对于 A 变量,我能够复制 ancova 函数的结果,但必须将 MADN 从 5.93 舍入到 4。

3) 对于 D 变量,将 MADN 从 5.93 向下舍入到 4 给我的一个组的 n 值与 ancova 相同,但我必须将 MADN 向下舍入到 3 才能为我的另一组获得相同的 n 值。但是,将这两种方法结合起来为两组获得正确的 n 值会产生与 ancova 函数不同的平均差值。

有谁知道为什么在如何选择数据子集方面,ancova 函数与我的手动计算之间存在差异?我缺少功能“黑盒”中的某些内容吗?

我的数据文件可在此处获得,我的代码示例可在下面获得:

对于 NJ ANCOVA,使用 0.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、检验统计量 = 1.8276 和 p = 0.0864。

对于 D 变量,我使用 D1 = 2、4 和 6 作为比较点。

例如,在 D1 = 2 时,ancova 函数给我 n1 = 21,n2 = 13,均值差 = .7692,检验统计量 = .6739,p = .5081。

然而,我的“手动”计算得出 n1 = 26、n2 = 13、均值差 = 1.5、检验统计量 = 1.3966 和 p = .17692。

4

0 回答 0