matlab - 如何使用 Octave 或 MATLAB 计算贝叶斯估计量
问题描述
我正在阅读Sheldon Ross 的统计教科书《工程师统计概论》,第 275 页,并试图在纸上和 Octave 中重新编写其示例。当涉及到集成部分时,我无法在 Octave 中复制许多贝叶斯计算。请告知如何在 Octave 中复制以下计算?下面是一个简单的贝叶斯估计器示例,它自然成为一个符号积分问题,我经常在 Octave 中遇到困难。
[澄清:这个计算来自教科书,我是手工理解的。我不明白的是,在实践中应该如何处理这种统计计算练习。这个问题与统计/科学计算有关,而不是编码或统计本身。]
给定 X 的 p 的条件 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?
解决方案
推荐阅读
- sql - 加速分区 ROW_NUMBER()
- ios - 使用 CarPlay 框架的 CarPlay 应用在 iOS 13 或更早版本上崩溃
- docker-compose - 为了让 Redash 连接到 AWS Redis,我应该在 REDASH_REDIS_URL 中添加什么?
- python - 从嵌套字典中的键获取下一个值
- scala - Uploading gatling report to s3
- arrays - 比较两个数组,如果值在数组中,则添加到列表中,如果不是,则将值添加到另一个列表中。没有重复
- java - 当我尝试加载新的 FXML 并为其设置新场景时,如何修复我的标签为空?
- asp.net - 使用 ASP.NET Azure 应用服务的早期提示或 HTTP/2 推送
- azure-ad-b2c - ADB2C 自定义策略 - 编写联合用户未在用户配置文件中设置正确的 UPN
- javascript - MathJax 无法渲染内联元素?