首页 > 解决方案 > 如何使用 Octave 或 MATLAB 计算贝叶斯估计量

问题描述

我正在阅读Sheldon Ross 的统计教科书《工程师统计概论》,第 275 页,并试图在纸上和 Octave 中重新编写其示例。当涉及到集成部分时,我无法在 Octave 中复制许多贝叶斯计算。请告知如何在 Octave 中复制以下计算?下面是一个简单的贝叶斯估计器示例,它自然成为一个符号积分问题,我经常在 Octave 中遇到困难。

[澄清:这个计算来自教科书,我是手工理解的。我不明白的是,在实践中应该如何处理这种统计计算练习。这个问题与统计/科学计算有关,而不是编码或统计本身。]

假设在此处输入图像描述是独立的伯努利变量,具有 pdf在此处输入图像描述

p 是未知变量在此处输入图像描述。计算 p 的贝叶斯估计量。

我们知道在此处输入图像描述

给定 X 的 p 的条件 pdf 是

在此处输入图像描述

可以证明, 在此处输入图像描述 ---(1)

使用 (1) 并让在此处输入图像描述,条件 pdf 变为

在此处输入图像描述

回忆贝叶斯估计是在此处输入图像描述.

因此,p 的贝叶斯估计量为:

在此处输入图像描述

现在,我尝试使用 Octave 复制这些步骤,但失败了(在我 2500 美元的戴尔台式机上集成需要 40 分钟)。你能告诉我困惑的灵魂,你如何在 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?

标签: matlabstatisticsoctavebayesianscientific-computing

解决方案


推荐阅读