ฉันได้รับการตรวจสอบชุดของเอกสารรายงานการสังเกตค่าเฉลี่ยและ SD ของการวัดของแต่ละในกลุ่มตัวอย่างของแต่ละขนาดที่รู้จักกัน n ฉันต้องการคาดเดาที่ดีที่สุดเกี่ยวกับการกระจายตัวของมาตรการเดียวกันในการศึกษาใหม่ที่ฉันกำลังออกแบบและความไม่แน่นอนในการเดานั้น ฉันยินดีที่จะรับX ∼ N ( μ , σ 2 )
ความคิดแรกของฉันคือการวิเคราะห์อภิมาน แต่โดยทั่วไปแล้วตัวแบบจะใช้การประมาณจุดและช่วงความมั่นใจที่สอดคล้องกัน แต่ผมอยากจะบอกอะไรบางอย่างเกี่ยวกับการกระจายเต็มรูปแบบของซึ่งในกรณีนี้จะรวมทั้งยังทำให้การคาดเดาเกี่ยวกับความแปรปรวนσ 2
ฉันได้อ่านเกี่ยวกับวิธีการของ Bayeisan ที่เป็นไปได้ในการประมาณค่าพารามิเตอร์ชุดสมบูรณ์ของการแจกแจงที่กำหนดในแง่ของความรู้ก่อนหน้า โดยทั่วไปแล้วสิ่งนี้เหมาะสมสำหรับฉัน แต่ฉันไม่มีประสบการณ์ในการวิเคราะห์แบบเบย์ นี่เป็นปัญหาที่ค่อนข้างง่ายและตรงไปตรงมาที่จะตัดฟันของฉัน
1) จากปัญหาของฉันวิธีการใดที่เหมาะสมที่สุดและเพราะเหตุใด การวิเคราะห์เมตาดาต้าหรือวิธีการแบบเบย์?
2) ถ้าคุณคิดว่าวิธีการแบบเบย์นั้นดีที่สุดคุณสามารถชี้ให้ฉันเห็นวิธีการที่จะนำไปใช้ (ควรเป็น R) หรือไม่?
การแก้ไข:
ฉันพยายามทำสิ่งนี้ในสิ่งที่ฉันคิดว่าเป็นแบบเบย์เรียบง่าย
ดังที่ฉันได้กล่าวไว้ข้างต้นฉันไม่เพียง แต่สนใจค่าเฉลี่ยที่ประมาณแต่ยังรวมถึงความแปรปรวนσ 2ในแง่ของข้อมูลก่อนหน้าเช่นP ( μ , σ 2 | Y )
อีกครั้งผมรู้อะไรเกี่ยวกับ Bayeianism ในทางปฏิบัติ แต่ก็ใช้เวลาไม่นานที่จะพบว่าหลังของการแจกแจงแบบปกติที่มีค่าเฉลี่ยไม่รู้จักและความแปรปรวนมีวิธีการแก้ปัญหาแบบปิดผ่านconjugacyกับการกระจายปกติผกผันแกมมา
ปัญหาคือ reformulated เป็น )
ถูกประเมินด้วยการแจกแจงแบบปกติ P ( σ 2 | Y ) ที่มีการแจกแจงแบบผกผัน - แกมม่า
ฉันต้องใช้เวลาสักครู่ก่อนจะมุ่งหน้าไปรอบ ๆ แต่จากลิงก์เหล่านี้ ( 1 , 2 ) ฉันคิดว่าฉันสามารถเรียงลำดับวิธีการทำสิ่งนี้ได้ในอาร์
ฉันเริ่มต้นด้วยกรอบข้อมูลที่สร้างขึ้นจากแถวสำหรับแต่ละ 33 การศึกษา / ตัวอย่างและคอลัมน์สำหรับค่าเฉลี่ยความแปรปรวนและขนาดตัวอย่าง ฉันใช้ค่าเฉลี่ยความแปรปรวนและขนาดตัวอย่างจากการศึกษาครั้งแรกในแถวที่ 1 เป็นข้อมูลก่อนหน้าของฉัน จากนั้นผมก็มีการปรับปรุงนี้มีข้อมูลจากการศึกษาถัดไปคำนวณค่าพารามิเตอร์ที่เกี่ยวข้องและการเก็บตัวอย่างจากปกติผกผันแกมมาที่จะได้รับการกระจายของและσ 2 สิ่งนี้จะเกิดขึ้นซ้ำ ๆ จนกระทั่งมีการศึกษาทั้งหมด 33 เรื่อง
# 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)
นี่คือแผนภาพเส้นทางที่แสดงให้เห็นว่า
นี่คือความพึงพอใจตามการสุ่มตัวอย่างจากการแจกแจงโดยประมาณสำหรับค่าเฉลี่ยและความแปรปรวนในการอัปเดตแต่ละครั้ง
ฉันแค่อยากจะเพิ่มสิ่งนี้ในกรณีที่มันมีประโยชน์สำหรับคนอื่นและเพื่อให้ผู้ที่รู้สามารถบอกฉันได้ว่าสิ่งนี้มีเหตุผลมีข้อบกพร่อง ฯลฯ