Как можно моделировать интересующие величины из апостериорной плотности в MCMCglmm?

Я хотел бы смоделировать интересующие количества из модели, оцененной с MCMCglmm более или менее путь Zelig пакет делает. В Zelig Вы можете установить значения, которые вы хотите для независимых значений, и программное обеспечение вычисляет результат для переменной результата (ожидаемое значение, вероятность и т. д.). Пример:

# Creating a dataset:
set.seed(666)
df <- data.frame(y=rnorm(100,20,20),z=rnorm(100,50,70))

# Loading Zelig
library(Zelig)

# Model
m1.zelig <- zelig(y~z, data=df, model="ls")
summary(m1.zelig)

# Simulating z = 10
s1 <- setx(m1.zelig, z = 10)
simulation <- sim(m1.zelig, x = s1)
summary(simulation)

Как мы видим, если z = 10 y, это примерно 17.

# Same model with MCMCglmm
library(MCMCglmm)
m1.mcmc <- MCMCglmm(y~z, data=df, family = "gaussian", verbose = FALSE)
summary(m1.mcmc)

Есть ли способ симулировать z = 10 с апостериорным распределением, оцененным как MCMCglmm и получить ожидаемое значение у? Большое спасибо!

1 ответ

Решение

Вы можете моделировать, но не так легко, как в Zelig. Вы должны знать немного больше о структуре модели, которую вы подходите, и о том, как параметры хранятся в MCMCglmm объект.

Настройте данные и подгоните:

set.seed(666)
df <- data.frame(y=rnorm(100,20,20),z=rnorm(100,50,70))
library(MCMCglmm)
m1.mcmc <- MCMCglmm(y~z, data=df, family = "gaussian", verbose=FALSE)

Наиболее распространенный протокол в R для прогнозирования и моделирования - это создание нового фрейма данных с той же структурой, что и исходные данные:

predframe <- data.frame(z=10)

Построить матрицу модели для линейной модели:

X <- model.matrix(~z,data=predframe)

Теперь используйте цепочки коэффициентов, хранящихся в Sol ("решение") компонента MCMCglmm объект; для удобства я настроил это как матричный расчет.

predframe$y <- X %*% t(m1.mcmc$Sol)

Если вы хотите симулировать для более сложных моделей (линейных или обобщенных линейных смешанных моделей), вам нужно будет работать немного усерднее (обрабатывать случайные эффекты и функции обратной ссылки соответственно) ...

Другие вопросы по тегам