Интервальная оценка среднего будущих предсказанных значений

У меня есть байесовский код для оценки модели (немного сложной модели) в RStan. После оценки модели я взял 500 образцов наборов параметров из апостериорного распределения для моделирования данных модели на будущее (следующий 1 месяц). Наконец, я взял средние значения предсказанных значений (500 предсказанных значений для каждой временной точки), а затем сравнил их с фактическими наблюдениями (с графиком).

Мой вопрос: как я могу рассчитать интервалы этих средних предсказанных значений?

Пример: после построения выборки параметров из апостериорного распределения я смоделировал переменные X1, X2, .... X30 из модели, используя следующие параметры:

X1= (33,25,10,19,25)
X2= (11,10,15,13.5,17)
.......

X30= (40,33.3,50,29,45.1)

Теперь я нахожу среднее (X1); среднее (X2); .... среднее (X30) и отложите их в зависимости от времени. Я хочу найти интервалы для этих средств.


person gultu    schedule 30.10.2017    source источник
comment
Я не понимаю, что вы подразумеваете под вычислением интервалов этих средних предсказанных значений ... какой интервал вы хотите? Кроме того, наличие небольшого примера делает проблему конкретной. Я бы предложил создать игрушечный пример, где вы можете опубликовать небольшой набор данных и код.   -  person ssp3nc3r    schedule 31.10.2017
comment
@ ssp3nc3r Привет, мне нужен какой-то интервал прогнозирования для среднего значения прогнозируемых значений. Выше я привожу игрушечный пример.   -  person gultu    schedule 31.10.2017
comment
Если вы имеете в виду достоверный интервал, а X1, например, представляет несколько апостериорных отрисовок, то вы можете просто сделать что-то вроде quantile(X1, probs = c(.1, .9)), что обеспечивает средние 80 процентов отрисовок.   -  person ssp3nc3r    schedule 31.10.2017


Ответы (1)


Пример апостериорных розыгрышей для каждого X1 ... X30:

m <- matrix(data = rep(rnorm(500, 0, 1), 30), nrow = 500, ncol = 30, byrow = FALSE)
colnames(m) <- paste0("X", 1:30)

Получите достоверный интервал этих розыгрышей:

ci <- apply(m, 2, quantile, probs = c(0.1, 0.9))
colnames(ci) <- paste0("X", 1:30)
person ssp3nc3r    schedule 30.10.2017