我正在做一项涉及多项等效性测试的研究。是否有报告此类结果的标准表格?
更详细的编辑:这是一项有 5 个时间点的纵向研究。我们的假设是,从基线到 1 个月有变化,然后是稳定。最初,我想到了一个多级模型,但除了时间之外没有自变量。所以我决定在基线和 1 个月之间进行 t 检验,并在 1 和 3 个月、3 和 6、6 和 9 以及 9 和 12 之间进行 TOST 测试。
还测试了5个区域。
所以,我需要一种方法将所有这些测试总结在一个表格中
我正在做一项涉及多项等效性测试的研究。是否有报告此类结果的标准表格?
更详细的编辑:这是一项有 5 个时间点的纵向研究。我们的假设是,从基线到 1 个月有变化,然后是稳定。最初,我想到了一个多级模型,但除了时间之外没有自变量。所以我决定在基线和 1 个月之间进行 t 检验,并在 1 和 3 个月、3 和 6、6 和 9 以及 9 和 12 之间进行 TOST 测试。
还测试了5个区域。
所以,我需要一种方法将所有这些测试总结在一个表格中
回归表表示很容易修改以适应等价测试,包括相关性测试- 您可以根据差异测试(测试)和等价测试(测试)。例如(假设您在回归上下文中呈现多个测试,因此是):
您可以从等效性测试中呈现单边测试统计量(和)及其相关的p值(和),此外还可以为测试提供测试统计量和p值()区别。
此外,如果它因测试而异,您可能希望包含一列用于定义等效性(我使用表示以我的度量单位定义的等效/相关性阈值,并表示以单位定义的此阈值我的测试统计)。如果您对所有测试使用一致定义的等效/相关性阈值,您可能会在表格的脚注中指出这一点。
您还可以通过包含列来明确阐明等价和差异检验的拒绝决定,从而促进解释。包括一个相关性测试列(结合我在此处说明的结果)也可能有助于解释。
当然,也可以使用这种格式来呈现独立的测试,并呈现不同类型的 TOST 测试统计(例如z测试统计,如与非参数测试一起使用的那些,精确的二项式测试统计等)。
我认为可以在单个线性混合模型中进行所有这些多重等价测试。假设您在更改发生后有多个 (2+) 测量,那么将这些多个测试作为单个重复测量模型的一部分呈现是很自然的。
特别是,可以在连续步骤之间定义指标变量,然后检查它们的重要性;基本上一次性进行多次我认为对于每个主题具有简单截距和斜率的随机结构就可以了。我不认为除了时间之外没有自变量是结构性问题。如果有的话,我认为它可以进一步简化问题。
根据我的理解,给定一个起始值(),在从第一个测量周期到第二个测量周期时val0会发生一些事情( )。step0对于随后的测量内时间段 ( step1, step2, step3) 没有任何反应。假设测量误差恒定。所以有这样的东西:
我使用以下代码创建此示例:
set.seed(123)
sampleTimes <- seq(0,1, length.out = 5);
N = 10^2;
val0 <- rnorm(N, mean = 0, sd = 5); # Starting values
slopeAt0 <- rnorm( N, mean = -10, sd = 5); # Effect kicks in
val1to5 <- val0 + slopeAt0 * diff(sampleTimes[1:2]) # so val0 is +2.5 higher
trueMeans <- cbind( val0, t(matrix(rep(val1to5,4), 4, byrow = TRUE)))
obsSample <- trueMeans + rnorm(N*5)
subject <- (1:N)
matplot(sampleTimes, t(obsSample),type = 'l', ylab= 'Obs. Sample') # Visualise
并为从一个测量点到下一个测量点的周期定义一系列指标变量。请注意,我没有定义“最后一步” step4;我们不知道在的最后一个测量点之后会发生什么。
Q <- data.frame( t = rep(sampleTimes, times = N),
ID = rep(subject, each = 5), reads = as.vector(t(obsSample)),
step0 = rep(c(1,0,0,0,0), times = N),
step1 = rep(c(0,1,0,0,0), times = N),
step2 = rep(c(0,0,1,0,0), times = N),
step3 = rep(c(0,0,0,1,0), times = N))
使用这种设计,拟合 LME 并检查stepX变量是否具有统计显着性是一项相对简单的任务。截距和斜率将吸收任何特定于主题的变化,并直接引导该模型。也可以使用原始 LME
library(lme4)
m1 <- lmer(reads ~ step0 + step1 + step2 + step3 + (t+1|ID), Q)
summary(m1)
confZ = confint(m1, method='boot', nsim= 1000)
print(confZ)
# Computing bootstrap confidence intervals ...
# 2.5 % 97.5 %
# .sig01 3.7653500 5.0961341
# .sig02 -0.2043878 0.9843421
# .sig03 0.3396433 1.2702728
# .sigma 0.9869698 1.1579640
# (Intercept) -3.2169570 -1.2982469
# step0 2.5430254 3.2526163
# step1 -0.2465836 0.4475912
# step2 -0.0728649 0.5659132
# step3 -0.1625806 0.4023341
我认为结果非常合理,即使对于使用的样本量适中()也是如此。为了安全起见,我加入了一个随机斜率,这可能是多余的( : 期间发生了一些事情。sig02step0