3 votos

¿Cómo se relaciona la prueba de Williams en R con glht con mcp establecido en Williams?

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")

enter image description here

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

1voto

NguYen Puntos 33

Vale, entendido. TL;DR:

  1. no es posible hacerlo únicamente a través del contraste Williams en glht . Esto es no el contraste que queremos aquí.
  2. Para una tendencia idealmente monótona, el enfoque de Dunnett es válido (media, SE, estadísticas t) - utiliza el mismo contraste que la prueba de Williams. La diferencia está en los valores críticos utilizados en la prueba. Los valores críticos Los valores críticos de la estadística t de Williams deben proporcionarse externamente. Si se facilitan, los resultados concuerdan idealmente con los resultados de dos funciones que realizan la prueba de Williams que he evaluado.
  3. El contraste de Dunnett debe utilizarse junto con el ajuste "libre" para mayor sensibilidad.
  4. para la tendencia no monótona, el contraste de Dunnett es demasiado simplista y nosotros no se obtienen resultados válidos. Se puede manejar externamente, pero requiere programación adicional y no da ninguna ventaja sobre el uso de la función dedicada.
  5. "Contraste Williams" verifica la tendencia de las respuestas frente a las dosis.
  6. "Prueba Williams" indica el MED.

Ahora, déjame contar la historia, paso a paso Paso 1) Utilicé dos funciones PMCMRplus::williamsTest - más precisa en cuanto al cálculo de los grados de libertad, basada en la regresión isotónica. Utiliza los valores críticos tabulados proporcionados por Williams (sólo para a=0.05) El código fuente puede encontrarse aquí: https://rdrr.io/cran/PMCMRplus/src/R/williamsTest.R

StatCharrms::williamsTest - esta es una función un poco más simple, pero desafortunadamente, el paquete ha sido eliminado de CRAN. Es debido a la dependencia de otro paquete, que no pasa algunos controles de calidad CRAN. Por suerte, el test Williams no depende de él, así que pude usar con seguridad el código, disponible en el paquete Archivo CRAN . Ahora, podría comparar ambas funciones para validar los resultados.

  1. Como la función StatCharrms::williamsTest es más sencilla y fácil de entender, he revisado su código paso a paso para comprender lo que ocurre, es decir, cómo se calculan los estadísticos de prueba, DF, SE y valor p.

  2. Para simplificarlo y centrarme en la idea principal, he creado otro conjunto de datos, con una respuesta perfectamente monótona. Me permitió eludir un montón de código, que se encarga de los casos no monótonos.

Los datos:

structure(list(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), .Label = c("0", 
"10", "20", "50", "100"), class = "factor"), Response = c(2.08715025123701, 
1.13932702656069, 0.613727902326215, 2.12358542318002, 0.240154342642407, 
2.14895910322903, 0.15752374106325, 1.39141334039277, 1.89137724231864, 
-0.335258712554325, 1.49812347783493, 0.988413197051174, 1.77574391664229, 
0.311402064620783, 1.01301366594251, 2.48228400775579, 1.26849016380803, 
1.92319094827512, 0.879105402383558, 0.0706083452852893, 2.68907430915287, 
1.47500884455923, 0.103888611550029, 3.86912259199149, 1.61309118302257, 
0.873916987353586, 3.69528180729257, 2.68813821856926, 2.10037160524839, 
2.5220520133979, 3.3740186581977, 4.79665877645507, 4.52766070850153, 
2.07336940413649, 4.15339849564175, 4.52681366589956, 4.4682609759767, 
1.37568269071579, 3.56464257498472, 5.77963332091796, 4.99679453863953, 
2.49072381935414, 2.53633128811656, 4.69110955231555, 4.02594451442771, 
5.16129056387748, 4.49382666167731, 4.28099936350917, 4.38366184279928, 
4.36625503539133)), .Names = c("Dose", "Response"), row.names = c(NA, 
-50L), class = "data.frame")

enter image description here

  1. He calculado todas las partes necesarias, basándome en el código disponible en el paquete (eliminado) CharmStats:

(Lo siento, sé que este código es feo - Lo he copiado/pegado de las fuentes y simplificado aquí y allá sólo para experimentar)

Vars <- by(df[["Response"]],as.factor(df[["Dose"]]),var,na.rm=TRUE)
S <- sqrt(sum(Vars*(N-1))/(sum(N)-length(N)))
Se <- (S*sqrt(1/N+1/N[1]))[1:{length(N)-1}]
DF=sum(N)-length(N)

Y.tilde <- as.vector(by(df[["Response"]],df[["Dose"]],mean,na.rm=TRUE))
T <- (Y.tilde[1]-Y.tilde)/Se
if (direction=='INCREASING'){
  T<-T*-1
}
#Table look up
K=length(N)-1   
Row=which(DTtable$df==DF)
if (length(Row)==0){  #sets the df to 10000 if the df >= 121
  Row<-119
}
Cols<-1+1:{2*(K-1)}
B<-DTtable[Row,Cols[which(Cols %% 2 == 1)]]
Q<-DTtable[Row,Cols[which(Cols %% 2 == 0)]]

#Calculate t crit   
W=N[1]/N[-c(1,2)]
Tcrit<-unlist(Q-10^(-2)*B*(1-1/W))
QT1<-qt(0.95,DF)    
Tcrit<-c(QT1,Tcrit)
Diff <- Y.tilde[-1] - Y.tilde[1]
T <- Diff/Se

Comparemos los resultados con otra prueba de Williams:

> data.frame(mean=Y.tilde[-1], baseline=Y.tilde[1], Diff, Se, T, Tcrit, MED=T>Tcrit)
       mean baseline       Diff        Se         T    Tcrit   MED
   1.221038 1.145796 0.07524155 0.4639577 0.1621733 1.679427 FALSE
Q2 2.162995 1.145796 1.01719865 0.4639577 2.1924385 1.755000  TRUE
Q3 3.864014 1.145796 2.71821796 0.4639577 5.8587630 1.780000  TRUE
Q4 4.142694 1.145796 2.99689775 0.4639577 6.4594208 1.792000  TRUE
> williamsTest(Response~Dose, data)

    Many-to-one comparisons using Williams trend test

data: Response by Dose
alternative hypothesis: greater
degree of freedom: 45
alpha: 0.05

H0
               t' value t' crit decision
mu1 - ctr == 0    0.162   1.679   accept
mu2 - ctr == 0    2.192   1.757   reject
mu3 - ctr == 0    5.859   1.781   reject
mu4 - ctr == 0    6.459   1.793   reject

OK, casi perfecto acuerdo. Las diferencias provienen de los distintos métodos de cálculo de ambos paquetes. El segundo es mucho más avanzado. Nota: las etiquetas son opuestas pero coherentes - he utilizado MED, que se refleja "aceptar/rechazar" (BTW, debería ser "no rechazar" en lugar de "aceptar").

  1. Utilicemos glht con contraste de Dunnett (todos vs. línea base) y comprobemos, si los SEs y t son los mismos:

    (dun <- summary(glht(aov(Response~Dose, data=data), linfct=mcp(Dose="Dunnett"),alternative="greater")))

    Pruebas simultáneas de hipótesis lineales generales

    Comparaciones múltiples de medias: Contrastes de Dunnett

    Ajuste: aov(fórmula = Respuesta ~ Dosis, datos = datos)

    L Estimación Error estándar Valor t Pr(>t)
    10 - 0 <= 0 0.07524 0.46396 0.162 0.7429
    20 - 0 <= 0 1.01720 0.46396 2.192 0.0533 .
    50 - 0 <= 0 2.71822 0.46396 5.859 <0.001 ***

    100 - 0 <= 0 2.99690 0.46396 6.459 <0.001 ***

    Códigos signif.: 0 ' ' 0.001 ' ' 0.01 ' ' 0.05 '.' 0.1 ' ' 1 (Valores p ajustados comunicados -- método de un solo paso)

Perfecto acuerdo. Así, en lugar de calcular todo manualmente, podríamos utilizar los resultados de glht junto con los valores críticos calculados anteriormente y obtener los valores correctos.

Pero - no tiene mucho sentido, ya que tenemos la función williamsTest() lista para funcionar. También existe su homólogo no paramétrico, shirleyWilliamsTest().

Cuando se trata de los datos originales que publiqué anteriormente (sacados de algún libro), la cosa se complica. Parece que el test busca un "punto de cambio" y lo divide en rangos con tendencia consistente (mira los valores t y relaciónalo con la dosis y el gráfico de mi primer post). Tengo que investigarlo más a fondo, cuando encuentre algo de tiempo.

> williamsTest(BUN~Dose, data2)

    Many-to-one comparisons using Williams trend test

data: BUN by 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
---
> NewwilliamsTest(data2, resp = "BUN", trt = "Dose",direction = "increasing")
   Dose Y.Tilde    Y0 Se.Diff DF  Will TCrit Signif
Q5 1000   17.54 14.74  0.9422 54 2.967 1.792      *
Q4  500   17.54 14.74  0.9422 54 2.967 1.785      *
Q3  250   16.93 14.74  0.9422 54 2.328 1.773      *
Q2  125   16.93 14.74  0.9422 54 2.328 1.749      *
   62.5   16.93 14.74  0.9422 54 2.328 1.674      *

Por último, ¿qué hace el contraste Williams en el ghlt? Evalúa la tendencia de las respuestas. No te dice las dosis mínimas efectivas. Vale la pena señalar que existen herramientas avanzadas basadas en modelos disponibles en R, almacenadas en el paquete DoseFinding.

Por lo tanto, si su objetivo es encontrar el MED en lo monótono, utilice la prueba de Williams, de lo contrario - Dunnett. Si desea confirmar la tendencia en la dosis-respuesta, el contraste de Williams (y Marcus) es el camino a seguir.

¿Cuál es la ventaja de Williams sobre Dunnett? En el ajuste por defecto (para Dunnett), Williams es más eficaz en caso de tendencia monótona que Dunnett. Esto se debe a que el procedimiento Dunnett utiliza un ajuste de un solo paso (el mismo valor crítico para todas las pruebas basado en la distribución conjunta normal/t). Si especificamos "libre", emplea un método escalonado, utilizando diferentes valores críticos para cada dosis, que es más sensible y da resultados similares a la prueba Williams.

> williamsTest(Response~Dose, data)

    Many-to-one comparisons using Williams trend test

data: Response by Dose
alternative hypothesis: greater
degree of freedom: 45
alpha: 0.05

H0
               t' value t' crit decision
mu1 - ctr == 0    0.162   1.679   accept
mu2 - ctr == 0    2.192   1.757   reject
mu3 - ctr == 0    5.859   1.781   reject
mu4 - ctr == 0    6.459   1.793   reject
---
> (dun <- summary(glht(aov(Response~Dose, data=data), linfct=mcp(Dose="Dunnett"),alternative="greater"), test=adjusted("free")))

     Simultaneous Tests for General Linear Hypotheses

Multiple Comparisons of Means: Dunnett Contrasts

Fit: aov(formula = Response ~ Dose, data = data)

Linear Hypotheses:
             Estimate Std. Error t value   Pr(>t)    
10 - 0 <= 0   0.07524    0.46396   0.162   0.4359    
20 - 0 <= 0   1.01720    0.46396   2.192   0.0307 *  
50 - 0 <= 0   2.71822    0.46396   5.859 5.92e-07 ***
100 - 0 <= 0  2.99690    0.46396   6.459 6.96e-08 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Adjusted p values reported -- free method)

> (dun <- summary(glht(aov(Response~Dose, data=data), linfct=mcp(Dose="Dunnett"),alternative="greater"), test=adjusted("single-step")))

     Simultaneous Tests for General Linear Hypotheses

Multiple Comparisons of Means: Dunnett Contrasts

Fit: aov(formula = Response ~ Dose, data = data)

Linear Hypotheses:
             Estimate Std. Error t value Pr(>t)    
10 - 0 <= 0   0.07524    0.46396   0.162 0.7429    
20 - 0 <= 0   1.01720    0.46396   2.192 0.0533 .  
50 - 0 <= 0   2.71822    0.46396   5.859 <0.001 ***
100 - 0 <= 0  2.99690    0.46396   6.459 <0.001 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Adjusted p values reported -- single-step method)

Por último, pero no por ello menos importante, el enfoque más sencillo, basado en el modelo de revestimiento, ofrece un resultado coherente para delta=1:

> MCPMod(data, list(linear = NULL), alpha = 0.05, pVal = TRUE, clinRel =1)
MCPMod
PoC (alpha = 0.05, one-sided): yes 
Model with highest t-statistic: linear 
Model used for dose estimation: linear 
Dose estimate: 
MED2,80% 
      31

0voto

Sal Mangiafico Puntos 26

Este no es mi campo, así que toma cualquier consejo que doy con un grano de sal.

Este artículo sugiere que la prueba de Williams asume la monotonicidad de las dosis crecientes. Es decir, que cada dosis tiene un resultado al menos tan alto como la dosis anterior. Si este es de hecho un supuesto de la prueba, sus datos no cumplen este supuesto.

Otro enfoque es simplemente definir MED como la dosis mínima en la que la media de la respuesta es significativamente mayor que la del control. En este caso, se pueden utilizar contrastes de Dunnett e identificar la MED por inspección.

summary(glht(m, linfct=mcp(Dose="Dunnett"), alternative="greater"))

   ### Simultaneous Tests for General Linear Hypotheses
   ###     
   ###     Multiple Comparisons of Means: Dunnett Contrasts
   ###     
   ###     Linear Hypotheses:
   ###                   Estimate Std. Error t value Pr(>t)    
   ###     62.5 - 0 <= 0   2.2000     0.9422   2.335 0.0453 *  
   ###     125 - 0 <= 0    2.5900     0.9422   2.749 0.0168 *  
   ###     250 - 0 <= 0    1.7900     0.9422   1.900 0.1103    
   ###     500 - 0 <= 0    5.4800     0.9422   5.816 <0.001 ***
   ###     1000 - 0 <= 0   0.1100     0.9422   0.117 0.7964
   ###
   ### (Adjusted p values reported -- single-step method)

Obsérvese también que este enfoque facilita la identificación de un tratamiento con una diferencia mínima en la respuesta. Por ejemplo, si quisiéramos un aumento significativo de la respuesta con una diferencia media de al menos 3, sólo el tratamiento 500 cumpliría este requisito.

Tenga en cuenta que el p método de ajuste de valor puede marcar la diferencia. Utilizando el emmeans con su ajuste dunnettx, el paquete t son similares, pero los valores p difieren.

library(emmeans)

emmeans(m, specs = trt.vs.ctrl ~ Dose)

   ###     $contrasts
   ###      contrast estimate    SE df t.ratio p.value
   ###      62.5 - 0     2.20 0.942 54 2.335   0.0937 
   ###      125 - 0      2.59 0.942 54 2.749   0.0350 
   ###      250 - 0      1.79 0.942 54 1.900   0.2256 
   ###      500 - 0      5.48 0.942 54 5.816   <.0001 
   ###     1000 - 0      0.11 0.942 54 0.117   0.9990 
   ###    
   ###     P value adjustment: dunnettx method for 5 tests 

Dicho esto, si el objetivo es sólo encontrar el MED, en realidad se prueban menos hipótesis, y una p se puede ajustar el valor. Es decir, si Tratamiento 1 se compara con Controlar y no es diferente, y entonces Tratamiento 2 se compara con Controlar y es diferente, entonces sólo se han comprobado dos hipótesis y el resto pueden ignorarse. Sin embargo, es posible que aún se quieran hacer todas las pruebas en las comparaciones de Dunnett, ya que es probable que los resultados sean de interés.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X