Как рассчитать байесовский оценщик с помощью Octave или MATLAB - PullRequest
0 голосов
/ 11 июля 2020

Я читаю учебник по статистике Введение в статистику для инженеров Шелдона Росс, стр.275 и пытаюсь повторить его примеры на бумаге и в Octave. Я не могу воспроизвести многие байесовские вычисления в Octave, когда дело доходит до интеграции. Посоветуйте, пожалуйста, как go тиражировать приведенный ниже расчет в Octave? Ниже приведен простой пример байесовской оценки, который естественным образом становится проблемой интеграции символов c, где я часто сталкиваюсь с трудностями при выполнении в Octave.

[ Уточнение : это вычисление из учебника, и я понять это вручную. Чего я не понимаю, так это того, как следует подходить к таким упражнениям по статистическим вычислениям на практике. Этот вопрос относится к статистическим / научным c вычислениям, а не к кодированию или статистике как таковым.]

Предположим, enter image description here are independent Bernoulli variables, having pdf enter image description here

p is the unknown variable enter image description here . Compute the Bayes estimator for p.

We know that enter image description here

The conditional pdf of p given X is then

enter image description here

It can be shown that, enter image description here ---(1)

Using (1) and letting enter image description here, the conditional pdf becomes

enter image description here

Recall Bayes estimator is enter image description here.

Therefore, Bayes estimator for p is:

введите описание изображения здесь

Теперь я пытаюсь воспроизвести эти шаги с помощью Octave, как показано ниже, и потерпел неудачу (интеграция заняла 40 минут на моем настольном компьютере Dell за 2500 долларов). Можете ли вы показать моей сбитой с толку душу, как вы проделываете вышеуказанные шаги в Octave, Matlab или R, чтобы прийти к той же байесовской оценке?

#Use Octave to derive the above Bayes estimator
pkg load symbolic;
syms p n x;
f = (p^x) * (1-p)^(n-x);
F = int(f, p, [0, 1]); #integrate f, which gives the conditional pdf denominator
f_conditional = f/F; #the conditional pdf
integrand = p * f_conditional; # the integrand to derive Bayes estimator
estimator = int(integrand, p, [0, 1]);
#this integration takes forever, how else should I replicate the above in Octave?
...