Чи правильні ці формули для перетворення P, LSD, MSD, HSD, CI в SE як точну або завищену / консервативну оцінку ?


11

Фон

Я провожу метааналіз, який включає раніше опубліковані дані. Часто повідомляються про відмінності між методами лікування з значеннями Р, найменш значущими різницями (LSD) та іншими статистичними даними, але не дають прямої оцінки дисперсії.

У контексті моделі, яку я використовую, завищена дисперсія - це нормально.

Проблема

Ось список перетворень на де (Saville 2003), що я розглядаю, відгуки оцінені; нижче, я припускаю, що тому і змінні зазвичай розподіляються, якщо не вказано інше:S E = SE α=0,051- α / 2=0,975SE=MSE/n α=0.051α/2=0.975

Запитання:

  1. задані , і засоби лікування іn ˉ X 1 ˉ X 2 S E = ˉ X 1 - ˉ X 2PnX¯1X¯2

    SE=X¯1X¯2t(1P2,2n2)2/n
  2. заданий LSD (Rosenberg 2004) , , , де кількість блоків, і за замовчуванням для RCBD n b b n = b S E = L S Dαnbbn=b

    SE=LSDt(0.975,n)2bn
  3. заданий MSD (мінімальна значна різниця) (Ван 2000) , , , df =α 2 n - 2 S E = M S Dnα2n2

    SE=MSDt(0.975,2n2)2
  4. заданий інтервал довіри 95% (Saville 2003) (вимірюється від середнього до верхнього або нижнього довірчого межі), іn S E = C Iαn

    SE=CIt(α/2,n)
  5. заданий HSD Тукі, , де 'статистика ступінованого діапазону',nS E = H S Dq

    SE=HSDq(0.975,n)

Функція R для інкапсуляції цих рівнянь:

  1. Приклад даних:

    data <- data.frame(Y=rep(1,5), 
                       stat=rep(1,5), 
                       n=rep(4,5), 
                       statname=c('SD', 'MSE', 'LSD', 'HSD', 'MSD') 
    
  2. Приклад використання:

    transformstats(data)    
    
  3. transformstatsфункція:

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

Список літератури

Saville 2003Can J. Exptl Psych. (pdf)

Розенберг та ін. 2004 (посилання)

Ван та ін. 2000 Env. Токс. і Chem 19 (1): 113-117 (посилання)


Я не впевнений, чи справді більшість CI обчислюються через t-значення, а точніше через z-значення. Однак на більших ns (> 30) це не повинно мати значного значення.
Генрік

@Henrik для малих , t-статистика підходить, і як ви сказали, як збільшується, t наближає Z. Дивіться також math.stackexchange.com/q/23246/3733nnn
David LeBauer

Відповіді:


7

Ваше рівняння LSD виглядає добре. Якщо ви хочете повернутися до дисперсії і маєте підсумкову статистику, яка говорить щось про мінливість або значущість ефекту, то ви майже завжди можете повернутися до дисперсії - вам просто потрібно знати формулу. Наприклад, у своєму рівнянні для LSD ви хочете вирішити для MSE, MSE = (LSD / t _) ^ 2/2 * b


Для MSD, якщо MSD = t_ {альфа, 2n-2} * sd sqrt (2 / n), SE = MSD n / (t_ {alpha, n} * sqrt (2)) правильним?
David LeBauer

7

Я можу погодитися лише з Джоном. Крім того, можливо, цей документ Девіда Савіля допомагає вам з певною формулою перерахувати мінливості мінливості з LSDs та ін .:
Saville DJ (2003). Основна статистика та неузгодженість декількох процедур порівняння. Канадський журнал експериментальної психології, 57, 167–175

ОНОВЛЕННЯ:
Якщо ви шукаєте більше формул для конвертації між різними розмірами ефектів, книги з метааналізу мають забезпечити багато цього. Однак я не є експертом у цій галузі і не можу рекомендувати його.
Але я пам’ятаю, що книга Розенталя і Роснова колись допомагала певною формулою:
Основи поведінкового дослідження: методи та аналіз даних.
Крім того, я чула багато хороших речей про формули в цій книзі Розенталя, Роснова та Рубіна (хоча Я ніколи його не використовував):
Контрасти та розміри ефектів у поведінкових дослідженнях: кореляційний підхід (Ви обов'язково повинні спробувати, якщо в сусідній бібліотеці є).

Якщо цього недостатньо, можливо, поставте інше запитання з літератури щодо перетворення розмірів ефектів для мета-аналізів. Можливо, хтось більше займається метааналізом має більш обґрунтовані рекомендації.


0

Ви можете спробувати пакет R compute.es . Існує кілька функцій для отримання оцінок розміру ефекту та дисперсії розміру ефекту.


це хороший пакет, який ви написали, але мені цікаво оцінити зразок SE, і ці функції, як видається, дають оцінку дисперсії для розмірів ефекту мета-аналізу, тоді як я хотів би зробити висновок про дисперсію сукупності (наприклад, масштабувати до вихідні дані). Чи можете ви надати приклад того, як функції в compute.esпакеті можуть використовуватися для копіювання рівнянь та функцій, про які я писав вище?
David LeBauer
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.