Mi objetivo es simple: encontrar la dosis mínima eficaz. Quiero utilizar el procedimiento Williams, para decir a partir de la cual se inicia. Parece que hay diferentes enfoques, 1) método de contrastes a través de glht, de la que tengo que elegir el menor p-valor para comprobar si existe la tendencia (¡supongo que sí!), 2) Williams test, que me da p-valor por cada dosis. Ambos métodos difieren totalmente en t, p-valores, sin embargo ambos se refieren a "Williams".
¿Significa esto que el propio "Williams" se refiere a un contraste para la tendencia (monótona), y el valor p mínimo es para la tendencia, mientras que la "prueba Williams" también ajusta los valores p de acuerdo con su algoritmo? Estoy totalmente perdido.
Los datos:
structure(list(BUN = c(15, 15.2, 14.9, 15.4, 16.8, 14.1, 14.9,
14.5, 13.7, 12.9, 15.8, 16.6, 12.7, 15.4, 14, 20.8, 19.1, 18.7,
18.8, 17.5, 21.9, 17.5, 21.3, 20.4, 18.2, 15.4, 15.2, 13, 14.7,
15.7, 15.7, 13.4, 15.1, 14.2, 15.2, 17.9, 18.2, 21.8, 18.2, 15.6,
22.3, 18.6, 22, 19.9, 19.6, 21, 21.7, 19.7, 18.8, 18.6, 14.9,
15.2, 15.2, 12.4, 13.7, 14.2, 15, 14.5, 16.3, 17.1), Dose = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L), .Label = c("0",
"62.5", "125", "250", "500", "1000"), class = "factor")), .Names = c("BUN",
"Dose"), row.names = c(NA, -60L), class = "data.frame")
El modelo:
m<-lm(BUN~Dose, data=data);
Primero: Prueba Williams
> williamsTest(data$BUN, data$Dose, alternative = "greater")
Many-to-one comparisons using Williams trend test
data: data$BUN and data$Dose
alternative hypothesis: greater
degree of freedom: 54
alpha: 0.05
H0
t' value t' crit decision
mu1 - ctr == 0 2.328 1.674 reject
mu2 - ctr == 0 2.328 1.750 reject
mu3 - ctr == 0 2.328 1.774 reject
mu4 - ctr == 0 2.967 1.786 reject
mu5 - ctr == 0 2.967 1.793 reject
Bien, ahora el modelo no paramétrico de Shirley-Williams para verificar
> shirleyWilliamsTest(data$BUN, data$Dose, alternative = "greater")
Many-to-one comparisons using Shirley-Williams test
data: data$BUN and data$Dose
alternative hypothesis: greater
degree of freedom: Inf
alpha: 0.05
H0
t' value t' crit decision
mu1 - ctr == 0 2.156 1.645 reject
mu2 - ctr == 0 2.275 1.716 reject
mu3 - ctr == 0 2.169 1.739 reject
mu4 - ctr == 0 4.489 1.750 reject
mu5 - ctr == 0 2.303 1.756 reject
Vale, algo parecido. Así que el MED es el primero. OK. Ahora cambia a glht
> summary(glht(m, linfct=mcp(Dose="Williams"),alternative="greater"))
Simultaneous Tests for General Linear Hypotheses
Multiple Comparisons of Means: Williams Contrasts
Fit: lm(formula = BUN ~ Dose, data = data)
Linear Hypotheses:
Estimate Std. Error t value Pr(>t)
C 1 <= 0 0.1100 0.9422 0.117 0.60256
C 2 <= 0 2.7950 0.8159 3.426 0.00147 **
C 3 <= 0 2.4600 0.7693 3.198 0.00266 **
C 4 <= 0 2.4925 0.7448 3.346 0.00146 **
C 5 <= 0 2.4340 0.7298 3.335 0.00234 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Adjusted p values reported -- single-step method)
Valores t completamente diferentes. No sé cómo interpretar el resultado. El valor p más pequeño es 0,00146, así que supongo que hay una tendencia (¿a la baja?). La primera dosis no parece el MED.
Este tema me dice que utilice un método diferente: https://stackoverflow.com/questions/23760401/sequential-use-of-the-williams-test-to-determine-the-minimum-effective-dose-afte
Vale, vamos a comprobarlo:
> n <- tapply(data$Dose, data$Dose, 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
62.5
C 1 -1 1.0000000 0.0000000 0.0000000 0.00 0.0
C 2 -1 0.5000000 0.5000000 0.0000000 0.00 0.0
C 3 -1 0.3333333 0.3333333 0.3333333 0.00 0.0
C 4 -1 0.2500000 0.2500000 0.2500000 0.25 0.0
C 5 -1 0.2000000 0.2000000 0.2000000 0.20 0.2
> summary(glht(m, linfct = mcp(Dose = CM), alternative = "greater"))
Simultaneous Tests for General Linear Hypotheses
Multiple Comparisons of Means: User-defined Contrasts
Fit: lm(formula = BUN ~ Dose, data = data)
Linear Hypotheses:
Estimate Std. Error t value Pr(>t)
C 1 <= 0 2.2000 0.9422 2.335 0.02449 *
C 2 <= 0 2.3950 0.8159 2.935 0.00569 **
C 3 <= 0 2.1933 0.7693 2.851 0.00691 **
C 4 <= 0 3.0150 0.7448 4.048 < 0.001 ***
C 5 <= 0 2.4340 0.7298 3.335 0.00221 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Adjusted p values reported -- single-step method)
Ahora se parece un poco al shirleyWilliamsTest en términos de la estadística t. La primera dosis parece ser el MED. Pero, ¿es correcto este algoritmo?
OK, la última comprobación - test de dos caras entre el shirleyWilliamsTest y el glht:
> shirleyWilliamsTest(data$BUN, data$Dose, alternative = "two.sided")
Pairwise comparisons using Shirley-Williams test
data: data$BUN and data$Dose
ctr
mu1 0.031
mu2 0.015
mu3 0.019
mu4 <0.0000000000000002
mu5 0.013
P value adjustment method: boot
alternative hypothesis: two.sided
Warning message:
In shirleyWilliamsTest.default(data$BUN, data$Dose, alternative = "two.sided") :
As alternative is 'two.sided', method was set to 'boot'.
> summary(glht(m, linfct = mcp(Dose = CM), alternative = "two.sided"))
Simultaneous Tests for General Linear Hypotheses
Multiple Comparisons of Means: User-defined Contrasts
Fit: lm(formula = BUN ~ Dose, data = data)
Linear Hypotheses:
Estimate Std. Error t value Pr(>|t|)
C 1 == 0 2.2000 0.9422 2.335 0.04860 *
C 2 == 0 2.3950 0.8159 2.935 0.01125 *
C 3 == 0 2.1933 0.7693 2.851 0.01427 *
C 4 == 0 3.0150 0.7448 4.048 < 0.001 ***
C 5 == 0 2.4340 0.7298 3.335 0.00401 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Adjusted p values reported -- single-step method)
OK, ambos coinciden en la magnitud de orden, pero los valores son diferentes. Cuando pongo la Dosis en "Williams", devuelve completamente algo diferente.
¿Alguien sabe cómo conseguir el MED en R FIABLEMENTE?
¿Tengo que ajustar adicionalmente los valores p? Entiendo que el contraste es sólo una forma de comparación, pero en realidad hay varias. ¿Cuál debo utilizar? ¿Cómo se corresponde con los valores p del procedimiento original de Williams?
EDIT: Encontré la respuesta en este libro - lo que hace glht tiene un poco en común con el procedimiento original de Williams, que es el estándar de la industria en toxicología. Lo que glht ofrece es de poca importancia para la industria, por desgracia: https://books.google.pl/books?id=dT1jDwAAQBAJ&lpg=PT144&ots=yIX6dITHO_&dq=%22williamsTest%22%20glht%20R&hl=pl&pg=PT144#v=onepage&q=%22williamsTest%22%20glht%20R&f=false