Если я введу только тот код, который вы написали в своем вопросе выше, я получу только 5 цифр:
apply(out$batch, 2, mean)
# [1] 0.5990174 0.8027482 1.1539329 0.4547702 0.7172724
Похоже, что учебник, которому вы следуете, - это mcmc::demo
виньетка. Виньетка выполняет все шаги, которые вы опубликовали выше, , а затем вычисляет
out <- metrop(out, nbatch = 100, blen = 100, outfun = function(z) c(z, z^2))
с последующим
apply(out$batch, 2, mean)
# [1] 0.6531950 0.7920342 1.1701075 0.5077331 0.7488265
# [6] 0.5145751 0.7560775 1.4973807 0.3913837 0.7244162
Здесь вы можете видеть, что outfun
вычисляет X и X ^ 2, и что вы получаете оценки E [X] и E [X ^ 2], когда берете среднее значение, используя apply()
.
Здесь X, похоже, взяты из апостериорного распределения параметров модели (бета). Обратите внимание, что байесовские апостериорные средние (первые 5 чисел) довольно близки к небайесовским точечным оценкам, рассчитанным с помощью glm
в четвертой строке вашего кода.