Sono corrette queste formule per trasformare P, LSD, MSD, HSD, CI, in SE come stima esatta o gonfiata / conservativa di ?


11

sfondo

Sto conducendo una meta-analisi che include dati precedentemente pubblicati. Spesso, le differenze tra i trattamenti sono riportate con valori di P, differenze meno significative (LSD) e altre statistiche ma non forniscono una stima diretta della varianza.

Nel contesto del modello che sto usando, una sopravvalutazione della varianza va bene.

Problema

Ecco un elenco di trasformazioni in dove (Saville 2003) che sto prendendo in considerazione, feedback apprezzato; sotto, presumo che quindi e le variabili sono normalmente distribuite se non diversamente indicato:S E = SE α=0,051- α / 2=0,975SE=MSE/n α=0.051α/2=0.975

Domande:

  1. dato , e trattamento significa en ˉ X 1 ˉ X 2 S E = ˉ X 1 - ˉ X 2PnX¯1X¯2

    SE=X¯1X¯2t(1P2,2n2)2/n
  2. dato LSD (Rosenberg 2004) , , , dove è il numero di blocchi e per impostazione predefinita per RCBD αnbbn=b

    SE=LSDt(0.975,n)2bn
  3. dato MSD (differenza significativa minima) (Wang 2000) , , , df =nα2n2

    SE=MSDt(0.975,2n2)2
  4. dato un intervallo di confidenza al 95% (Saville 2003) (misurato dalla media al limite di confidenza superiore o inferiore), eαn

    SE=CIt(α/2,n)
  5. dato l'HSD di Tukey, , dove è la "statistica dell'intervallo studentizzato",nq

    SE=HSDq(0.975,n)

Una funzione R per incapsulare queste equazioni:

  1. Dati di esempio:

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

    transformstats(data)    
    
  3. La transformstatsfunzione:

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

Riferimenti

Saville 2003 Can J. Exptl Psych. (PDF)

Rosenberg et al 2004 (link)

Wang et al. 2000 Env. Tox. e Chem 19 (1): 113-117 (link)


Non sono sicuro che la maggior parte degli EC sia realmente calcolata tramite valori t o piuttosto tramite valori z. Tuttavia, su ns più grandi (> 30) questo non dovrebbe fare molta differenza.
Henrik,

@Henrik per la piccola , la statistica t è appropriata e, come hai detto, all'aumentare di , t si avvicina a Z. Vedi anche math.stackexchange.com/q/23246/3733nnn
David LeBauer,

Risposte:


7

La tua equazione LSD sembra a posto. Se vuoi tornare alla varianza e hai una statistica riassuntiva che dice qualcosa sulla variabilità o sul significato di un effetto, puoi quasi sempre tornare alla varianza, devi solo conoscere la formula. Ad esempio, nella tua equazione per LSD che vuoi risolvere per MSE, MSE = (LSD / t _) ^ 2/2 * b


Per MSD, se MSD = t_ {alpha, 2n-2} * sd sqrt (2 / n), SE = MSD n / (t_ {alpha, n} * sqrt (2)) è corretto?
David LeBauer,

7

Posso solo essere d'accordo con John. Inoltre, forse questo articolo di David Saville ti aiuta con qualche formula per ricalcolare le misure di variabilità da LSDs e altri .:
Saville DJ (2003). Statistiche di base e incoerenza di più procedure di confronto. Canadian Journal of Experimental Psychology, 57, 167–175

AGGIORNAMENTO:
Se stai cercando più formule da convertire tra varie dimensioni di effetto, i libri sulla meta-analisi dovrebbero fornire molte di queste. Tuttavia, non sono un esperto in questo settore e non posso raccomandarlo.
Ma ricordo che una volta il libro di Rosenthal e Rosnow mi ha aiutato con qualche formula:
Elementi essenziali della ricerca comportamentale: metodi e analisi dei dati
Inoltre, ho sentito molte cose buone sulle formule in questo libro di Rosenthal, Rosnow & Rubin (anche se Non l'ho mai usato):
Contrasti e dimensioni dell'effetto nella ricerca comportamentale: un approccio correlativo (dovresti assolutamente provarlo se una biblioteca vicina ce l'ha).

Se ciò non bastasse, forse fai un'altra domanda in letteratura per convertire le dimensioni degli effetti in meta-analisi. Forse qualcuno più in meta-analisi ha raccomandazioni più fondate.


0

Puoi provare a provare il pacchetto R compute.es . Esistono diverse funzioni per derivare le stime della dimensione dell'effetto e la varianza della dimensione dell'effetto.


questo è un bel pacchetto che hai scritto, ma sono interessato a stimare il campione SE, e queste funzioni sembrano fornire stime di varianza per le dimensioni dell'effetto meta-analisi, mentre vorrei inferire la varianza della popolazione (ad es. i dati originali). Potresti fornire un esempio di come le funzioni nel compute.espacchetto potrebbero essere utilizzate per replicare le equazioni e le funzioni che ho scritto sopra?
David LeBauer,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.