¿Son estas fórmulas para transformar P, LSD, MSD, HSD, CI, a SE como una estimación exacta o inflada / conservadora de correcta?


11

Antecedentes

Estoy realizando un metanálisis que incluye datos publicados anteriormente. A menudo, las diferencias entre tratamientos se informan con valores de P, diferencias menos significativas (LSD) y otras estadísticas, pero no proporcionan una estimación directa de la varianza.

En el contexto del modelo que estoy usando, una sobreestimación de la varianza está bien.

Problema

Aquí hay una lista de transformaciones a donde (Saville 2003) que estoy considerando, comentarios apreciados; a continuación, supongo que entonces y las variables se distribuyen normalmente a menos que se indique lo contrario:SESE=MSE/n α=0.051α/2=0.975

Preguntas:

  1. dado , tratamiento significa yPnX¯1X¯2

    SE=X¯1X¯2t(1P2,2n2)2/n
  2. dado LSD (Rosenberg 2004) , , , donde es el número de bloques, y por defecto para RCBD αnbbn=b

    SE=LSDt(0.975,n)2bn
  3. MSD dada (diferencia mínima significativa) (Wang 2000) , , , df =nα2n2

    SE=MSDt(0.975,2n2)2
  4. dado un intervalo de confianza del 95% (Saville 2003) (medido desde el límite de confianza medio a superior o inferior), yαn

    SE=CIt(α/2,n)
  5. dado el HSD de Tukey, , donde es la 'estadística de rango estudiado',nq

    SE=HSDq(0.975,n)

Una función R para encapsular estas ecuaciones:

  1. Datos de ejemplo:

    data <- data.frame(Y=rep(1,5), 
                       stat=rep(1,5), 
                       n=rep(4,5), 
                       statname=c('SD', 'MSE', 'LSD', 'HSD', 'MSD') 
    
  2. Ejemplo de uso:

    transformstats(data)    
    
  3. La transformstatsfunción:

    transformstats <- function(data) {
      ## Transformation of stats to SE
      ## transform SD to SE
      if ("SD" %in% data$statname) {
        sdi <- which(data$statname == "SD")
        data$stat[sdi] <- data$stat[sdi] / sqrt(data$n[sdi])
        data$statname[sdi] <- "SE"
          }
      ## transform MSE to SE
      if ("MSE" %in% data$statname) {
        msei <- which(data$statname == "MSE")
        data$stat[msei] <- sqrt (data$stat[msei]/data$n[msei])
        data$statname[msei] <- "SE"
      }
      ## 95%CI measured from mean to upper or lower CI
      ## SE = CI/t
      if ("95%CI" %in% data$statname) {
        cii <- which(data$statname == '95%CI')
        data$stat[cii] <- data$stat[cii]/qt(0.975,data$n[cii])
        data$statname[cii] <- "SE"
      }
      ## Fisher's Least Significant Difference (LSD)
      ## conservatively assume no within block replication
      if ("LSD" %in% data$statname) {
        lsdi <- which(data$statname == "LSD")
        data$stat[lsdi] <- data$stat[lsdi] / (qt(0.975,data$n[lsdi]) * sqrt( (2 * data$n[lsdi])))
        data$statname[lsdi] <- "SE"
      }
      ## Tukey's Honestly Significant Difference (HSD),
      ## conservatively assuming 3 groups being tested so df =2
      if ("HSD" %in% data$statname) {
        hsdi <- which(data$statname == "HSD" & data$n > 1)
        data$stat[hsdi] <- data$stat[hsdi] / (qtukey(0.975, data$n[lsdi], df = 2))
        data$statname[hsdi] <- "SE"
      }              
      ## MSD Minimum Squared Difference
      ## MSD = t_{\alpha/2, 2n-2}*SD*sqrt(2/n)
      ## SE  = MSD*n/(t*sqrt(2))
      if ("MSD" %in% data$statname) {
        msdi <- which(data$statname == "MSD")
        data$stat[msdi] <- data$stat[msdi] * data$n[msdi] / (qt(0.975,2*data$n[lsdi]-2)*sqrt(2))
        data$statname[msdi] <- "SE"
      }
      if (FALSE %in% c('SE','none') %in% data$statname) {
        print(paste(trait, ': ERROR!!! data contains untransformed statistics'))
      }
      return(data)
    }
    

Referencias

Saville 2003 Can J. Exptl Psych. (pdf)

Rosenberg et al 2004 (enlace)

Wang y col. 2000 Env. Tox. y Chem 19 (1): 113-117 (enlace)


No estoy seguro de si la mayoría de los CI se calculan realmente mediante valores t o más bien mediante valores z. Sin embargo, en ns más grandes (> 30) esto no debería hacer mucha diferencia.
Henrik

@Henrik para pequeña , la estadística t es apropiada, y como usted dijo, a medida que aumenta, t se aproxima a Z. Vea también math.stackexchange.com/q/23246/3733nn
David LeBauer

Respuestas:


7

Su ecuación de LSD se ve bien. Si desea volver a la varianza y tiene una estadística resumida que dice algo sobre la variabilidad o la importancia de un efecto, casi siempre puede volver a la varianza: solo necesita conocer la fórmula. Por ejemplo, en su ecuación para LSD que desea resolver para MSE, MSE = (LSD / t _) ^ 2/2 * b


Para MSD, si MSD = t_ {alpha, 2n-2} * sd sqrt (2 / n), ¿SE = MSD n / (t_ {alpha, n} * sqrt (2)) correcto?
David LeBauer

7

Solo puedo estar de acuerdo con John. Además, quizás este artículo de David Saville lo ayude con alguna fórmula para recalcular las medidas de variabilidad de LSDs et al .:
Saville DJ (2003). Estadísticas básicas y la inconsistencia de los procedimientos de comparación múltiple. Canadian Journal of Experimental Psychology, 57, 167–175

ACTUALIZACIÓN:
Si está buscando más fórmulas para convertir entre varios tamaños de efectos, los libros sobre metanálisis deberían proporcionar muchos de estos. Sin embargo, no soy un experto en esta área y no puedo recomendar uno.
Pero, recuerdo que el libro de Rosenthal y Rosnow una vez ayudó con alguna fórmula:
Fundamentos de la investigación conductual: métodos y análisis de datos
Además, he escuchado muchas cosas buenas sobre las fórmulas en este libro de Rosenthal, Rosnow y Rubin (aunque Nunca lo he usado):
Contrastes y tamaños de efecto en la investigación conductual: un enfoque correlacional (definitivamente deberías probarlo si una biblioteca cercana lo tiene).

Si esto no es suficiente, quizás haga otra pregunta en la literatura para convertir los tamaños del efecto para los metanálisis. Quizás alguien más metido en el metanálisis tiene recomendaciones más sólidas.


0

Puede considerar probar el paquete R compute.es . Hay varias funciones para derivar estimaciones del tamaño del efecto y la varianza del tamaño del efecto.


es un buen paquete que ha escrito, pero estoy interesado en estimar la muestra SE, y estas funciones parecen dar estimaciones de varianza para los tamaños del efecto del metanálisis, mientras que me gustaría inferir la varianza de la población (por ejemplo, escalada a los datos originales) ¿Podría dar un ejemplo de cómo las funciones en el compute.espaquete podrían usarse para replicar las ecuaciones y funciones que he escrito anteriormente?
David LeBauer
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.