在发现显著趋势后,依次使用Williams试验确定最小有效剂量(使用R中的multicomp包)

  • 本文关键字:有效 使用 multicomp 中的 发现 Williams
  • 更新时间 :
  • 英文 :


假设我正在使用multcomp包对R (Bretz et al.(2011))进行剂量-反应分析。大厅/CRC)。(模拟)数据如下:

dat <- data.frame(Group = rep(c(0, 0.3, 0.7, 1.2, 1.8, 2.5), each = 5), 
                Response = c(rnorm(5, 20, 1.2),
                             rnorm(5, 19.5, 1.2),
                             rnorm(5, 19, 1.2),
                             rnorm(5, 15, 1.2),
                             rnorm(5, 12, 1.2),
                             rnorm(5, 11, 1.2) 
                             )
              )

作为第一步,我想确定反应是否有下降趋势(即平均反应水平是否随着剂量的增加而下降)。这可以用一种特别有效的试验来完成——威廉姆斯试验(Williams, 1971):几种剂量水平与零剂量对照时治疗手段差异的试验。生物27:103 - 117)。下面是R代码:

dat$Group = factor(dat$Group)
M <- lm(Response ~ Group, data = dat)
trend = glht(M, linfct = mcp(Group = "Williams"), alternative = "less")
summary(trend)
     Simultaneous Tests for General Linear Hypotheses
Multiple Comparisons of Means: Williams Contrasts
Fit: lm(formula = Response ~ Group, data = dat)
Linear Hypotheses:
         Estimate Std. Error t value   Pr(<t)
C 1 >= 0  -7.8117     0.7587 -10.296  < 1e-08
C 2 >= 0  -7.3490     0.6571 -11.184  < 1e-08
C 3 >= 0  -6.5282     0.6195 -10.538  < 1e-08
C 4 >= 0  -5.1096     0.5998  -8.519  < 1e-08
C 5 >= 0  -4.3293     0.5877  -7.366 3.01e-08
(Adjusted p values reported -- single-step method)

在测试的对比中,最低的p值为<0.001,这表明有强有力的证据表明响应呈单调下降趋势。很好,这是一条重要的信息。

然而,作为下一步,我想确定所谓的"最小有效剂量(MED)",即对我的反应变量有显著影响的最低剂量水平。在他的原始出版物中,Williams建议按顺序应用一些t样检验(即将第二高剂量与对照进行比较,然后将第三高剂量与对照进行比较,依此类推),并在第一个不显著的结果时停止程序。前面的显著性结果与MED相对应。不幸的是,Williams提出的检验统计量虽然与t统计量相似,但在无剂量反应的零假设下并不遵循标准的t分布。在他的原论文中,作者确实为他的检验统计量列出了一些临界值。

然而,我想知道是否有一个R实现可用于这样的顺序Williams测试。是否可以使用multcomp包(例如,通过以某种方式指定对比度)来实现?我在网上花了很长时间试图找到答案,但不得不放弃。

您可以使用Dunnett对比来查找MED。

或者是"step-up Williams"对比:

# step-up Williams contrast matrix
n <- tapply(dat$Group, dat$Group, length)
k <- length(n)
CM <- c()
for (i in 1:(k - 1)) {
  help <- c(-1, n[2:(i + 1)] / sum(n[2:(i + 1)]), rep(0 , k - i - 1))
  CM <- rbind(CM, help)
}
rownames(CM) <- paste("C", 1:nrow(CM))
CM
# supply to glht()
summary(glht(M, linfct = mcp(Group = CM), alternative = "less"))
     Simultaneous Tests for General Linear Hypotheses
Multiple Comparisons of Means: User-defined Contrasts

Fit: lm(formula = Response ~ Group, data = dat)
Linear Hypotheses:
         Estimate Std. Error t value Pr(<t)    
C 1 >= 0   0.1535     0.7630   0.201 0.7214    
C 2 >= 0  -0.2032     0.6608  -0.308 0.5259    
C 3 >= 0  -1.5409     0.6230  -2.473 0.0219 *  
C 4 >= 0  -3.2164     0.6032  -5.332 <0.001 ***
C 5 >= 0  -4.2203     0.5910  -7.141 <0.001 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Adjusted p values reported -- single-step method)

最新更新