การรวมข้อมูลจากการศึกษาหลายครั้งเพื่อประเมินค่าเฉลี่ยและความแปรปรวนของข้อมูลที่กระจายตามปกติ - วิธีเบย์และวิธีการวิเคราะห์เชิงเมตา


21

ฉันได้รับการตรวจสอบชุดของเอกสารรายงานการสังเกตค่าเฉลี่ยและ SD ของการวัดของแต่ละในกลุ่มตัวอย่างของแต่ละขนาดที่รู้จักกัน n ฉันต้องการคาดเดาที่ดีที่สุดเกี่ยวกับการกระจายตัวของมาตรการเดียวกันในการศึกษาใหม่ที่ฉันกำลังออกแบบและความไม่แน่นอนในการเดานั้น ฉันยินดีที่จะรับX N ( μ , σ 2 )XnX~ยังไม่มีข้อความ(μ,σ2

ความคิดแรกของฉันคือการวิเคราะห์อภิมาน แต่โดยทั่วไปแล้วตัวแบบจะใช้การประมาณจุดและช่วงความมั่นใจที่สอดคล้องกัน แต่ผมอยากจะบอกอะไรบางอย่างเกี่ยวกับการกระจายเต็มรูปแบบของซึ่งในกรณีนี้จะรวมทั้งยังทำให้การคาดเดาเกี่ยวกับความแปรปรวนσ 2 Xσ2

ฉันได้อ่านเกี่ยวกับวิธีการของ Bayeisan ที่เป็นไปได้ในการประมาณค่าพารามิเตอร์ชุดสมบูรณ์ของการแจกแจงที่กำหนดในแง่ของความรู้ก่อนหน้า โดยทั่วไปแล้วสิ่งนี้เหมาะสมสำหรับฉัน แต่ฉันไม่มีประสบการณ์ในการวิเคราะห์แบบเบย์ นี่เป็นปัญหาที่ค่อนข้างง่ายและตรงไปตรงมาที่จะตัดฟันของฉัน

1) จากปัญหาของฉันวิธีการใดที่เหมาะสมที่สุดและเพราะเหตุใด การวิเคราะห์เมตาดาต้าหรือวิธีการแบบเบย์?

2) ถ้าคุณคิดว่าวิธีการแบบเบย์นั้นดีที่สุดคุณสามารถชี้ให้ฉันเห็นวิธีการที่จะนำไปใช้ (ควรเป็น R) หรือไม่?

คำถามที่เกี่ยวข้อง

การแก้ไข:

ฉันพยายามทำสิ่งนี้ในสิ่งที่ฉันคิดว่าเป็นแบบเบย์เรียบง่าย

ดังที่ฉันได้กล่าวไว้ข้างต้นฉันไม่เพียง แต่สนใจค่าเฉลี่ยที่ประมาณแต่ยังรวมถึงความแปรปรวนσ 2ในแง่ของข้อมูลก่อนหน้าเช่นP ( μ , σ 2 | Y )μσ2P(μ,σ2|Y)

อีกครั้งผมรู้อะไรเกี่ยวกับ Bayeianism ในทางปฏิบัติ แต่ก็ใช้เวลาไม่นานที่จะพบว่าหลังของการแจกแจงแบบปกติที่มีค่าเฉลี่ยไม่รู้จักและความแปรปรวนมีวิธีการแก้ปัญหาแบบปิดผ่านconjugacyกับการกระจายปกติผกผันแกมมา

ปัญหาคือ reformulated เป็น )P(μ,σ2|Y)=P(μ|σ2,Y)P(σ2|Y)

ถูกประเมินด้วยการแจกแจงแบบปกติ P ( σ 2 | Y ) ที่มีการแจกแจงแบบผกผัน - แกมม่าP(μ|σ2,Y)P(σ2|Y)

ฉันต้องใช้เวลาสักครู่ก่อนจะมุ่งหน้าไปรอบ ๆ แต่จากลิงก์เหล่านี้ ( 1 , 2 ) ฉันคิดว่าฉันสามารถเรียงลำดับวิธีการทำสิ่งนี้ได้ในอาร์

ฉันเริ่มต้นด้วยกรอบข้อมูลที่สร้างขึ้นจากแถวสำหรับแต่ละ 33 การศึกษา / ตัวอย่างและคอลัมน์สำหรับค่าเฉลี่ยความแปรปรวนและขนาดตัวอย่าง ฉันใช้ค่าเฉลี่ยความแปรปรวนและขนาดตัวอย่างจากการศึกษาครั้งแรกในแถวที่ 1 เป็นข้อมูลก่อนหน้าของฉัน จากนั้นผมก็มีการปรับปรุงนี้มีข้อมูลจากการศึกษาถัดไปคำนวณค่าพารามิเตอร์ที่เกี่ยวข้องและการเก็บตัวอย่างจากปกติผกผันแกมมาที่จะได้รับการกระจายของและσ 2 สิ่งนี้จะเกิดขึ้นซ้ำ ๆ จนกระทั่งมีการศึกษาทั้งหมด 33 เรื่องμσ2

# Loop start values values

  i <- 2
  k <- 1

# Results go here

  muL      <- list()  # mean of the estimated mean distribution
  varL     <- list()  # variance of the estimated mean distribution
  nL       <- list()  # sample size
  eVarL    <- list()  # mean of the estimated variance distribution
  distL    <- list()  # sampling 10k times from the mean and variance distributions

# Priors, taken from the study in row 1 of the data frame

  muPrior  <- bayesDf[1, 14]    # Starting mean
  nPrior   <- bayesDf[1, 10]    # Starting sample size
  varPrior <- bayesDf[1, 16]^2  # Starting variance

  for (i in 2:nrow(bayesDf)){

# "New" Data, Sufficient Statistics needed for parameter estimation

    muSamp    <- bayesDf[i, 14]          # mean
    nSamp     <- bayesDf[i, 10]          # sample size
    sumSqSamp <- bayesDf[i, 16]^2*(nSamp-1)  # sum of squares (variance * (n-1))

# Posteriors

    nPost   <- nPrior + nSamp
    muPost  <- (nPrior * muPrior + nSamp * muSamp) / (nPost)  
    sPost   <- (nPrior * varPrior) + 
                sumSqSamp + 
               ((nPrior * nSamp) / (nPost)) * ((muSamp - muPrior)^2)
    varPost <- sPost/nPost
    bPost   <- (nPrior * varPrior) + 
                sumSqSamp + 
               (nPrior * nSamp /  (nPost)) * ((muPrior - muSamp)^2)
# Update 

    muPrior   <- muPost
    nPrior    <- nPost
    varPrior  <- varPost

# Store

    muL[[i]]   <-  muPost
    varL[[i]]  <-  varPost
    nL[[i]]    <-  nPost
    eVarL[[i]] <- (bPost/2) / ((nPost/2) - 1)

# Sample

    muDistL  <- list()  
    varDistL <- list()

    for (j in 1:10000){
      varDistL[[j]] <- 1/rgamma(1, nPost/2, bPost/2)
      v             <- 1/rgamma(1, nPost/2, bPost/2)
      muDistL[[j]]  <- rnorm(1, muPost, v/nPost)
    }

# Store 

    varDist    <- do.call(rbind, varDistL)
    muDist     <- do.call(rbind, muDistL)
    dist       <- as.data.frame(cbind(varDist, muDist))
    distL[[k]] <- dist

# Advance

    k <- k+1 
    i <- i+1

  }

  var     <- do.call(rbind, varL)
  mu      <- do.call(rbind, muL)
  n       <- do.call(rbind, nL)
  eVar    <- do.call(rbind, eVarL)
  normsDf <- as.data.frame(cbind(mu, var, eVar, n)) 
  colnames(seDf) <- c("mu", "var", "evar", "n")
  normsDf$order <- c(1:33)

นี่คือแผนภาพเส้นทางที่แสดงให้เห็นว่า E(μ)E(σ2)

ป้อนคำอธิบายรูปภาพที่นี่

นี่คือความพึงพอใจตามการสุ่มตัวอย่างจากการแจกแจงโดยประมาณสำหรับค่าเฉลี่ยและความแปรปรวนในการอัปเดตแต่ละครั้ง

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

ฉันแค่อยากจะเพิ่มสิ่งนี้ในกรณีที่มันมีประโยชน์สำหรับคนอื่นและเพื่อให้ผู้ที่รู้สามารถบอกฉันได้ว่าสิ่งนี้มีเหตุผลมีข้อบกพร่อง ฯลฯ

คำตอบ:


11

สองวิธี (การวิเคราะห์เมตาดาต้าและการปรับปรุงแบบเบย์) นั้นไม่แตกต่างกัน ในความเป็นจริงแล้วเมตาดาต้า - แบบจำลองมักเป็นกรอบแบบเบย์เพราะความคิดที่จะเพิ่มหลักฐานความรู้ก่อน (อาจคลุมเครือ) เกี่ยวกับปรากฏการณ์ในมือที่ยืมมาจากการวิเคราะห์เมตาดาต้า - ธรรมชาติ บทความที่อธิบายการเชื่อมต่อนี้คือ:

Brannick, MT (2001) ผลกระทบของการวิเคราะห์อภิมานเบส์เชิงประจักษ์สำหรับการตรวจสอบการทดสอบ วารสารจิตวิทยาประยุกต์, 86 (3) , 468-480

(ผู้เขียนใช้ความสัมพันธ์เป็นตัววัดผลลัพธ์สำหรับการวิเคราะห์เมตา แต่หลักการก็เหมือนกันโดยไม่คำนึงถึงการวัด)

บทความทั่วไปเพิ่มเติมเกี่ยวกับวิธีการแบบเบย์สำหรับการวิเคราะห์อภิมาน:

Sutton, AJ, & Abrams, KR (2001) วิธีเบย์ในการวิเคราะห์อภิมานและการสังเคราะห์หลักฐาน วิธีการทางสถิติในการวิจัยทางการแพทย์, 10 (4) , 277-303

สิ่งที่คุณดูเหมือนจะเป็นหลังจากนั้น (นอกเหนือจากการประมาณรวมกันบางอย่าง) คือช่วงการคาดการณ์ / ความน่าเชื่อถือที่อธิบายถึงที่ในการศึกษาในอนาคตผล / ผลกระทบที่แท้จริงน่าจะลดลง เราสามารถรับช่วงเวลาดังกล่าวได้จากการวิเคราะห์เมตา "ดั้งเดิม" หรือจากแบบจำลองเมตาดาต้าวิเคราะห์แบบเบย์ มีการอธิบายวิธีการดั้งเดิมเช่นใน:

Riley, RD, Higgins, JP, & Deeks, JJ (2011) การแปลผลของการวิเคราะห์อภิมานแบบสุ่มวารสารการแพทย์อังกฤษ, 342 , d549

θผมθผมผมθผม


3
นอกจากนั้นสิ่งที่ชาว Bayesian หลายคนเคยทำมาจากผลลัพธ์ของการวิเคราะห์เมตาดาต้า
Fomite

2

หากฉันเข้าใจคำถามของคุณถูกต้องสิ่งนี้จะแตกต่างจากการตั้งค่าการวิเคราะห์เมตาดาต้าปกติซึ่งคุณต้องการประมาณการไม่เพียง แต่ค่าเฉลี่ยทั่วไป แต่ยังเป็นค่าความแปรปรวนทั่วไปด้วย ดังนั้นรูปแบบการสุ่มตัวอย่างสำหรับข้อมูลดิบคือYผมJ~ยังไม่มีข้อความ(μ,σ2) สำหรับการสังเกต ผม=1,...nJ จากการศึกษา J=1,...,K. ถ้าถูกต้องแล้วฉันคิดว่า MLE ของμ เป็นเพียงค่าเฉลี่ยตัวอย่างรวมคือ

μ^=1ยังไม่มีข้อความΣJ=1KnJY¯J,ยังไม่มีข้อความ=ΣJ=1KnJ.
MLE สำหรับ σค่อนข้างยุ่งยากเพราะมันเกี่ยวข้องกับความแปรปรวนทั้งภายในและระหว่างการศึกษา (คิดว่าการวิเคราะห์ความแปรปรวนแบบทางเดียว) แต่การรวมความแปรปรวนตัวอย่างก็ใช้ได้เช่นกัน (นั่นคือตัวประมาณที่ไม่เอนเอียงσ2):
σ~2=1ยังไม่มีข้อความ-KΣJ=1K(nJ-1)sJ2
ถ้า ยังไม่มีข้อความ มีขนาดใหญ่ K ไม่ใหญ่เกินไปและคุณใช้นักบวชอ่อนแอดังนั้นการประมาณแบบเบย์ก็น่าจะคล้ายกับสิ่งเหล่านี้
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.