Я розглянув набір робіт, кожен з яких повідомляє про спостережуване середнє значення та SD про вимірювання у відповідному зразку відомого розміру, . Я хочу зробити найкращу здогадку про ймовірний розподіл тієї ж міри в новому дослідженні, яке я розробляю, і наскільки невизначеність у цій здогадці. Я радий вважати ).
Першою моєю думкою був метааналіз, але зазвичай використовувані моделі зосереджуються на точкових оцінках та відповідних інтервалах довіри. Однак я хочу сказати щось про повний розподіл , який у цьому випадку також включав би здогадку про дисперсію .
Я читав про можливі підходи Баєйсана до оцінки повного набору параметрів заданого розподілу з урахуванням попередніх знань. Це, як правило, має більше сенсу для мене, але я маю нульовий досвід байєсівського аналізу. Це також здається простою, порівняно простою проблемою вирізати зуби.
1) Враховуючи мою проблему, який підхід має найбільш сенс і чому? Метааналіз чи байєсівський підхід?
2) Якщо ви вважаєте, що байєсівський підхід найкращий, можете вказати мені на спосіб здійснення цього (бажано в R)?
ЗМІНИ:
Я намагався розібратися в тому, що, на мою думку, є «простим» байєсівським способом.
Як я вже говорив вище, мене цікавлять не лише оцінене середнє значення , але й дисперсія , з огляду на попередню інформацію, тобто
Знову ж таки, я нічого не знаю про байєанізм на практиці, але не знадобилося багато часу, щоб виявити, що задній частині нормального розподілу з невідомими середніми і дисперсійними розв'язками має рішення закритої форми через кон'югацію з нормальним-зворотним гамма-розподілом.
Задача формулюється як .
оцінюється при нормальному розподілі; з оберненим гамма-розподілом.
Мені знадобилося певний час, щоб обернутись головою, але з цих посилань ( 1 , 2 ) я зміг, я думаю, розібратися, як це зробити в Р.
Я почав з кадру даних, складеного з рядка для кожного з 33 досліджень / зразків, та стовпців для середнього, дисперсії та розміру вибірки. Я використовував середню, дисперсію та розмір вибірки з першого дослідження, у рядку 1, як свою попередню інформацію. Потім я оновив це інформацією з наступного дослідження, обчислив відповідні параметри та відібрав вибірку з нормально-зворотної гами, щоб отримати розподіл та . Це повторюється, поки не будуть включені всі 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)
Ось діаграма шляху, що показує, як змінюються та додаючи кожен новий зразок.
Ось десенції, засновані на вибірці з розрахункових розподілів для середнього та відхилення при кожному оновленні.
Я просто хотів додати це на випадок, якщо це корисно для когось іншого, і щоб люди, які знають, могли сказати мені, чи було це розумно, хибно тощо.